execsql2 2.17.3__py3-none-any.whl → 2.18.1__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/cli/__init__.py +15 -5
- execsql/cli/lint.py +296 -430
- execsql/cli/run.py +29 -2
- execsql/config.py +20 -0
- execsql/db/access.py +6 -0
- execsql/db/base.py +57 -1
- execsql/db/dsn.py +19 -9
- execsql/db/firebird.py +6 -0
- execsql/db/mysql.py +81 -0
- execsql/db/oracle.py +6 -0
- execsql/db/sqlite.py +37 -18
- execsql/db/sqlserver.py +31 -6
- execsql/exporters/base.py +1 -1
- execsql/exporters/duckdb.py +8 -4
- execsql/exporters/ods.py +11 -0
- execsql/exporters/sqlite.py +10 -3
- execsql/exporters/templates.py +10 -0
- execsql/exporters/xls.py +4 -0
- execsql/exporters/xlsx.py +9 -0
- execsql/importers/json.py +49 -32
- execsql/metacommands/conditions.py +7 -2
- execsql/metacommands/dispatch.py +5 -10
- execsql/metacommands/io_export.py +21 -26
- execsql/metacommands/io_fileops.py +21 -3
- execsql/metacommands/io_import.py +23 -3
- execsql/metacommands/script_ext.py +8 -7
- execsql/script/ast.py +8 -0
- execsql/script/engine.py +33 -12
- execsql/script/executor.py +12 -0
- execsql/script/variables.py +41 -15
- execsql/utils/auth.py +49 -1
- execsql/utils/fileio.py +120 -0
- execsql/utils/gui.py +11 -1
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/md_compare.sql +12 -12
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/md_glossary.sql +5 -5
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/md_upsert.sql +13 -13
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/pg_compare.sql +24 -24
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/pg_glossary.sql +5 -5
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/pg_upsert.sql +29 -29
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/script_template.sql +2 -2
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/ss_compare.sql +24 -24
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/ss_glossary.sql +6 -6
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/ss_upsert.sql +2917 -2917
- {execsql2-2.17.3.dist-info → execsql2-2.18.1.dist-info}/METADATA +47 -40
- {execsql2-2.17.3.dist-info → execsql2-2.18.1.dist-info}/RECORD +54 -55
- execsql/cli/lint_ast.py +0 -439
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/README.md +0 -0
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/config_settings.sqlite +0 -0
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/example_config_prompt.sql +0 -0
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/execsql.conf +0 -0
- {execsql2-2.17.3.data → execsql2-2.18.1.data}/data/execsql2_extras/make_config_db.sql +0 -0
- {execsql2-2.17.3.dist-info → execsql2-2.18.1.dist-info}/WHEEL +0 -0
- {execsql2-2.17.3.dist-info → execsql2-2.18.1.dist-info}/entry_points.txt +0 -0
- {execsql2-2.17.3.dist-info → execsql2-2.18.1.dist-info}/licenses/LICENSE.txt +0 -0
- {execsql2-2.17.3.dist-info → execsql2-2.18.1.dist-info}/licenses/NOTICE +0 -0
execsql/cli/__init__.py
CHANGED
|
@@ -8,8 +8,7 @@ Submodules:
|
|
|
8
8
|
- :mod:`execsql.cli.help` — Rich-formatted help output & console objects
|
|
9
9
|
- :mod:`execsql.cli.dsn` — Connection-string (DSN URL) parser
|
|
10
10
|
- :mod:`execsql.cli.run` — Core execution logic (``_run``, ``_connect_initial_db``, ``_ping_db``, ``_print_dry_run``, ``_print_profile``)
|
|
11
|
-
- :mod:`execsql.cli.
|
|
12
|
-
- :mod:`execsql.cli.lint` — Lint result printing (``_print_lint_results``); the flat-CommandList ``_lint_cmdlist`` it also contains is legacy and no longer reached from the CLI
|
|
11
|
+
- :mod:`execsql.cli.lint` — AST-based ``--lint`` static analyser and Rich result printer
|
|
13
12
|
"""
|
|
14
13
|
|
|
15
14
|
from __future__ import annotations
|
|
@@ -235,6 +234,16 @@ def main(
|
|
|
235
234
|
"--no-system-cmd",
|
|
236
235
|
help="Disable the SYSTEM_CMD (SHELL) metacommand. Scripts that use SHELL will fail with an error.",
|
|
237
236
|
),
|
|
237
|
+
no_rm_file: bool = typer.Option(
|
|
238
|
+
False,
|
|
239
|
+
"--no-rm-file",
|
|
240
|
+
help="Disable the RM_FILE metacommand. Scripts that try to delete files will fail with an error.",
|
|
241
|
+
),
|
|
242
|
+
no_serve: bool = typer.Option(
|
|
243
|
+
False,
|
|
244
|
+
"--no-serve",
|
|
245
|
+
help="Disable the SERVE metacommand. Scripts that try to stream a file to stdout will fail with an error.",
|
|
246
|
+
),
|
|
238
247
|
profile: bool = typer.Option(
|
|
239
248
|
False,
|
|
240
249
|
"--profile",
|
|
@@ -544,8 +553,7 @@ def main(
|
|
|
544
553
|
# Lint: AST-based static analysis (no DB connection needed)
|
|
545
554
|
# ------------------------------------------------------------------
|
|
546
555
|
if lint:
|
|
547
|
-
from execsql.cli.lint import _print_lint_results
|
|
548
|
-
from execsql.cli.lint_ast import lint_ast
|
|
556
|
+
from execsql.cli.lint import _print_lint_results, lint as _lint_script
|
|
549
557
|
from execsql.script.parser import parse_script, parse_string
|
|
550
558
|
|
|
551
559
|
label = script_name or "<inline>"
|
|
@@ -566,7 +574,7 @@ def main(
|
|
|
566
574
|
exit_code = _print_lint_results(issues, label)
|
|
567
575
|
raise typer.Exit(code=exit_code) from exc
|
|
568
576
|
|
|
569
|
-
issues =
|
|
577
|
+
issues = _lint_script(tree, script_path=script_name)
|
|
570
578
|
exit_code = _print_lint_results(issues, label)
|
|
571
579
|
raise typer.Exit(code=exit_code)
|
|
572
580
|
|
|
@@ -604,6 +612,8 @@ def main(
|
|
|
604
612
|
lint=lint,
|
|
605
613
|
debug=debug,
|
|
606
614
|
no_system_cmd=no_system_cmd,
|
|
615
|
+
no_rm_file=no_rm_file,
|
|
616
|
+
no_serve=no_serve,
|
|
607
617
|
config_file=config_file,
|
|
608
618
|
)
|
|
609
619
|
|