Metadata-Version: 2.4
Name: sqlparse
Version: 0.5.5
Summary: A non-validating SQL parser.
Project-URL: Home, 
Project-URL: Documentation, 
Project-URL: Release Notes, 
Project-URL: Source, 
Project-URL: Tracker, 
Author-email: Andi Albrecht <albrecht.andi@gmail.com>
License-File: AUTHORS
License-File: LICENSE
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Database
Classifier: Topic :: Software Development
Requires-Python: >=3.8
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Provides-Extra: doc
Requires-Dist: sphinx; extra == 'doc'
Description-Content-Type: text/x-rst

python-sqlparse - Parse SQL statements
======================================

|buildstatus|_
|coverage|_
|docs|_
|packageversion|_

.. docincludebegin

sqlparse is a non-validating SQL parser for Python.
It provides support for parsing, splitting and formatting SQL statements.

The module is compatible with Python 3.8+ and released under the terms of the
`New BSD license <

Visit the project page at 
further information about this project.


Quick Start
-----------

.. code-block:: sh

   $ pip install sqlparse

.. code-block:: python

   >>> import sqlparse

   >>> # Split a string containing two SQL statements:
   >>> raw = 'select * from foo; select * from bar;'
   >>> statements = sqlparse.split(raw)
   >>> statements
   ['select * from foo;', 'select * from bar;']

   >>> # Format the first statement and print it out:
   >>> first = statements[0]
   >>> print(sqlparse.format(first, reindent=True, keyword_case='upper'))
   SELECT *
   FROM foo;

   >>> # Parsing a SQL statement:
   >>> parsed = sqlparse.parse('select * from foo')[0]
   >>> parsed.tokens
   [<DML 'select' at 0x7f22c5e15368>, <Whitespace ' ' at 0x7f22c5e153b0>, <Wildcard '*' … ]
   >>>

Pre-commit Hook
---------------

sqlparse can be used as a `pre-commit <
to automatically format SQL files before committing:

.. code-block:: yaml

   repos:
     - repo: 
       rev: 0.5.4  # Use the latest version
       hooks:
         - id: sqlformat
           # Optional: Add more formatting options
           # IMPORTANT: --in-place is required, already included by default
           args: [--in-place, --reindent, --keywords, upper]

Then install the hook:

.. code-block:: sh

   $ pre-commit install

Your SQL files will now be automatically formatted on each commit.

**Note**: The hook uses ``--in-place --reindent`` by default. If you override
the ``args``, you **must** include ``--in-place`` for the hook to work.

Links
-----

Project page
   

Bug tracker
   

Documentation
   

Online Demo
   


sqlparse is licensed under the BSD license.

Parts of the code are based on pygments written by Georg Brandl and others.
pygments-Homepage: 

.. |buildstatus| image:: 
.. _buildstatus: 
.. |coverage| image:: 
.. _coverage: 
.. |docs| image:: 
.. _docs: 
.. |packageversion| image:: 
.. _packageversion: 
