execsql2 2.16.1__py3-none-any.whl → 2.16.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- execsql/script/executor.py +5 -0
- execsql/script/parser.py +9 -1
- {execsql2-2.16.1.dist-info → execsql2-2.16.2.dist-info}/METADATA +1 -1
- {execsql2-2.16.1.dist-info → execsql2-2.16.2.dist-info}/RECORD +23 -23
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/README.md +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/config_settings.sqlite +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/example_config_prompt.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/execsql.conf +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/make_config_db.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/md_compare.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/md_glossary.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/md_upsert.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/pg_compare.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/pg_glossary.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/pg_upsert.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/script_template.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/ss_compare.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/ss_glossary.sql +0 -0
- {execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/ss_upsert.sql +0 -0
- {execsql2-2.16.1.dist-info → execsql2-2.16.2.dist-info}/WHEEL +0 -0
- {execsql2-2.16.1.dist-info → execsql2-2.16.2.dist-info}/entry_points.txt +0 -0
- {execsql2-2.16.1.dist-info → execsql2-2.16.2.dist-info}/licenses/LICENSE.txt +0 -0
- {execsql2-2.16.1.dist-info → execsql2-2.16.2.dist-info}/licenses/NOTICE +0 -0
execsql/script/executor.py
CHANGED
|
@@ -760,6 +760,11 @@ def _execute_include_native(
|
|
|
760
760
|
effective_locals = _stack_localvars(ctx) or localvars
|
|
761
761
|
target = substitute_vars(node.target, effective_locals, ctx=ctx).strip()
|
|
762
762
|
|
|
763
|
+
# Strip surrounding quotes — the AST parser captures the full target
|
|
764
|
+
# including any quotes, but the legacy dispatch regex stripped them.
|
|
765
|
+
if len(target) >= 2 and target[0] in ('"', "'") and target[-1] == target[0]:
|
|
766
|
+
target = target[1:-1]
|
|
767
|
+
|
|
763
768
|
# Tilde expansion (matches x_include legacy handler)
|
|
764
769
|
if len(target) > 1 and target[0] == "~" and target[1] == os.sep:
|
|
765
770
|
target = str(Path.home() / target[2:])
|
execsql/script/parser.py
CHANGED
|
@@ -95,6 +95,14 @@ _INCLUDE_RX = re.compile(
|
|
|
95
95
|
re.I,
|
|
96
96
|
)
|
|
97
97
|
|
|
98
|
+
|
|
99
|
+
def _strip_quotes(s: str) -> str:
|
|
100
|
+
"""Strip a matching pair of surrounding quotes from *s*."""
|
|
101
|
+
if len(s) >= 2 and s[0] in ('"', "'") and s[-1] == s[0]:
|
|
102
|
+
return s[1:-1]
|
|
103
|
+
return s
|
|
104
|
+
|
|
105
|
+
|
|
98
106
|
_EXEC_SCRIPT_RX = re.compile(
|
|
99
107
|
r"^\s*(?:EXEC(?:UTE)?|RUN)\s+SCRIPT"
|
|
100
108
|
r"(?P<exists>\s+IF\s+EXISTS)?"
|
|
@@ -545,7 +553,7 @@ def _parse_lines(lines: Iterable[str], source_name: str) -> Script:
|
|
|
545
553
|
_current_body().append(
|
|
546
554
|
IncludeDirective(
|
|
547
555
|
span=SourceSpan(source_name, file_lineno),
|
|
548
|
-
target=m.group("target").strip(),
|
|
556
|
+
target=_strip_quotes(m.group("target").strip()),
|
|
549
557
|
if_exists=m.group("exists") is not None,
|
|
550
558
|
),
|
|
551
559
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: execsql2
|
|
3
|
-
Version: 2.16.
|
|
3
|
+
Version: 2.16.2
|
|
4
4
|
Summary: Runs a SQL script against a PostgreSQL, SQLite, MariaDB/MySQL, DuckDB, Firebird, MS-Access, MS-SQL-Server, or Oracle database, or an ODBC DSN. Provides metacommands to import and export data, copy data between databases, conditionally execute SQL and metacommands, and dynamically alter SQL and metacommands with substitution variables.
|
|
5
5
|
Project-URL: Homepage, https://execsql2.readthedocs.io
|
|
6
6
|
Project-URL: Repository, https://github.com/geocoug/execsql
|
|
@@ -84,8 +84,8 @@ execsql/script/__init__.py,sha256=3WaBklMVIWjtCsYQ-BVo9UAVEIATOgeGsuyv21YKnxo,39
|
|
|
84
84
|
execsql/script/ast.py,sha256=yFw9ZvLLDNNSmSgy7cwK2fXLatpp2CKYAAyOneJoKVc,18836
|
|
85
85
|
execsql/script/control.py,sha256=s-1eZdGARM6H1FwZ6VDdO_f50j7bvvRtTHesfUm9tbc,6144
|
|
86
86
|
execsql/script/engine.py,sha256=EhuVBniOrFkzAW4I3NIZLt3INHTZJvlYoF7B99rZBLI,29391
|
|
87
|
-
execsql/script/executor.py,sha256=
|
|
88
|
-
execsql/script/parser.py,sha256=
|
|
87
|
+
execsql/script/executor.py,sha256=35RGyua8sGR2rrrnf3WvaC3nAjobKoH9pmVm4FJ5oZY,34213
|
|
88
|
+
execsql/script/parser.py,sha256=4Mk5tF4rr9lpJpJh-cPPFemkQta2QBbNnMqFQ6S5huo,24983
|
|
89
89
|
execsql/script/variables.py,sha256=ZSBGQUsoii6w3dLDVY9xxoPIV6wY0sAV_BNIQ6pgQAE,14328
|
|
90
90
|
execsql/utils/__init__.py,sha256=0uR6JwVJQRX3vceByNBduCAf5dd5assKjeqJUWvpZoA,278
|
|
91
91
|
execsql/utils/auth.py,sha256=onXzNkNZQZxGC5w7eey06sjvAIAX_Lf9g7nUJtcsel0,7009
|
|
@@ -99,24 +99,24 @@ execsql/utils/numeric.py,sha256=xh02ANSRk3nUpQ-rtm66ILoMqoi7HtzCoRMIOT9U8QI,1570
|
|
|
99
99
|
execsql/utils/regex.py,sha256=diEzTZqU_HHwVMadPAvN1Vgzhl7I03eVaEFGCXyGGL8,3770
|
|
100
100
|
execsql/utils/strings.py,sha256=5Dvzrk-9SIw2lpxXZQkiJbNyo1sy7iXXAtSULlZ0KG8,8488
|
|
101
101
|
execsql/utils/timer.py,sha256=eDYf5VzCNFk7oo90InJucUm3XcBdhYMogjZMqeg9xzc,1899
|
|
102
|
-
execsql2-2.16.
|
|
103
|
-
execsql2-2.16.
|
|
104
|
-
execsql2-2.16.
|
|
105
|
-
execsql2-2.16.
|
|
106
|
-
execsql2-2.16.
|
|
107
|
-
execsql2-2.16.
|
|
108
|
-
execsql2-2.16.
|
|
109
|
-
execsql2-2.16.
|
|
110
|
-
execsql2-2.16.
|
|
111
|
-
execsql2-2.16.
|
|
112
|
-
execsql2-2.16.
|
|
113
|
-
execsql2-2.16.
|
|
114
|
-
execsql2-2.16.
|
|
115
|
-
execsql2-2.16.
|
|
116
|
-
execsql2-2.16.
|
|
117
|
-
execsql2-2.16.
|
|
118
|
-
execsql2-2.16.
|
|
119
|
-
execsql2-2.16.
|
|
120
|
-
execsql2-2.16.
|
|
121
|
-
execsql2-2.16.
|
|
122
|
-
execsql2-2.16.
|
|
102
|
+
execsql2-2.16.2.data/data/execsql2_extras/README.md,sha256=sxwVyU0ZahCfANv56LahkyuM505kFjrMhe-1SvWE69E,4845
|
|
103
|
+
execsql2-2.16.2.data/data/execsql2_extras/config_settings.sqlite,sha256=aY5cxR7Q7J6zJ4bC9lu5mHUrhy211Cq3MNKPQVCt02E,20480
|
|
104
|
+
execsql2-2.16.2.data/data/execsql2_extras/example_config_prompt.sql,sha256=SY3Jxn1qcVm4kPW9xmmTfknHfvURXmeEYTbRjYrjGSw,7487
|
|
105
|
+
execsql2-2.16.2.data/data/execsql2_extras/execsql.conf,sha256=_45iJ-KWZnB8uMW_gEg067MM5pmGJ-dVl7VbAZMunAE,9530
|
|
106
|
+
execsql2-2.16.2.data/data/execsql2_extras/make_config_db.sql,sha256=WwyC6dK-Eh5CAVppiBCDHqiI1_wEI9U95Ytpr4lsZkg,8726
|
|
107
|
+
execsql2-2.16.2.data/data/execsql2_extras/md_compare.sql,sha256=B8Wd7LZ0vnMY2qvA139JIEBkPObgRH2i5xj6PejTQt8,24092
|
|
108
|
+
execsql2-2.16.2.data/data/execsql2_extras/md_glossary.sql,sha256=DJRHcU5NbFpxTTX-IwH3yRlsboj1q6BBGrUAHKn4Cuo,10796
|
|
109
|
+
execsql2-2.16.2.data/data/execsql2_extras/md_upsert.sql,sha256=v_7GbWh_N1mBTmw3gvTrkagOVp2q0KmXvM8hE-DlFxY,112524
|
|
110
|
+
execsql2-2.16.2.data/data/execsql2_extras/pg_compare.sql,sha256=9dWa8hnfy5dVJI-z2iGpd9JzQmI4j2ziMlEdpnr66ro,24352
|
|
111
|
+
execsql2-2.16.2.data/data/execsql2_extras/pg_glossary.sql,sha256=pKjIIDsROAgJq2H-1qNEcRMAWManivcZ_AEVHzUUlic,9908
|
|
112
|
+
execsql2-2.16.2.data/data/execsql2_extras/pg_upsert.sql,sha256=k7AFiGTLBy3nf-qO5QIaZrEYTAKvdxxU3JDLx9jqkzs,108315
|
|
113
|
+
execsql2-2.16.2.data/data/execsql2_extras/script_template.sql,sha256=1Estacb_vm1FgK41k_G9nuduP1yiA-fQ1Kn4Z4mv5Ao,11153
|
|
114
|
+
execsql2-2.16.2.data/data/execsql2_extras/ss_compare.sql,sha256=TsVxWm3cEpR5-EiMYXNhtaY0arSNeKZhsJdHdLA7xeI,24833
|
|
115
|
+
execsql2-2.16.2.data/data/execsql2_extras/ss_glossary.sql,sha256=cLM7nN8JOIu9ZVP9oY9qdSK3hrnWJiDcX6nZmQQbQWI,13065
|
|
116
|
+
execsql2-2.16.2.data/data/execsql2_extras/ss_upsert.sql,sha256=BCqmBykXBF-BpCgOFeG1qhf2XfScKsxPD17wd1hYfHw,120647
|
|
117
|
+
execsql2-2.16.2.dist-info/METADATA,sha256=zFrU6GFUFGmxMEW3tV0Hh1Zl2IaU2WCxFfsFBIGW0Fo,20920
|
|
118
|
+
execsql2-2.16.2.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
119
|
+
execsql2-2.16.2.dist-info/entry_points.txt,sha256=sUOxkM-dN1eBGGpSpDLsAaE0yNXYQKWZAfxPOlMkQyk,90
|
|
120
|
+
execsql2-2.16.2.dist-info/licenses/LICENSE.txt,sha256=LBdhuxejF8_bLCHZ2kWfmDXpDGUu914Gbd6_3JjCRe0,676
|
|
121
|
+
execsql2-2.16.2.dist-info/licenses/NOTICE,sha256=sqVrM73Ys9zfvWC_P797lHfTnoPW_ETeBSrUTFaob0A,339
|
|
122
|
+
execsql2-2.16.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{execsql2-2.16.1.data → execsql2-2.16.2.data}/data/execsql2_extras/example_config_prompt.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|