summaryrefslogtreecommitdiff
path: root/sqlparse/__init__.py
diff options
context:
space:
mode:
authorAndi Albrecht <albrecht.andi@gmail.com>2009-04-03 21:26:42 +0200
committerAndi Albrecht <albrecht.andi@gmail.com>2009-04-03 21:26:42 +0200
commit361122eb22d5681c58dac731009e4814b3dd5fa5 (patch)
treeb096496bc9c6b8febe092d0aefd56de1a4f8f4a0 /sqlparse/__init__.py
downloadsqlparse-361122eb22d5681c58dac731009e4814b3dd5fa5.tar.gz
Initial import.
Diffstat (limited to 'sqlparse/__init__.py')
-rw-r--r--sqlparse/__init__.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/sqlparse/__init__.py b/sqlparse/__init__.py
new file mode 100644
index 0000000..01b3bd8
--- /dev/null
+++ b/sqlparse/__init__.py
@@ -0,0 +1,65 @@
+# Copyright (C) 2008 Andi Albrecht, albrecht.andi@gmail.com
+#
+# This module is part of python-sqlparse and is released under
+# the BSD License: http://www.opensource.org/licenses/bsd-license.php.
+
+"""Parse SQL statements."""
+
+__version__ = '0.1.0'
+
+import logging
+import os
+
+
+if 'SQLPARSE_DEBUG' in os.environ:
+ logging.basicConfig(level=logging.DEBUG)
+
+
+class SQLParseError(Exception):
+ """Base class for exceptions in this module."""
+
+
+# Setup namespace
+from sqlparse import engine
+from sqlparse import filters
+from sqlparse import formatter
+
+
+def parse(sql):
+ """Parse sql and return a list of statements.
+
+ *sql* is a single string containting one or more SQL statements.
+
+ The returned :class:`~sqlparse.parser.Statement` are fully analyzed.
+
+ Returns a list of :class:`~sqlparse.parser.Statement` instances.
+ """
+ stack = engine.FilterStack()
+ stack.full_analyze()
+ return tuple(stack.run(sql))
+
+
+def format(sql, **options):
+ """Format *sql* according to *options*.
+
+ Returns a list of :class:`~sqlparse.parse.Statement` instances like
+ :meth:`parse`, but the statements are formatted according to *options*.
+
+ Available options are documented in the :mod:`~sqlparse.format` module.
+ """
+ stack = engine.FilterStack()
+ options = formatter.validate_options(options)
+ stack = formatter.build_filter_stack(stack, options)
+ stack.postprocess.append(filters.SerializerUnicode())
+ return ''.join(stack.run(sql))
+
+
+def split(sql):
+ """Split *sql* into separate statements.
+
+ Returns a list of strings.
+ """
+ stack = engine.FilterStack()
+ stack.split_statements = True
+ return [unicode(stmt) for stmt in stack.run(sql)]
+