execsql2 2.25.1__py3-none-any.whl → 2.27.0__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.
Files changed (43) hide show
  1. execsql/cli/commands/__init__.py +1 -0
  2. execsql/cli/commands/format.py +10 -0
  3. execsql/cli/commands/listing.py +32 -5
  4. execsql/cli/commands/lsp.py +40 -0
  5. execsql/cli/dispatch.py +1 -1
  6. execsql/cli/help.py +44 -96
  7. execsql/cli/lint.py +13 -0
  8. execsql/config.py +2 -0
  9. execsql/data/execsql.conf.template +3 -0
  10. execsql/format.py +106 -21
  11. execsql/lsp/__init__.py +6 -0
  12. execsql/lsp/code_actions.py +217 -0
  13. execsql/lsp/completion.py +203 -0
  14. execsql/lsp/diagnostics.py +66 -0
  15. execsql/lsp/document.py +206 -0
  16. execsql/lsp/folding.py +59 -0
  17. execsql/lsp/formatting.py +37 -0
  18. execsql/lsp/hover.py +119 -0
  19. execsql/lsp/navigation.py +169 -0
  20. execsql/lsp/rename.py +91 -0
  21. execsql/lsp/server.py +358 -0
  22. execsql/metacommands/dispatch.py +7 -0
  23. execsql/metacommands/reference.py +1404 -0
  24. {execsql2-2.25.1.dist-info → execsql2-2.27.0.dist-info}/METADATA +35 -21
  25. {execsql2-2.25.1.dist-info → execsql2-2.27.0.dist-info}/RECORD +43 -30
  26. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/README.md +0 -0
  27. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/config_settings.sqlite +0 -0
  28. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/example_config_prompt.sql +0 -0
  29. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/make_config_db.sql +0 -0
  30. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/md_compare.sql +0 -0
  31. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/md_glossary.sql +0 -0
  32. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/md_upsert.sql +0 -0
  33. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/pg_compare.sql +0 -0
  34. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/pg_glossary.sql +0 -0
  35. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/pg_upsert.sql +0 -0
  36. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/script_template.sql +0 -0
  37. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/ss_compare.sql +0 -0
  38. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/ss_glossary.sql +0 -0
  39. {execsql2-2.25.1.data → execsql2-2.27.0.data}/data/execsql2_extras/ss_upsert.sql +0 -0
  40. {execsql2-2.25.1.dist-info → execsql2-2.27.0.dist-info}/WHEEL +0 -0
  41. {execsql2-2.25.1.dist-info → execsql2-2.27.0.dist-info}/entry_points.txt +0 -0
  42. {execsql2-2.25.1.dist-info → execsql2-2.27.0.dist-info}/licenses/LICENSE.txt +0 -0
  43. {execsql2-2.25.1.dist-info → execsql2-2.27.0.dist-info}/licenses/NOTICE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: execsql2
3
- Version: 2.25.1
3
+ Version: 2.27.0
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
@@ -49,16 +49,19 @@ Requires-Dist: duckdb>=1.0; extra == 'all'
49
49
  Requires-Dist: firebird-driver>=1.10; extra == 'all'
50
50
  Requires-Dist: jinja2>=3.1; extra == 'all'
51
51
  Requires-Dist: keyring>=25.0; extra == 'all'
52
+ Requires-Dist: lsprotocol>=2025.0.0; extra == 'all'
52
53
  Requires-Dist: odfpy>=1.4; extra == 'all'
53
54
  Requires-Dist: openpyxl>=3.1; extra == 'all'
54
55
  Requires-Dist: oracledb>=3.0; extra == 'all'
55
56
  Requires-Dist: pg-upsert>=1.25.0; extra == 'all'
56
57
  Requires-Dist: polars>=1.0; extra == 'all'
57
58
  Requires-Dist: psycopg[binary]<4,>=3.1; extra == 'all'
59
+ Requires-Dist: pygls<3,>=2.1; extra == 'all'
58
60
  Requires-Dist: pymysql>=1.1; extra == 'all'
59
61
  Requires-Dist: pyodbc>=5.0; extra == 'all'
62
+ Requires-Dist: pytz; extra == 'all'
60
63
  Requires-Dist: pyyaml>=6.0; extra == 'all'
