Skip to content

Commit 561e047

Browse files
committed
Fix issue with Python 3.14 and Interpolation types
1 parent 9ed1a16 commit 561e047

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

src/sql_tstring/parser.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,18 @@
55
from enum import auto, Enum, unique
66
from typing import cast
77

8-
from sql_tstring.t import Template as TTemplate
8+
from sql_tstring.t import Interpolation as TInterpolation, Template as TTemplate
99

1010
try:
1111
from string.templatelib import Interpolation, Template # type: ignore[import-untyped]
1212
except ImportError:
13-
from sql_tstring.t import Interpolation, Template
13+
14+
class Interpolation: # type: ignore[no-redef]
15+
pass
16+
17+
class Template: # type: ignore[no-redef]
18+
pass
19+
1420

1521
SPLIT_RE = re.compile(r"([^\s'(]+\(|\(|'+|[ ',;)\n\t])")
1622

@@ -364,6 +370,11 @@ def _parse_template(template: Template, current_node: Node, statements: list[Sta
364370
_parse_template(value, current_node, statements)
365371
else:
366372
_parse_placeholder(current_node, value)
373+
case TInterpolation(value, _, _, _):
374+
if isinstance(value, (Template, TTemplate)):
375+
_parse_template(value, current_node, statements)
376+
else:
377+
_parse_placeholder(current_node, value)
367378
case str() as raw:
368379
current_node = _parse_string(raw, current_node, statements)
369380

0 commit comments

Comments
 (0)