cratedb-sqlparse


Namecratedb-sqlparse JSON
Version 0.0.2 PyPI version JSON
download
home_pageNone
SummaryParsing utilities to validate and split SQL statements for CrateDB.
upload_time2024-05-21 00:02:20
maintainerNone
docs_urlNone
authorNone
requires_python<3.13,>=3.8
licenseApache License 2.0
keywords antlr4 antlr4 grammar cratedb grammar sql sql grammar sql parser sql parsing
VCS
bugtrack_url
requirements antlr4-tools poethepoet requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # CrateDB SQL Parser for Python

This package provides utilities to validate and split SQL statements specifically designed for CrateDB.

It is built upon CrateDB's antlr4 grammar, ensuring accurate parsing tailored to CrateDB's SQL dialect.

It draws inspiration from `sqlparse`.

## Installation.

## Usage:

```python
from cratedb_sqlparse import sqlparse

query = """
    SELECT * FROM SYS.SHARDS;
    INSERT INTO doc.tbl VALUES (1);
"""
statements = sqlparse(query)

print(len(statements))
# 2

select_query = statements[0]

print(select_query.query)
# 'SELECT * FROM SYS.SHARDS'

print(select_query.type)
# 'SELECT'

print(select_query.tree)
# (statement (query (queryNoWith (queryTerm (querySpec SELECT (selectItem *) FROM (relation (aliasedRelation (relationPrimary (table (qname (ident (unquotedIdent SYS)) . (ident (unquotedIdent (nonReserved SHARDS)))))))))))))

sqlparse('SUUULECT * FROM sys.shards')
# cratedb_sqlparse.parser.parser.ParsingException: line1:0 mismatched input 'SUUULECT' expecting {'SELECT', 'DEALLOCATE', ...}
```


## Development
```shell
git clone https://github.com/crate/cratedb-sqlparse
cd cratedb-sqlparse/cratedb_sqlparse_py
python3 -m venv .venv
source .venv/bin/activate
pip install --editable='.[develop,generate,release,test]'
poe check
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "cratedb-sqlparse",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.8",
    "maintainer_email": null,
    "keywords": "antlr4, antlr4 grammar, cratedb, grammar, sql, sql grammar, sql parser, sql parsing",
    "author": null,
    "author_email": "Ivan Sanchez Valencia <ivan.sanchezvalencia@crate.io>",
    "download_url": "https://files.pythonhosted.org/packages/c0/4d/1ae279be0c66ebd361c3ea30221d9b0c79b5dff8eb3f6c72708130c1d9a1/cratedb_sqlparse-0.0.2.tar.gz",
    "platform": null,
    "description": "# CrateDB SQL Parser for Python\n\nThis package provides utilities to validate and split SQL statements specifically designed for CrateDB.\n\nIt is built upon CrateDB's antlr4 grammar, ensuring accurate parsing tailored to CrateDB's SQL dialect.\n\nIt draws inspiration from `sqlparse`.\n\n## Installation.\n\n## Usage:\n\n```python\nfrom cratedb_sqlparse import sqlparse\n\nquery = \"\"\"\n    SELECT * FROM SYS.SHARDS;\n    INSERT INTO doc.tbl VALUES (1);\n\"\"\"\nstatements = sqlparse(query)\n\nprint(len(statements))\n# 2\n\nselect_query = statements[0]\n\nprint(select_query.query)\n# 'SELECT * FROM SYS.SHARDS'\n\nprint(select_query.type)\n# 'SELECT'\n\nprint(select_query.tree)\n# (statement (query (queryNoWith (queryTerm (querySpec SELECT (selectItem *) FROM (relation (aliasedRelation (relationPrimary (table (qname (ident (unquotedIdent SYS)) . (ident (unquotedIdent (nonReserved SHARDS)))))))))))))\n\nsqlparse('SUUULECT * FROM sys.shards')\n# cratedb_sqlparse.parser.parser.ParsingException: line1:0 mismatched input 'SUUULECT' expecting {'SELECT', 'DEALLOCATE', ...}\n```\n\n\n## Development\n```shell\ngit clone https://github.com/crate/cratedb-sqlparse\ncd cratedb-sqlparse/cratedb_sqlparse_py\npython3 -m venv .venv\nsource .venv/bin/activate\npip install --editable='.[develop,generate,release,test]'\npoe check\n```\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "Parsing utilities to validate and split SQL statements for CrateDB.",
    "version": "0.0.2",
    "project_urls": {
        "changelog": "https://github.com/crate/cratedb-sqlparse/blob/main/CHANGES.md",
        "documentation": "https://github.com/crate/cratedb-sqlparse",
        "homepage": "https://github.com/crate/cratedb-sqlparse",
        "repository": "https://github.com/crate/cratedb-sqlparse"
    },
    "split_keywords": [
        "antlr4",
        " antlr4 grammar",
        " cratedb",
        " grammar",
        " sql",
        " sql grammar",
        " sql parser",
        " sql parsing"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "291ec6fa83205dd4f86305f34fdee560eb66a5b8381b2702b45f20a2e45628a5",
                "md5": "17c3f1a4193af2b3a7977b13bc2c0c48",
                "sha256": "5106d66b91656de5d778c8479462e0010d35ca44d990ce0f75862d3621071d3e"
            },
            "downloads": -1,
            "filename": "cratedb_sqlparse-0.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "17c3f1a4193af2b3a7977b13bc2c0c48",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.8",
            "size": 120856,
            "upload_time": "2024-05-21T00:01:48",
            "upload_time_iso_8601": "2024-05-21T00:01:48.002602Z",
            "url": "https://files.pythonhosted.org/packages/29/1e/c6fa83205dd4f86305f34fdee560eb66a5b8381b2702b45f20a2e45628a5/cratedb_sqlparse-0.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c04d1ae279be0c66ebd361c3ea30221d9b0c79b5dff8eb3f6c72708130c1d9a1",
                "md5": "cd063db9ad679c632372bdd146269164",
                "sha256": "aac4f93556ee6eee5ca837f3d2227d418cee18c156702882605bf7b34cda4de8"
            },
            "downloads": -1,
            "filename": "cratedb_sqlparse-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "cd063db9ad679c632372bdd146269164",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.8",
            "size": 119453,
            "upload_time": "2024-05-21T00:02:20",
            "upload_time_iso_8601": "2024-05-21T00:02:20.377772Z",
            "url": "https://files.pythonhosted.org/packages/c0/4d/1ae279be0c66ebd361c3ea30221d9b0c79b5dff8eb3f6c72708130c1d9a1/cratedb_sqlparse-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-21 00:02:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "crate",
    "github_project": "cratedb-sqlparse",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "antlr4-tools",
            "specs": [
                [
                    "<",
                    "0.3"
                ]
            ]
        },
        {
            "name": "poethepoet",
            "specs": [
                [
                    "<",
                    "0.27"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "<",
                    "3"
                ]
            ]
        }
    ],
    "lcname": "cratedb-sqlparse"
}
        
Elapsed time: 0.24173s