61
- Requires-Dist: sqlglot>=25.0; extra == 'all'
64
+ Requires-Dist: sqlglot<30.22,>=30.21.0; extra == 'all'
62
65
  Requires-Dist: tables>=3.10; extra == 'all'
63
66
  Requires-Dist: tkintermapview>=1.29; extra == 'all'
64
67
  Requires-Dist: xlrd>=2.0; extra == 'all'
@@ -69,6 +72,7 @@ Requires-Dist: oracledb>=3.0; extra == 'all-db'
69
72
  Requires-Dist: psycopg[binary]<4,>=3.1; extra == 'all-db'
70
73
  Requires-Dist: pymysql>=1.1; extra == 'all-db'
71
74
  Requires-Dist: pyodbc>=5.0; extra == 'all-db'
75
+ Requires-Dist: pytz; extra == 'all-db'
72
76
  Provides-Extra: auth
73
77
  Requires-Dist: keyring>=25.0; extra == 'auth'
74
78
  Provides-Extra: auth-encrypted
@@ -83,23 +87,27 @@ Requires-Dist: build>=1.2.2.post1; extra == 'dev'
83
87
  Requires-Dist: bump-my-version>=1.2.7; extra == 'dev'
84
88
  Requires-Dist: defusedxml>=0.7; extra == 'dev'
85
89
  Requires-Dist: jinja2>=3.1; extra == 'dev'
90
+ Requires-Dist: lsprotocol>=2025.0.0; extra == 'dev'
86
91
  Requires-Dist: mkdocstrings-python>=2.0.3; extra == 'dev'
87
92
  Requires-Dist: mypy>=1.10; extra == 'dev'
88
93
  Requires-Dist: odfpy>=1.4; extra == 'dev'
89
94
  Requires-Dist: openpyxl>=3.1; extra == 'dev'
90
95
  Requires-Dist: polars>=1.0; extra == 'dev'
91
96
  Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
97
+ Requires-Dist: pygls<3,>=2.1; extra == 'dev'
92
98
  Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
99
+ Requires-Dist: pytest-lsp>=1.0; extra == 'dev'
93
100
  Requires-Dist: pyyaml>=6.0; extra == 'dev'
94
101
  Requires-Dist: ruff>=0.4; extra == 'dev'
95
- Requires-Dist: sqlglot>=25.0; extra == 'dev'
102
+ Requires-Dist: sqlglot<30.22,>=30.21.0; extra == 'dev'
96
103
  Requires-Dist: tables>=3.10; extra == 'dev'
97
104
  Requires-Dist: tox-uv>=1.13.1; extra == 'dev'
98
105
  Requires-Dist: twine>=6.1.0; extra == 'dev'
99
106
  Requires-Dist: xlrd>=2.0; extra == 'dev'
100
- Requires-Dist: zensical==0.0.28; extra == 'dev'
107
+ Requires-Dist: zensical==0.0.67; extra == 'dev'
101
108
  Provides-Extra: duckdb
102
109
  Requires-Dist: duckdb>=1.0; extra == 'duckdb'
110
+ Requires-Dist: pytz; extra == 'duckdb'
103
111
  Provides-Extra: firebird
104
112
  Requires-Dist: firebird-driver>=1.10; extra == 'firebird'
105
113
  Provides-Extra: formats
@@ -112,7 +120,11 @@ Requires-Dist: pyyaml>=6.0; extra == 'formats'
112
120
  Requires-Dist: tables>=3.10; extra == 'formats'
113
121
  Requires-Dist: xlrd>=2.0; extra == 'formats'
114
122
  Provides-Extra: formatter
115
- Requires-Dist: sqlglot>=25.0; extra == 'formatter'
123
+ Requires-Dist: sqlglot<30.22,>=30.21.0; extra == 'formatter'
124
+ Provides-Extra: lsp
125
+ Requires-Dist: lsprotocol>=2025.0.0; extra == 'lsp'
126
+ Requires-Dist: pygls<3,>=2.1; extra == 'lsp'
127
+ Requires-Dist: sqlglot<30.22,>=30.21.0; extra == 'lsp'
116
128
  Provides-Extra: map
117
129
  Requires-Dist: tkintermapview>=1.29; extra == 'map'
118
130
  Provides-Extra: mssql
@@ -158,15 +170,16 @@ Description-Content-Type: text/markdown
158
170
 
