Skip to content

SQLParser

laktory.SQLParser() ¤

SQL Parser translating SQL string expression to a Narwhals Expression.

METHOD DESCRIPTION
parse

Parse SQL expression.

Source code in laktory/sqlparser.py
16
17
def __init__(self):
    self.context = {}

parse(sql) ¤

Parse SQL expression.

PARAMETER DESCRIPTION
sql

SQL Expression

TYPE: str

RETURNS DESCRIPTION
Expr

Narwhals expression

Examples:

import laktory as lk

parser = lk.SQLParser()

print(parser.parse("2*x + y"))
'''
Narwhals Expr
metadata: ExprMetadata(
  expansion_kind: ExpansionKind.SINGLE,
  last_node: ExprKind.NARY,
  has_windows: False,
  n_orderable_ops: 0,
  is_elementwise: False,
  preserves_length: True,
  is_scalar_like: False,
  is_literal: False,
)
'''
Source code in laktory/sqlparser.py
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
def parse(self, sql: str) -> nw.Expr:
    """
    Parse SQL expression.

    Parameters
    ----------
    sql:
        SQL Expression

    Returns
    -------
    :
        Narwhals expression

    Examples
    --------
    ```py
    import laktory as lk

    parser = lk.SQLParser()

    print(parser.parse("2*x + y"))
    '''
    Narwhals Expr
    metadata: ExprMetadata(
      expansion_kind: ExpansionKind.SINGLE,
      last_node: ExprKind.NARY,
      has_windows: False,
      n_orderable_ops: 0,
      is_elementwise: False,
      preserves_length: True,
      is_scalar_like: False,
      is_literal: False,
    )
    '''
    ```
    """
    parsed_expr = sqlglot.parse_one(sql)
    # visitor = SQLExprVisitor(self.context)
    return self.visit_expr(parsed_expr)