summaryrefslogtreecommitdiffstats
path: root/sqlglot/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'sqlglot/__init__.py')
-rw-r--r--sqlglot/__init__.py71
1 files changed, 41 insertions, 30 deletions
diff --git a/sqlglot/__init__.py b/sqlglot/__init__.py
index d6e18fd..6e67b19 100644
--- a/sqlglot/__init__.py
+++ b/sqlglot/__init__.py
@@ -1,5 +1,9 @@
"""## Python SQL parser, transpiler and optimizer."""
+from __future__ import annotations
+
+import typing as t
+
from sqlglot import expressions as exp
from sqlglot.dialects import Dialect, Dialects
from sqlglot.diff import diff
@@ -20,51 +24,54 @@ from sqlglot.expressions import (
subquery,
)
from sqlglot.expressions import table_ as table
-from sqlglot.expressions import union
+from sqlglot.expressions import to_column, to_table, union
from sqlglot.generator import Generator
from sqlglot.parser import Parser
from sqlglot.schema import MappingSchema
from sqlglot.tokens import Tokenizer, TokenType
-__version__ = "9.0.6"
+__version__ = "10.0.1"
pretty = False
schema = MappingSchema()
-def parse(sql, read=None, **opts):
+def parse(
+ sql: str, read: t.Optional[str | Dialect] = None, **opts
+) -> t.List[t.Optional[Expression]]:
"""
- Parses the given SQL string into a collection of syntax trees, one per
- parsed SQL statement.
+ Parses the given SQL string into a collection of syntax trees, one per parsed SQL statement.
Args:
- sql (str): the SQL code string to parse.
- read (str): the SQL dialect to apply during parsing
- (eg. "spark", "hive", "presto", "mysql").
+ sql: the SQL code string to parse.
+ read: the SQL dialect to apply during parsing (eg. "spark", "hive", "presto", "mysql").
**opts: other options.
Returns:
- typing.List[Expression]: the list of parsed syntax trees.
+ The resulting syntax tree collection.
"""
dialect = Dialect.get_or_raise(read)()
return dialect.parse(sql, **opts)
-def parse_one(sql, read=None, into=None, **opts):
+def parse_one(
+ sql: str,
+ read: t.Optional[str | Dialect] = None,
+ into: t.Optional[Expression | str] = None,
+ **opts,
+) -> t.Optional[Expression]:
"""
- Parses the given SQL string and returns a syntax tree for the first
- parsed SQL statement.
+ Parses the given SQL string and returns a syntax tree for the first parsed SQL statement.
Args:
- sql (str): the SQL code string to parse.
- read (str): the SQL dialect to apply during parsing
- (eg. "spark", "hive", "presto", "mysql").
- into (Expression): the SQLGlot Expression to parse into
+ sql: the SQL code string to parse.
+ read: the SQL dialect to apply during parsing (eg. "spark", "hive", "presto", "mysql").
+ into: the SQLGlot Expression to parse into.
**opts: other options.
Returns:
- Expression: the syntax tree for the first parsed statement.
+ The syntax tree for the first parsed statement.
"""
dialect = Dialect.get_or_raise(read)()
@@ -77,25 +84,29 @@ def parse_one(sql, read=None, into=None, **opts):
return result[0] if result else None
-def transpile(sql, read=None, write=None, identity=True, error_level=None, **opts):
+def transpile(
+ sql: str,
+ read: t.Optional[str | Dialect] = None,
+ write: t.Optional[str | Dialect] = None,
+ identity: bool = True,
+ error_level: t.Optional[ErrorLevel] = None,
+ **opts,
+) -> t.List[str]:
"""
- Parses the given SQL string using the source dialect and returns a list of SQL strings
- transformed to conform to the target dialect. Each string in the returned list represents
- a single transformed SQL statement.
+ Parses the given SQL string in accordance with the source dialect and returns a list of SQL strings transformed
+ to conform to the target dialect. Each string in the returned list represents a single transformed SQL statement.
Args:
- sql (str): the SQL code string to transpile.
- read (str): the source dialect used to parse the input string
- (eg. "spark", "hive", "presto", "mysql").
- write (str): the target dialect into which the input should be transformed
- (eg. "spark", "hive", "presto", "mysql").
- identity (bool): if set to True and if the target dialect is not specified
- the source dialect will be used as both: the source and the target dialect.
- error_level (ErrorLevel): the desired error level of the parser.
+ sql: the SQL code string to transpile.
+ read: the source dialect used to parse the input string (eg. "spark", "hive", "presto", "mysql").
+ write: the target dialect into which the input should be transformed (eg. "spark", "hive", "presto", "mysql").
+ identity: if set to `True` and if the target dialect is not specified the source dialect will be used as both:
+ the source and the target dialect.
+ error_level: the desired error level of the parser.
**opts: other options.
Returns:
- typing.List[str]: the list of transpiled SQL statements / expressions.
+ The list of transpiled SQL statements.
"""
write = write or read if identity else write
return [