159
171
  Scripts are ordinary SQL plus metacommands embedded in comments (`-- !x!`), which add importing and exporting data, copying between databases, conditional execution, looping, substitution variables, and interactive prompts. Because the metacommands live in comments, the scripts stay valid SQL and other tools (`psql`, `sqlcmd`, your editor) ignore them.
160
172
 
161
- | Command | What it does | Needs a database? |
162
- | ------------------------------------------ | ----------------------------------------------------------------------- | ----------------- |
163
- | `execsql format` | Normalize keywords, indentation, and SQL layout | No |
164
- | `execsql lint` | Static analysis: structure, unknown metacommands, variables, targets | No |
165
- | `execsql run` | Run the script against PostgreSQL, MySQL, SQLite, DuckDB, … | Yes |
166
- | `execsql config` | Show every config option, its value, and the file that set it | No |
167
- | `execsql list` | Metacommands, encodings, plugins, or the keyword vocabulary | No |
168
- | `execsql init` | Set up a project: config file, a script with a header, pre-commit hooks | No |
169
- | [VS Code extension](extras/vscode-execsql) | Syntax highlighting for metacommands and variables | No |
173
+ | Command | What it does | Needs a database? |
174
+ | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
175
+ | `execsql format` | Normalize keywords, indentation, and SQL layout | No |
176
+ | `execsql lint` | Static analysis: structure, unknown metacommands, variables, targets | No |
177
+ | `execsql run` | Run the script against PostgreSQL, MySQL, SQLite, DuckDB, … | Yes |
178
+ | `execsql config` | Show every config option, its value, and the file that set it | No |
179
+ | `execsql list` | Metacommands, encodings, plugins, or the keyword vocabulary | No |
180
+ | `execsql init` | Set up a project: config file, a script with a header, pre-commit hooks | No |
181
+ | `execsql lsp` | [Language server](https://execsql2.readthedocs.io/en/latest/guides/editors/): lint findings, completion, hover, navigation, quick fixes and formatting in your editor | No |
182
+ | [VS Code extension](extras/vscode-execsql) | Highlighting plus everything `execsql lsp` provides | No |
170
183
 
171
184
  `format` and `lint` take files or directories.
172
185
 
@@ -451,7 +464,7 @@ execsql format --no-sql --in-place scripts/
451
464
  ```yaml
452
465
  repos:
453
466
  - repo: https://github.com/geocoug/execsql
454
- rev: v2.25.1
467
+ rev: v2.27.0
455
468
  hooks:
456
469
  - id: execsql-format
457
470
  - id: execsql-lint
@@ -459,17 +472,18 @@ repos:
459
472
 
460
473
  The format hook rewrites `*.sql` files in place by default; the lint hook fails the commit when a script has a lint error. See the [formatter documentation](https://execsql2.readthedocs.io/en/latest/guides/formatter/) for `--check`, `--indent`, and other options.
461
474
 
462
- ## VS Code Syntax Highlighting
475
+ ## VS Code
463
476
 
464
- A VS Code extension for execsql syntax highlighting is included in [`extras/vscode-execsql`](extras/vscode-execsql). It injects a TextMate grammar into `.sql` files, adding highlighting for `-- !x!` metacommand markers, keywords (control flow, block, action, directive), variable substitutions (`!!var!!`, `!{var}!`), built-in functions, export formats, and config options, all layered on top of standard SQL highlighting.
465
-
466
- To install, symlink the extension folder into your VS Code extensions directory:
477
+ The VS Code extension in [`extras/vscode-execsql`](extras/vscode-execsql) highlights execsql syntax in `.sql` files (metacommand markers, keywords, variable substitutions, export formats, config options) on top of standard SQL highlighting, and starts the execsql language server for lint findings as you type and completion. Each GitHub release has the extension attached as `execsql-syntax.vsix`:
467
478
 
468
479
  ```sh
469
- ln -s /path/to/execsql/extras/vscode-execsql ~/.vscode/extensions/execsql-syntax
480
+ uv tool install "execsql2[lsp]" # the language server
481
+ code --install-extension execsql-syntax.vsix # the extension, from the release
470
482
  ```
471
483
 
472
- See the [extension README](extras/vscode-execsql/README.md) for Windows instructions, color customization, and troubleshooting.
484
+ If execsql is already installed with other extras, name them too, e.g. `uv tool install "execsql2[postgres,lsp]"` or `pipx install --force "execsql2[postgres,lsp]"`: the new list replaces the old one (see [Adding an extra later](https://execsql2.readthedocs.io/en/latest/getting-started/installation/#adding-an-extra-later)).
485
+
486
+ Other editors use the language server directly: see [Editor Support](https://execsql2.readthedocs.io/en/latest/guides/editors/). The [extension README](extras/vscode-execsql/README.md) covers settings, installing from a clone, color customization, and troubleshooting.
473
487
 
474
488
  ## Templates
475
489
 
@@ -1,10 +1,10 @@
1
1
  execsql/__init__.py,sha256=ZeVnpEWu8M2bn3qLmVM72NhWRueUGNbsX8UAPTermo0,901
2
2
  execsql/__main__.py,sha256=HdbK-SAhyUmfB6xINY5AzxdMSxGzWSGEG_2dv42Jn64,315
3
3
  execsql/api.py,sha256=UJJSlFHySuINeoExaMXqhl00hVSPH1s7G4m8T0NX_xI,26484
4
- execsql/config.py,sha256=f9UMX5LECVL6KnvvTmIIAMrqOfYe_elQxjW1TOSt4fA,38040
4
+ execsql/config.py,sha256=GUKE3sLGExMMhMkmxi8eXXBWmN74E0vqnt1eTBPRsG4,38166
5
5
  execsql/config_validation.py,sha256=a4ZszyJFGTNgs1jkvXE3yMCaYFtF1Uqih2ojMDVh1v8,10556
6
6
  execsql/exceptions.py,sha256=aHavdblmP7m5ZLxyyKKmPSwwbdmP962j4ShP1Gd9r64,9651
7
- execsql/format.py,sha256=rpe-eB7V9J2z7Itr_MFtdUeU2-sR8F6B7a3vYmHXKd0,54253
7
+ execsql/format.py,sha256=_KNFGTnEihO0Bn-E8k0QNLijAS4NDE8Ee1ldL7_MKZc,57430
8
8
  execsql/interactive.py,sha256=7vm7NAlcarBJJOIffcLOcJqH9ZCInvHB_CmC2sQsXf8,8241
9
9
  execsql/manifest.py,sha256=ibceEZtH2FqsUiujbTGy5D3W0WgO4tFCs7bjIHVdep4,8062
10
10
  execsql/models.py,sha256=yXR9FMCSCRonfyiuWlYwqLBMLzWQcvFQOjGHogM8Veg,15556
@@ -16,21 +16,22 @@ execsql/state.pyi,sha256=pEuTT4G6VNiwy4Ii7OUXc1RvzcQvjFkeFazSGEOprs0,4300
16
16
  execsql/types.py,sha256=qUJ5kVKz_Crc9hti5u9_VnVzLBQ2n5Jtbje5hSwxGzE,32809
17
17
  execsql/cli/__init__.py,sha256=8wDwIAFq7AI9iSGuw-Xfky-izN_7oHjUegr_brEBot0,3197
18
18
  execsql/cli/application.py,sha256=qKjkhDMWB7fEjEbqOLZ3pNFw80piBnRSeW_DfZg-9MA,12448
19
- execsql/cli/dispatch.py,sha256=ew10mZNXsFHwiNd_etvpSQYD3T8CiexXkjC3Ja94C4w,2697
19
+ execsql/cli/dispatch.py,sha256=deyN2QQYvdzMSqGGa3CSMpaqdLNeMgc5Uke0mUbl764,2704
20
20
  execsql/cli/dsn.py,sha256=uBspf8DXCn2pXmT1Ug1c4IG7IgR5IFGKp9138puaubo,3289
21
- execsql/cli/help.py,sha256=Edr3d2ahKv387a6WGgyJi5vKIFe39tGPgTv1GKp3itE,10848
22
- execsql/cli/lint.py,sha256=ZW-FhAjLSuqVNndfP_LX0YfZNswUCkyFAvk3aNPjHpU,46256
21
+ execsql/cli/help.py,sha256=bEy6ssVjyIw73JD_UPLXnCtnCifdVCKJr_cydAAVxhk,8220
22
+ execsql/cli/lint.py,sha256=11hmvhCRn7iq-Y1A-a6dxjktsRQChAatz7InF08jwJU,46759
23
23
  execsql/cli/options.py,sha256=Srhf1gEOB5yy_7PxkTKBv07xK8Qzw8H-z7PUUnItpwE,2916
24
24
  execsql/cli/run.py,sha256=5f0SX6QyNl8Ur2MwuW2GaN1OqVpWbEI8CQV3k-hBwH8,41987
25
- execsql/cli/commands/__init__.py,sha256=wN5sbhKs11S8EZOTBd_GPP6TPjhYfiQkrI48Sy8n6U0,521
25
+ execsql/cli/commands/__init__.py,sha256=FVe_xF7w98krP-USxqf-BIcflA1ctMYVsV8p0i6cChA,572
26
26
  execsql/cli/commands/config.py,sha256=V7CGGkhSCqeJIlAXxAYyG_xNhnsORiwqth2XWEVPzss,8213
27
- execsql/cli/commands/format.py,sha256=2pftY7nl8FexJ5tnvncxRG-7UjQ_NO0mHxmqAOKd-Nw,3948
27
+ execsql/cli/commands/format.py,sha256=4BY2EUExt32DOv871SZW3kimK4x9qaUsElhu3B49yqc,4412
28
28
  execsql/cli/commands/init.py,sha256=kmuFgGz8sv_1KfiNh190E3A23evqkgYZeBRTU6vdjbs,5465
29
29
  execsql/cli/commands/lint.py,sha256=Lba5IDsXtiUbQ6DkhC9fdLnoSpfoaewoAWF-ei3h59s,8189
30
- execsql/cli/commands/listing.py,sha256=gWnjkgcw7uF-DJw3cMZbttOKdplDwAMlhmaBoI5drVw,2511
30
+ execsql/cli/commands/listing.py,sha256=thtkJ-ILGd0SPs57oVIMkkCGpXsfS0hQxueMc2ccRVw,3514
31
+ execsql/cli/commands/lsp.py,sha256=3Q2Liz3zCiSrlZVkqwvG64PgZOifKn_qB46MVRQqBns,1645
31
32
  execsql/cli/commands/run.py,sha256=sGFDku66CazJrorr0mmrhUI3QDvQVSMEYlU8G1Pd5fQ,16492
32
33
  execsql/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- execsql/data/execsql.conf.template,sha256=fTxA6Y01D-7BFABPgnJbEfPD5SSQ-l1xnaptMEBXuzc,12326
34
+ execsql/data/execsql.conf.template,sha256=pqh7G21ifYO0BjZoTgUhGyQAx4eKOmbIr6nToc1V7QA,12494
34
35
  execsql/data/script_header.sql,sha256=a7WKScekNgJoxVEmMRTkWv8NsAzW1jJ4vJfGy9HVy0g,349
35
36
  execsql/db/__init__.py,sha256=jTbuafuKOqYtXFR1wvCOoKK5Lr3l1uErfaIbIr6UywI,1063
36
37
  execsql/db/access.py,sha256=O19alGOCjhBtVFaCnGN8zwVZ2wR57h1spizAF5dhUOg,21207
@@ -81,13 +82,24 @@ execsql/importers/feather.py,sha256=g2B69d2uv9vmnXcmjFyTVsMP40LYEzFYkhk3gD26mGw,
81
82
  execsql/importers/json.py,sha256=fL47h09Zzx4Qw3TTQRQJbdPdD3qVMiU-kK9C7j1IQzg,5534
82
83
  execsql/importers/ods.py,sha256=VsxIkr7opBamB0PbSFmMWt7G11w8lLUH1k_kRwz28zw,2847
83
84
  execsql/importers/xls.py,sha256=D7Ul42gIRYZZC5QxD35ft_wmqQv2f1jNMSbnqlzV0ZA,3851
85
+ execsql/lsp/__init__.py,sha256=KXpbN_CfnfMcvHmE0xPz9ddpp9CAaQH_O7mzBi4O4X8,259
86
+ execsql/lsp/code_actions.py,sha256=QEzp7KnIS_9QeanClcpmC2miMCT9ehxxOWUth4ZHPzg,8884
87
+ execsql/lsp/completion.py,sha256=-_HNiWzRgtJDisErNGiBHWwsKeVWBHNnAOu235XV_ys,8148
88
+ execsql/lsp/diagnostics.py,sha256=Rf5izQN7BX2SUjll-kA5_D12BybFKdj5f4mEPQ0C2q4,2496
89
+ execsql/lsp/document.py,sha256=1AtEQ4QKoykxCefZGCessXcB4YjXDHX918XTezOqxRI,8493
90
+ execsql/lsp/folding.py,sha256=PgwehzXnPcR68myldo2SYrqbfGla4f6gb_UrhKmaqyQ,2752
91
+ execsql/lsp/formatting.py,sha256=9YpCfLsi09M1PZovB2HJN-Tp9Jqgk-2xxit5g5NrTqU,1217
92
+ execsql/lsp/hover.py,sha256=yihlkc0i8f50rtYz8afnd-a81H1ocXOlkYb09m-VkqU,5379
93
+ execsql/lsp/navigation.py,sha256=GYZKHUP7ozdQ_yVk0yL2h8qcF1uuT5IoT6n1wiasxIY,6587
94
+ execsql/lsp/rename.py,sha256=fYk1gDSWWhqyoIGZO5hVIHPYYdGKNjgZS0mijFDFpac,3756
95
+ execsql/lsp/server.py,sha256=R9QBhPyZONpTa9yfrmvxftVrOVyX5NXwoEqcBnKnq-M,16047
84
96
  execsql/metacommands/__init__.py,sha256=H_D1Z5kN6zfYtxatejQhQhQV1tlVZ7rcdFZ_9uhXu2Q,13010
85
97
  execsql/metacommands/conditions.py,sha256=4DsMXr6vnfbtcKqgnxYV4UK4NmAfE_hpfgkFjlH0bjo,29844
86
98
  execsql/metacommands/connect.py,sha256=SPk4h9yiUgTD3w1gNOT_oYx8VShggsO357by5Hoy6OI,15344
87
99
  execsql/metacommands/control.py,sha256=9swW6X8jXDUpu5cHiAnQVx1ahFyWxlx7mjg4dqYfX5Y,9355
88
100
  execsql/metacommands/data.py,sha256=gaKJ0xA-maFnezT9TJv-q4G4Etn-kJnF7vZWZoG4UqI,12305
89
101
  execsql/metacommands/debug.py,sha256=XyMoKnQKyYHdzcfGUGFEaecIlDOi1LMirwbbpbiRO7I,12922
90
- execsql/metacommands/dispatch.py,sha256=t7x0xWHJA0PeCrYf7jYeSMJgf0yxcZ_xh-_YAtBPHLw,87192
102
+ execsql/metacommands/dispatch.py,sha256=so0ebcnv66NhVDtA1Bt4GelD0hsC5w7gy7rItz2Mdos,87430
91
103
  execsql/metacommands/effects.py,sha256=cRSo48R4nRJzkRR3OGHLhJzofcdAaNIobaxmn1N9TGw,3813
92
104
  execsql/metacommands/io.py,sha256=vlGBje5sgnqeilooMdhJDgSRIhysHy5_7LrKtik9Xjs,3011
93
105
  execsql/metacommands/io_export.py,sha256=YamxQwURRjZRpCG2z8W3QurncCmEmAyLFqDkxtHo5dY,14434
@@ -95,6 +107,7 @@ execsql/metacommands/io_fileops.py,sha256=uXP5PdHOc8yi1rPo8PbWmvAx_yp69ozCkK_SHY
95
107
  execsql/metacommands/io_import.py,sha256=gJICeK1MOfG6D73I7m8zBCalvr_ZJzD-QBKOpKYeYXo,15684
96
108
  execsql/metacommands/io_write.py,sha256=yXDkMbQ3haDARVATVUYZprakyJHSyk1NywdKkFLpQ14,12783
97
109
  execsql/metacommands/prompt.py,sha256=PlXhtBYCembG_1SSCrwpQR10mGF3_jXodu4aCSHlSCM,37950
110
+ execsql/metacommands/reference.py,sha256=tMHyfpGMNJQubX4yERe_nFZaXOoxjYWI542YHusBVHE,53953
98
111
  execsql/metacommands/script_ext.py,sha256=CsUbyq8QFPnnvfX_k7fPlYNvvRw1xLmAWER4Exo5pwc,3658
99
112
  execsql/metacommands/system.py,sha256=6X2qmMpGUHDzyEluEotXt0Ks9jKQTpc2x0eoYNgN12M,7997
100
113
  execsql/metacommands/upsert.py,sha256=qez06e41ivxsLlB-Af91fkVzD6XhHVxpvv5sLMPul6M,20429
@@ -118,23 +131,23 @@ execsql/utils/numeric.py,sha256=_7bi5R6pHjMCkOPne_Sh5nUj-B8e9g6WFmjptFHaunA,1573
118
131
  execsql/utils/regex.py,sha256=B3mSBhRRx_DpUnX_t9IoYd05KvWAebiLMCZqQAmEwcw,3885
119
132
  execsql/utils/strings.py,sha256=UQNjpRCEFa1UO6feU-M-9e24wWAvizs_iu_4fFusLxo,8516
120
133
  execsql/utils/timer.py,sha256=eDYf5VzCNFk7oo90InJucUm3XcBdhYMogjZMqeg9xzc,1899
121
- execsql2-2.25.1.data/data/execsql2_extras/README.md,sha256=7SG9FbBpdqkgQTTt1aBTbCgymBZyV0rLrQMQrendzxs,5032
122
- execsql2-2.25.1.data/data/execsql2_extras/config_settings.sqlite,sha256=aY5cxR7Q7J6zJ4bC9lu5mHUrhy211Cq3MNKPQVCt02E,20480
123
- execsql2-2.25.1.data/data/execsql2_extras/example_config_prompt.sql,sha256=2e8KzzVWhho8KxYVHETSVmZdhW7wodioDsqBLSL6m4s,7487
124
- execsql2-2.25.1.data/data/execsql2_extras/make_config_db.sql,sha256=WwyC6dK-Eh5CAVppiBCDHqiI1_wEI9U95Ytpr4lsZkg,8726
125
- execsql2-2.25.1.data/data/execsql2_extras/md_compare.sql,sha256=qYYVAjSeHZzjszxV3Bv6bg8Ckbq2kMHl87_gh4sywMU,24140
126
- execsql2-2.25.1.data/data/execsql2_extras/md_glossary.sql,sha256=hkZ2Onn57LAKKsuXxzhR8tPtcWXkmWEQkwPE58-Tm2k,10796
127
- execsql2-2.25.1.data/data/execsql2_extras/md_upsert.sql,sha256=_CAK4BzEboRXTNy03SJR-oOjcEdSNMuRBPL6noWUptY,112560
128
- execsql2-2.25.1.data/data/execsql2_extras/pg_compare.sql,sha256=1zJd4hVUKHR0tncc2qTBC9B4qVV4Us2ITkJpsjN3tMw,24352
129
- execsql2-2.25.1.data/data/execsql2_extras/pg_glossary.sql,sha256=IKuwna-_8b20ljSkXZruuiQigrCpo7ueQdUqd1MXiuI,9908
130
- execsql2-2.25.1.data/data/execsql2_extras/pg_upsert.sql,sha256=HpPJtTHvpEjQy03j-3iPxDEOHMRkudOg7O4D4YR38UI,108315
131
- execsql2-2.25.1.data/data/execsql2_extras/script_template.sql,sha256=2J35ddZPguJ-vwTsz83wErv0jiWUyJcdW_JM0mNKDXA,11155
132
- execsql2-2.25.1.data/data/execsql2_extras/ss_compare.sql,sha256=j1qVNUPXQsEU7-DoVgDJCGcE0EuIl7whLBT3fgeiMAo,24833
133
- execsql2-2.25.1.data/data/execsql2_extras/ss_glossary.sql,sha256=2gLxv34xzKt0vy7hSzJH7a9JiMC3ETrv9MofxQwAibU,13065
134
- execsql2-2.25.1.data/data/execsql2_extras/ss_upsert.sql,sha256=G_8rQ0VzuKIZHWs24O_WrfzpC5S27R1JsL-bFBR3SUQ,117730
135
- execsql2-2.25.1.dist-info/METADATA,sha256=vA1V2t6wNC3-PP3Jx3rj-Nmwc6rVT90Df2T02OehzBQ,25703
136
- execsql2-2.25.1.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
137
- execsql2-2.25.1.dist-info/entry_points.txt,sha256=jOf53-4IVGjEZeNYUOF1GGaiPNfVZcNKxP3vDFKEyMA,58
138
- execsql2-2.25.1.dist-info/licenses/LICENSE.txt,sha256=LBdhuxejF8_bLCHZ2kWfmDXpDGUu914Gbd6_3JjCRe0,676
139
- execsql2-2.25.1.dist-info/licenses/NOTICE,sha256=McYzgxYav3U1OaVsY4Su1sfBrfmplpRdA9b6-gCDQCg,342
140
- execsql2-2.25.1.dist-info/RECORD,,
134
+ execsql2-2.27.0.data/data/execsql2_extras/README.md,sha256=7SG9FbBpdqkgQTTt1aBTbCgymBZyV0rLrQMQrendzxs,5032
135
+ execsql2-2.27.0.data/data/execsql2_extras/config_settings.sqlite,sha256=aY5cxR7Q7J6zJ4bC9lu5mHUrhy211Cq3MNKPQVCt02E,20480
136
+ execsql2-2.27.0.data/data/execsql2_extras/example_config_prompt.sql,sha256=2e8KzzVWhho8KxYVHETSVmZdhW7wodioDsqBLSL6m4s,7487
137
+ execsql2-2.27.0.data/data/execsql2_extras/make_config_db.sql,sha256=WwyC6dK-Eh5CAVppiBCDHqiI1_wEI9U95Ytpr4lsZkg,8726
138
+ execsql2-2.27.0.data/data/execsql2_extras/md_compare.sql,sha256=qYYVAjSeHZzjszxV3Bv6bg8Ckbq2kMHl87_gh4sywMU,24140
139
+ execsql2-2.27.0.data/data/execsql2_extras/md_glossary.sql,sha256=hkZ2Onn57LAKKsuXxzhR8tPtcWXkmWEQkwPE58-Tm2k,10796
140
+ execsql2-2.27.0.data/data/execsql2_extras/md_upsert.sql,sha256=_CAK4BzEboRXTNy03SJR-oOjcEdSNMuRBPL6noWUptY,112560
141
+ execsql2-2.27.0.data/data/execsql2_extras/pg_compare.sql,sha256=1zJd4hVUKHR0tncc2qTBC9B4qVV4Us2ITkJpsjN3tMw,24352
142
+ execsql2-2.27.0.data/data/execsql2_extras/pg_glossary.sql,sha256=IKuwna-_8b20ljSkXZruuiQigrCpo7ueQdUqd1MXiuI,9908
143
+ execsql2-2.27.0.data/data/execsql2_extras/pg_upsert.sql,sha256=HpPJtTHvpEjQy03j-3iPxDEOHMRkudOg7O4D4YR38UI,108315
144
+ execsql2-2.27.0.data/data/execsql2_extras/script_template.sql,sha256=2J35ddZPguJ-vwTsz83wErv0jiWUyJcdW_JM0mNKDXA,11155
145
+ execsql2-2.27.0.data/data/execsql2_extras/ss_compare.sql,sha256=j1qVNUPXQsEU7-DoVgDJCGcE0EuIl7whLBT3fgeiMAo,24833
146
+ execsql2-2.27.0.data/data/execsql2_extras/ss_glossary.sql,sha256=2gLxv34xzKt0vy7hSzJH7a9JiMC3ETrv9MofxQwAibU,13065
147
+ execsql2-2.27.0.data/data/execsql2_extras/ss_upsert.sql,sha256=G_8rQ0VzuKIZHWs24O_WrfzpC5S27R1JsL-bFBR3SUQ,117730
148
+ execsql2-2.27.0.dist-info/METADATA,sha256=2sB1585HuNTyYAej0E12cjn1uvpBg9biCkUgn9_g1Dc,27762
149
+ execsql2-2.27.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
150
+ execsql2-2.27.0.dist-info/entry_points.txt,sha256=jOf53-4IVGjEZeNYUOF1GGaiPNfVZcNKxP3vDFKEyMA,58
151
+ execsql2-2.27.0.dist-info/licenses/LICENSE.txt,sha256=LBdhuxejF8_bLCHZ2kWfmDXpDGUu914Gbd6_3JjCRe0,676
152
+ execsql2-2.27.0.dist-info/licenses/NOTICE,sha256=McYzgxYav3U1OaVsY4Su1sfBrfmplpRdA9b6-gCDQCg,342
153
+ execsql2-2.27.0.dist-info/RECORD,,