execsql2 2.29.0__py3-none-any.whl → 2.31.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.
Files changed (67) hide show
  1. execsql/__main__.py +4 -5
  2. execsql/api.py +6 -0
  3. execsql/cli/__init__.py +3 -14
  4. execsql/cli/application.py +6 -4
  5. execsql/cli/commands/lint.py +5 -2
  6. execsql/cli/commands/lsp.py +42 -0
  7. execsql/cli/dsn.py +38 -2
  8. execsql/cli/lint.py +24 -7
  9. execsql/cli/run.py +22 -9
  10. execsql/config.py +58 -10
  11. execsql/data/execsql.conf.template +8 -2
  12. execsql/db/access.py +7 -5
  13. execsql/db/base.py +18 -0
  14. execsql/db/duckdb.py +96 -14
  15. execsql/db/factory.py +11 -1
  16. execsql/db/mysql.py +56 -3
  17. execsql/db/odbc.py +45 -0
  18. execsql/db/postgres.py +1 -1
  19. execsql/db/sqlserver.py +37 -21
  20. execsql/exporters/ods.py +146 -41
  21. execsql/exporters/values.py +166 -9
  22. execsql/gui/__init__.py +3 -31
  23. execsql/importers/base.py +1 -1
  24. execsql/importers/csv.py +1 -1
  25. execsql/importers/ods.py +2 -0
  26. execsql/lsp/_util.py +21 -0
  27. execsql/lsp/cache.py +73 -0
  28. execsql/lsp/code_actions.py +10 -14
  29. execsql/lsp/completion.py +8 -15
  30. execsql/lsp/diagnostics.py +15 -3
  31. execsql/lsp/document.py +142 -41
  32. execsql/lsp/hover.py +5 -13
  33. execsql/lsp/navigation.py +7 -10
  34. execsql/lsp/server.py +111 -29
  35. execsql/manifest.py +29 -9
  36. execsql/metacommands/__init__.py +0 -2
  37. execsql/metacommands/io_fileops.py +16 -5
  38. execsql/metacommands/reference.py +1 -1
  39. execsql/metacommands/upsert.py +10 -1
  40. execsql/script/executor.py +2 -21
  41. execsql/state.py +6 -3
  42. execsql/state.pyi +2 -0
  43. execsql/utils/auth.py +21 -14
  44. execsql/utils/errors.py +20 -37
  45. execsql/utils/fileio.py +44 -48
  46. execsql/utils/paths.py +31 -0
  47. execsql/utils/regex.py +0 -5
  48. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/README.md +9 -8
  49. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/md_compare.sql +53 -29
  50. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/md_glossary.sql +20 -20
  51. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/md_upsert.sql +59 -66
  52. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/pg_compare.sql +19 -22
  53. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/pg_glossary.sql +13 -17
  54. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/script_template.sql +302 -299
  55. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/ss_compare.sql +39 -29
  56. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/ss_glossary.sql +13 -17
  57. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/ss_upsert.sql +56 -66
  58. {execsql2-2.29.0.dist-info → execsql2-2.31.1.dist-info}/METADATA +17 -43
  59. {execsql2-2.29.0.dist-info → execsql2-2.31.1.dist-info}/RECORD +66 -63
  60. execsql2-2.29.0.data/data/execsql2_extras/pg_upsert.sql +0 -2791
  61. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/config_settings.sqlite +0 -0
  62. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/example_config_prompt.sql +0 -0
  63. {execsql2-2.29.0.data → execsql2-2.31.1.data}/data/execsql2_extras/make_config_db.sql +0 -0
  64. {execsql2-2.29.0.dist-info → execsql2-2.31.1.dist-info}/WHEEL +0 -0
  65. {execsql2-2.29.0.dist-info → execsql2-2.31.1.dist-info}/entry_points.txt +0 -0
  66. {execsql2-2.29.0.dist-info → execsql2-2.31.1.dist-info}/licenses/LICENSE.txt +0 -0
  67. {execsql2-2.29.0.dist-info → execsql2-2.31.1.dist-info}/licenses/NOTICE +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: execsql2
3
- Version: 2.29.0
3
+ Version: 2.31.1
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
- Project-URL: Homepage, https://execsql2.readthedocs.io
5
+ Project-URL: Homepage, https://execsql2.readthedocs.io/en/stable/
6
6
  Project-URL: Repository, https://github.com/geocoug/execsql
7
7
  Project-URL: Issues, https://github.com/geocoug/execsql/issues
8
8
  Author-email: Dreas Nielsen <cortice@tutanota.com>
@@ -53,7 +53,7 @@ Requires-Dist: lsprotocol>=2025.0.0; extra == 'all'
53
53
  Requires-Dist: odfpy>=1.4; extra == 'all'
54
54
  Requires-Dist: openpyxl>=3.1; extra == 'all'
55
55
  Requires-Dist: oracledb>=3.0; extra == 'all'
56
- Requires-Dist: pg-upsert>=1.25.0; extra == 'all'
56
+ Requires-Dist: pg-upsert>=1.26.0; extra == 'all'
57
57
  Requires-Dist: polars>=1.0; extra == 'all'
58
58
  Requires-Dist: psycopg[binary]<4,>=3.1; extra == 'all'
59
59
  Requires-Dist: pygls<3,>=2.1; extra == 'all'
@@ -82,31 +82,6 @@ Requires-Dist: pycryptodome>=3.20; extra == 'auth-encrypted'
82
82
  Provides-Extra: auth-plaintext
83
83
  Requires-Dist: keyring>=25.0; extra == 'auth-plaintext'
84
84
  Requires-Dist: keyrings-alt>=5.0; extra == 'auth-plaintext'
85
- Provides-Extra: dev
86
- Requires-Dist: build>=1.2.2.post1; extra == 'dev'
87
- Requires-Dist: bump-my-version>=1.2.7; extra == 'dev'
88
- Requires-Dist: defusedxml>=0.7; extra == 'dev'
89
- Requires-Dist: jinja2>=3.1; extra == 'dev'
90
- Requires-Dist: lsprotocol>=2025.0.0; extra == 'dev'
91
- Requires-Dist: mkdocstrings-python>=2.0.3; extra == 'dev'
92
- Requires-Dist: mypy>=1.10; extra == 'dev'
93
- Requires-Dist: odfpy>=1.4; extra == 'dev'
94
- Requires-Dist: openpyxl>=3.1; extra == 'dev'
95
- Requires-Dist: polars>=1.0; extra == 'dev'
96
- Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
97
- Requires-Dist: pygls<3,>=2.1; extra == 'dev'
98
- Requires-Dist: pytest-asyncio>=1.0; extra == 'dev'
99
- Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
100
- Requires-Dist: pytest-lsp>=1.0; extra == 'dev'
101
- Requires-Dist: pytest>=8; extra == 'dev'
102
- Requires-Dist: pyyaml>=6.0; extra == 'dev'
103
- Requires-Dist: ruff>=0.4; extra == 'dev'
104
- Requires-Dist: sqlglot<30.22,>=30.21.0; extra == 'dev'
105
- Requires-Dist: tables>=3.10; extra == 'dev'
106
- Requires-Dist: tox-uv>=1.13.1; extra == 'dev'
107
- Requires-Dist: twine>=6.1.0; extra == 'dev'
108
- Requires-Dist: xlrd>=2.0; extra == 'dev'
109
- Requires-Dist: zensical==0.0.67; extra == 'dev'
110
85
  Provides-Extra: duckdb
111
86
  Requires-Dist: duckdb>=1.0; extra == 'duckdb'
112
87
  Requires-Dist: pytz; extra == 'duckdb'
@@ -140,7 +115,7 @@ Requires-Dist: oracledb>=3.0; extra == 'oracle'
140
115
  Provides-Extra: postgres
141
116
  Requires-Dist: psycopg[binary]<4,>=3.1; extra == 'postgres'
142
117
  Provides-Extra: upsert
143
- Requires-Dist: pg-upsert>=1.25.0; extra == 'upsert'
118
+ Requires-Dist: pg-upsert>=1.26.0; extra == 'upsert'
144
119
  Description-Content-Type: text/markdown
145
120
 
146
121
  > [!NOTE]
@@ -148,7 +123,7 @@ Description-Content-Type: text/markdown
148
123
 
149
124
  <div align="center">
150
125
 
151
- <img src="https://execsql2.readthedocs.io/en/latest/images/execsql_logo_01.png" alt="execsql logo">
126
+ <img src="https://execsql2.readthedocs.io/en/stable/images/execsql_logo_01.png" alt="execsql logo">
152
127
 
153
128
  *Multi-DBMS SQL script processor.*
154
129
 
@@ -180,7 +155,7 @@ Scripts are ordinary SQL plus metacommands embedded in comments (`-- !x!`), whic
180
155
  | `execsql config` | Show every config option, its value, and the file that set it | No |
181
156
  | `execsql list` | Metacommands, encodings, plugins, or the keyword vocabulary | No |
182
157
  | `execsql init` | Set up a project: config file, a script with a header, pre-commit hooks | No |
183
- | `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 |
158
+ | `execsql lsp` | [Language server](https://execsql2.readthedocs.io/en/stable/guides/editors/): lint findings, completion, hover, navigation, quick fixes and formatting in your editor | No |
184
159
  | [VS Code extension](extras/vscode-execsql) | Highlighting plus everything `execsql lsp` provides | No |
185
160
 
186
161
  `format` and `lint` take files or directories.
@@ -214,7 +189,7 @@ load_data.sql
214
189
  Found 3 issues in 1 file: 3 warnings (1 file checked)
215
190
  ```
216
191
 
217
- `V002` and `V001` together point at a typo: `site_cd` is defined and `site_code` is used. Every issue has a rule code for `--select` and `--ignore`; `--output-format concise` prints one `path:line` line per issue and `json` feeds CI tools. The [lint rules](https://execsql2.readthedocs.io/en/latest/reference/lint/) page explains each one.
192
+ `V002` and `V001` together point at a typo: `site_cd` is defined and `site_code` is used. Every issue has a rule code for `--select` and `--ignore`; `--output-format concise` prints one `path:line` line per issue and `json` feeds CI tools. The [lint rules](https://execsql2.readthedocs.io/en/stable/reference/lint/) page explains each one.
218
193
 
219
194
  `execsql format` also runs as a [pre-commit hook](#formatting-scripts), so formatting is enforced without anyone remembering to run it.
220
195
 
@@ -254,7 +229,7 @@ drop table if exists staging.errorlog cascade;
254
229
 
255
230
  The `PROMPT` metacommand produces a GUI display of the data:
256
231
 
257
- ![PROMPT display of 'fatals' view](https://execsql2.readthedocs.io/en/latest/images/fatals.png)
232
+ ![PROMPT display of 'fatals' view](https://execsql2.readthedocs.io/en/stable/images/fatals.png)
258
233
 
259
234
  ## Installation
260
235
 
@@ -269,7 +244,7 @@ uv tool install "execsql2[all]" # everything: all drivers plus all fea
269
244
  add it to that project instead: `uv add "execsql2[postgres]"` or
270
245
  `pip install "execsql2[postgres]"` in its virtual environment.
271
246
 
272
- Feature extras cover spreadsheet and Parquet/Feather formats, keyring authentication, PostgreSQL upsert, and more. See the [installation guide](https://execsql2.readthedocs.io/en/latest/getting-started/installation/) for the full list.
247
+ Feature extras cover spreadsheet and Parquet/Feather formats, keyring authentication, PostgreSQL upsert, and more. See the [installation guide](https://execsql2.readthedocs.io/en/stable/getting-started/installation/) for the full list.
273
248
 
274
249
  ## Usage
275
250
 
@@ -336,7 +311,7 @@ silences.
336
311
  | `--debug` | Start in step-through debug mode (REPL pauses before each stmt) |
337
312
  | `--no-system-cmd` / `--no-rm-file` / `--no-serve` | Disable the `SYSTEM_CMD` / `RM_FILE` / `SERVE` metacommands |
338
313
 
339
- See the [full options reference](https://execsql2.readthedocs.io/en/latest/getting-started/syntax/#options) or run `execsql run --help` for the complete list, `execsql run --ping` to test a connection, `execsql config` to see which config files set what, and `execsql list metacommands` for all metacommands.
314
+ See the [full options reference](https://execsql2.readthedocs.io/en/stable/getting-started/syntax/#options) or run `execsql run --help` for the complete list, `execsql run --ping` to test a connection, `execsql config` to see which config files set what, and `execsql list metacommands` for all metacommands.
340
315
 
341
316
  ## Features
342
317
 
@@ -439,7 +414,7 @@ result = run(sql="SELECT 1;", connection=conn)
439
414
  conn.close()
440
415
  ```
441
416
 
442
- Factory functions exist for every supported backend (`db_Postgres`, `db_MySQL`, `db_SQLite`, `db_DuckDB`, `db_SqlServer`, `db_Oracle`, `db_Firebird`, `db_Access`, `db_Dsn`). See [`execsql.db.factory`](https://execsql2.readthedocs.io/en/latest/api/db/).
417
+ Factory functions exist for every supported backend (`db_Postgres`, `db_MySQL`, `db_SQLite`, `db_DuckDB`, `db_SqlServer`, `db_Oracle`, `db_Firebird`, `db_Access`, `db_Dsn`). See [`execsql.db.factory`](https://execsql2.readthedocs.io/en/stable/api/db/).
443
418
 
444
419
  Each call to `run()` uses an isolated `RuntimeContext`, so multiple calls do not share state.
445
420
 
@@ -466,13 +441,13 @@ execsql format --no-sql --in-place scripts/
466
441
  ```yaml
467
442
  repos:
468
443
  - repo: https://github.com/geocoug/execsql
469
- rev: v2.29.0
444
+ rev: v2.31.1
470
445
  hooks:
471
446
  - id: execsql-format
472
447
  - id: execsql-lint
473
448
  ```
474
449
 
475
- 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.
450
+ 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/stable/guides/formatter/) for `--check`, `--indent`, and other options.
476
451
 
477
452
  ## VS Code
478
453
 
@@ -483,19 +458,18 @@ uv tool install "execsql2[lsp]" # the language server
483
458
  code --install-extension execsql-syntax.vsix # the extension, from the release
484
459
  ```
485
460
 
486
- 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)).
461
+ 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/stable/getting-started/installation/#adding-an-extra-later)).
487
462
 
488
- 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.
463
+ Other editors use the language server directly: see [Editor Support](https://execsql2.readthedocs.io/en/stable/guides/editors/). The [extension README](extras/vscode-execsql/README.md) covers settings, installing from a clone, color customization, and troubleshooting.
489
464
 
490
465
  ## Templates
491
466
 
492
- The `templates/` directory in this repository includes ready-to-use execsql scripts:
467
+ The `templates/` directory in this repository includes ready-to-use execsql scripts, tested against live databases in CI; see the [Templates documentation](https://execsql2.readthedocs.io/en/stable/templates/). (`execsql config --init` writes an annotated configuration file.)
493
468
 
494
- - **Upsert scripts** (`pg_upsert.sql`, `md_upsert.sql`, `ss_upsert.sql`): Perform merge/upsert operations on multiple tables simultaneously, respecting foreign key order, for PostgreSQL, MySQL/MariaDB, and SQL Server.
469
+ - **Upsert scripts** (`md_upsert.sql`, `ss_upsert.sql`): Perform merge/upsert operations on multiple tables simultaneously, respecting foreign key order, for MySQL/MariaDB and SQL Server. On PostgreSQL, use the [`PG_UPSERT`](https://execsql2.readthedocs.io/en/stable/reference/metacommands/#pg_upsert) metacommand.
495
470
  - **Comparison scripts** (`pg_compare.sql`, `md_compare.sql`, `ss_compare.sql`): Compare staging and base tables across multiple dimensions.
496
471
  - **Glossary scripts** (`pg_glossary.sql`, `md_glossary.sql`, `ss_glossary.sql`): Produce a glossary of column names and definitions to accompany a database export.
497
472
  - **`script_template.sql`**: A framework for new scripts with sections for configuration, logging, and error reporting.
498
- - **`execsql.conf`**: An annotated configuration file covering all available settings.
499
473
 
500
474
  ## Documentation
501
475
 
@@ -1,50 +1,51 @@
1
1
  execsql/__init__.py,sha256=ZeVnpEWu8M2bn3qLmVM72NhWRueUGNbsX8UAPTermo0,901
2
- execsql/__main__.py,sha256=HdbK-SAhyUmfB6xINY5AzxdMSxGzWSGEG_2dv42Jn64,315
3
- execsql/api.py,sha256=UJJSlFHySuINeoExaMXqhl00hVSPH1s7G4m8T0NX_xI,26484
4
- execsql/config.py,sha256=GUKE3sLGExMMhMkmxi8eXXBWmN74E0vqnt1eTBPRsG4,38166
2
+ execsql/__main__.py,sha256=Nnh7_QgjYTTzd1Kog2thl7wzNpoxfnZ3YaurSOMzE_U,270
3
+ execsql/api.py,sha256=jJa9P8T0lWR7hXF1WZKgfK7QHbU5qns4x6YNFbFH_eo,26795
4
+ execsql/config.py,sha256=PoIU1dr6uwTCHVmnNhA4zzPT1BsZBPcX0Q7KC1ItvqI,40408
5
5
  execsql/config_validation.py,sha256=a4ZszyJFGTNgs1jkvXE3yMCaYFtF1Uqih2ojMDVh1v8,10556
6
6
  execsql/exceptions.py,sha256=aHavdblmP7m5ZLxyyKKmPSwwbdmP962j4ShP1Gd9r64,9651
7
7
  execsql/format.py,sha256=z-KZ8VY1muz8S6iaErZX9E_7wE_VtjEcUB7e_KyhfyI,59565
8
8
  execsql/interactive.py,sha256=7vm7NAlcarBJJOIffcLOcJqH9ZCInvHB_CmC2sQsXf8,8241
9
- execsql/manifest.py,sha256=ibceEZtH2FqsUiujbTGy5D3W0WgO4tFCs7bjIHVdep4,8062
9
+ execsql/manifest.py,sha256=eJp39R8bYuFuJiGaBbDsk_lua13uJHXPOdwWdUfE-CQ,9027
10
10
  execsql/models.py,sha256=caUGQ3C9hvFaj6c6-GwBzZc8FAGTD1ZSJYd8bFyRh5I,16410
11
11
  execsql/parser.py,sha256=bw26e1lD-PZscV11VtBdqSLkjpcYfNLQC2EYfYD5UwU,16012
12
12
  execsql/plugins.py,sha256=RykMlIjTyWcnQc9ygjLErS3wdcsZSsG9QTIvg4DwfAI,13626
13
13
  execsql/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- execsql/state.py,sha256=NDAtv38b2cmknz-jEgOaOeqZCc6GdxN6mz-KCqb9pqg,23263
15
- execsql/state.pyi,sha256=pEuTT4G6VNiwy4Ii7OUXc1RvzcQvjFkeFazSGEOprs0,4300
14
+ execsql/state.py,sha256=rXhxx58dVFjhG58HGOXm3ewloVlvpcaYnW1rij4qjkM,23478
15
+ execsql/state.pyi,sha256=ZDHZ1DPKYu4Qs4bcJT31XNv4GOt6O4s_zH4UHCowovw,4344
16
16
  execsql/types.py,sha256=zey_bc2AzbUduLoK-nps16qX2zazDYf_iapWkG_cbmA,33130
17
- execsql/cli/__init__.py,sha256=8wDwIAFq7AI9iSGuw-Xfky-izN_7oHjUegr_brEBot0,3197
18
- execsql/cli/application.py,sha256=qKjkhDMWB7fEjEbqOLZ3pNFw80piBnRSeW_DfZg-9MA,12448
17
+ execsql/cli/__init__.py,sha256=FHg2lm2gt4L-XBnlVORn3qWHZ4739Ao-uwBIURfVIjg,2798
18
+ execsql/cli/application.py,sha256=tsSYE8cerJxY6y73GM_Xr1WBwc6A0_al8y969B6lPP8,12542
19
19
  execsql/cli/dispatch.py,sha256=deyN2QQYvdzMSqGGa3CSMpaqdLNeMgc5Uke0mUbl764,2704
20
- execsql/cli/dsn.py,sha256=uBspf8DXCn2pXmT1Ug1c4IG7IgR5IFGKp9138puaubo,3289
20
+ execsql/cli/dsn.py,sha256=Jqr0CBtj6L3BY25Ej-U13xHV85phX1TFTVpjB7A-KIs,4815
21
21
  execsql/cli/help.py,sha256=bEy6ssVjyIw73JD_UPLXnCtnCifdVCKJr_cydAAVxhk,8220
22
- execsql/cli/lint.py,sha256=8dZhwPrkc-_0WFd1D_qjBdKuql0SP5dpkdBRFd25xC8,47604
22
+ execsql/cli/lint.py,sha256=kQ5zOayLTOY1jib_6jME2mzSGKCsZ6FI_qr4fysLlRs,48433
23
23
  execsql/cli/options.py,sha256=Srhf1gEOB5yy_7PxkTKBv07xK8Qzw8H-z7PUUnItpwE,2916
24
- execsql/cli/run.py,sha256=5f0SX6QyNl8Ur2MwuW2GaN1OqVpWbEI8CQV3k-hBwH8,41987
24
+ execsql/cli/run.py,sha256=bMLvStRSX9svzb8GmbLJ9QS5bsPPoxBUhBbIwi1aX_g,42960
25
25
  execsql/cli/commands/__init__.py,sha256=FVe_xF7w98krP-USxqf-BIcflA1ctMYVsV8p0i6cChA,572
26
26
  execsql/cli/commands/config.py,sha256=V7CGGkhSCqeJIlAXxAYyG_xNhnsORiwqth2XWEVPzss,8213
27
27
  execsql/cli/commands/format.py,sha256=3awfNmCc6kImeyXKZo1Jt1qXbEuWk86ZllqEOY5vxzw,4456
28
28
  execsql/cli/commands/init.py,sha256=kmuFgGz8sv_1KfiNh190E3A23evqkgYZeBRTU6vdjbs,5465
29
- execsql/cli/commands/lint.py,sha256=Lba5IDsXtiUbQ6DkhC9fdLnoSpfoaewoAWF-ei3h59s,8189
29
+ execsql/cli/commands/lint.py,sha256=K_4eeU4JcQh6vNV5Thcta9Kuqek_cNiKFOHskgOtDzI,8435
30
30
  execsql/cli/commands/listing.py,sha256=thtkJ-ILGd0SPs57oVIMkkCGpXsfS0hQxueMc2ccRVw,3514
31
- execsql/cli/commands/lsp.py,sha256=4Xng1xtoCxF6X0eQ8oC4KnV0ovEeGmlDb0tpdjJnskg,2483
31
+ execsql/cli/commands/lsp.py,sha256=8xIrqA4dnapdlLqbGGb53YtFTnsX2YqpLYvrrl-Z6pE,4051
32
32
  execsql/cli/commands/run.py,sha256=sGFDku66CazJrorr0mmrhUI3QDvQVSMEYlU8G1Pd5fQ,16492
33
33
  execsql/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- execsql/data/execsql.conf.template,sha256=pqh7G21ifYO0BjZoTgUhGyQAx4eKOmbIr6nToc1V7QA,12494
34
+ execsql/data/execsql.conf.template,sha256=Mz8wZxu0U2bfL-fsDpRHvdLkwNpfuZrl4QUMjp7SXyk,12770
35
35
  execsql/data/script_header.sql,sha256=a7WKScekNgJoxVEmMRTkWv8NsAzW1jJ4vJfGy9HVy0g,349
36
36
  execsql/db/__init__.py,sha256=jTbuafuKOqYtXFR1wvCOoKK5Lr3l1uErfaIbIr6UywI,1063
37
- execsql/db/access.py,sha256=xfBzcgP1qJovxSYwrpu0bdxqyJWqMoMP8i4FsaCTYXA,21306
38
- execsql/db/base.py,sha256=5f-1YxaaopRPnCPVs4OVOkYmWFtG1V71sk2XFoBUE_Y,42849
37
+ execsql/db/access.py,sha256=tNhBuLW5QwMOc8REnu2Qt1Ge86ozMEk4MhHlUvYrJ-I,21379
38
+ execsql/db/base.py,sha256=tBAcNRiYE7VZo98S75mu6Y2ySdBNoh8LzzTn7TgLOBs,43684
39
39
  execsql/db/dsn.py,sha256=CaISffisqO5IjSE-elEpwK9vXLaArp3ItpV8lvRTu-I,6920
40
- execsql/db/duckdb.py,sha256=2iVlbjQdOSAwhI2LxWEm7FYZxjjVcKiE8rT_3VJdRIo,7761
41
- execsql/db/factory.py,sha256=cMptU3BL1Nsilo7LKLAI5RR-LiC9RTH-3UC9rHT2JLQ,5519
40
+ execsql/db/duckdb.py,sha256=KC8Tqbnemg3wsYH_efnFmxtybPbMXElFDsoeq_FeVus,11143
41
+ execsql/db/factory.py,sha256=Uz7Xcbff6ZZbtLM55FhHCwGdo4KKfqU_1kyjvOHn-HY,5691
42
42
  execsql/db/firebird.py,sha256=CoNnzFtOFAkp8OJByXXXclitCPAAjM23eFJGfy3C7IE,10171
43
- execsql/db/mysql.py,sha256=PexKdOzqR7cpkD_nIjPDwSEK_Or8AkWvBh_TEqsIMhU,22231
43
+ execsql/db/mysql.py,sha256=FVId78NifBmNfEI8zmqjRMJ3FUy7hskv411LqABAAOQ,24198
44
+ execsql/db/odbc.py,sha256=uus6J0kbLyvAvvARA_X5n10hbx49Wba258Sm7ZYSnoA,1760
44
45
  execsql/db/oracle.py,sha256=i5qPahsy_z1AuZT7l54Hzixknkvbzd-SCQgiVcTN94w,13796
45
- execsql/db/postgres.py,sha256=0SbdJk9vZ8JXMTHrBfZU3RLssCoX5IL--Awi5zYCOKw,23645
46
+ execsql/db/postgres.py,sha256=sX2azdSt9N6jm_I47Zg8fukdYExGHRq_7XwVRZcfgAo,23647
46
47
  execsql/db/sqlite.py,sha256=fEpNPkfJGnqm1Wx_rZK5SEqaWsBqLy85Jxk_5NsnqgM,12109
47
- execsql/db/sqlserver.py,sha256=cdbyHoSUKEwUee2GQTKD5SlLyBraYiOvJ2ro5MJuMFA,9525
48
+ execsql/db/sqlserver.py,sha256=5WUU67rFN28iiNriIWvgT2Dj7z0F0zKOJFWTsSBd0dg,10480
48
49
  execsql/db/tiers.py,sha256=PH2sUYwlYqcANGVKXprWQKVIlM6fpWU9q74djn8oFwc,2924
49
50
  execsql/debug/__init__.py,sha256=j6EGUR0dHzUhWN1mHHtf1-Lhjq3Sb1V-vmnq2Ztgj1M,178
50
51
  execsql/debug/repl.py,sha256=jnwrqRac4krc1pES7Ni-j1Dyw3mJIcWl5LQQIX1GkRw,20753
@@ -57,43 +58,45 @@ execsql/exporters/html.py,sha256=hwf9UHs7EZ7xiP3p9ilBIsAukXcDu-KO2dcQHVh2z30,101
57
58
  execsql/exporters/json.py,sha256=wWGT6zjvIdWlO5FmXbaEw1xOhy23f1YY6bm5uQD_NS0,4393
58
59
  execsql/exporters/latex.py,sha256=bdUN3GwfENUZHgpw6bvjsjfivDgzyf-HRkYTP-eH-pM,5480
59
60
  execsql/exporters/markdown.py,sha256=FuMGFxm9uZUOrdEuXT2ZZLCqmVDly7SMrFlrjP6kVEI,4827
60
- execsql/exporters/ods.py,sha256=5Qubpuz7CLIrl7KgMp1uXIFPrF_7alMjuTuVdj76eh4,20771
61
+ execsql/exporters/ods.py,sha256=hMKhUwLTKVf28JY1x7pdCGBl-WAE75oO9Oa7oUITS60,24916
61
62
  execsql/exporters/parquet.py,sha256=mbCo2Wlit1lkXmyo5EyLd_ATIHSICS49bouiBT2kdAs,1121
62
63
  execsql/exporters/pretty.py,sha256=SiJHBXIjoFsOHegXcdrtxYa6xSIPga1U0DQEy7pK4QY,4145
63
64
  execsql/exporters/protocol.py,sha256=BxATgz0xKHbB2FpZBeNg7wZfIiCohhD1awlr3JCec0c,4372
64
65
  execsql/exporters/raw.py,sha256=9o3BMt7UYmnjbP8OEzmM2kNKfwwERi2yDcuNfUoEfuQ,2530
65
66
  execsql/exporters/sqlite.py,sha256=QjP_W90S-hecNqp2A-Vy58DD8MZitME1sTq4lqIS43w,3401
66
67
  execsql/exporters/templates.py,sha256=N9PRFet0mYuDQFu7PNbq5c6qGu2You2qfHpqnxg17NA,7065
67
- execsql/exporters/values.py,sha256=UPxN5IprasBZLqM5jfUXQihjdTeBFTxbJslOEtmGOcY,3384
68
+ execsql/exporters/values.py,sha256=IzdpjeIwI_wukzo5wrVYCOwW-Ag_70SjPU-cPLEUV7k,8450
68
69
  execsql/exporters/xls.py,sha256=bdGDTnePkXY3MtPJi4D47sTFSqfZteg9lftbi-7nB24,11361
69
70
  execsql/exporters/xlsx.py,sha256=7sm-3KniYlB2K-n6xQmIoHbAvl2ryJhFWU95SEkR7e4,12702
70
71
  execsql/exporters/xml.py,sha256=t1PSr3i8xvTCWzd9jaxxAy5NcRpl6sqjnZALafKCqpM,2575
71
72
  execsql/exporters/yaml.py,sha256=ex2h91E12wItvh84AarjrDTcZ4SDx9uq0c9wtr-NuQM,3084
72
73
  execsql/exporters/zip.py,sha256=0vDkXB19WzLzgCACBVNnGJYxacgBwEehQDL7Inl-rgw,5002
73
- execsql/gui/__init__.py,sha256=oCb-cyhLZzVpWJ4WU5HbqEDBrV-lm0ytEwxemrOZyqs,2048
74
+ execsql/gui/__init__.py,sha256=5qsg3aWsaC0HfTDrGeh_2x40QRuivGgzT7cKvaM7jS0,1269
74
75
  execsql/gui/base.py,sha256=DMTqHLlpZlGCsNKyrLlJPbaxvukC0n1YmR4aHEN3jPY,14983
75
76
  execsql/gui/console.py,sha256=dzdSl4NJNvRd9VvlwRCXHvfnXjQPimyTx7NcibcUZC8,18305
76
77
  execsql/gui/desktop.py,sha256=y-T317NzSs9kcA4-NZW-Dx2cZ4Bv1mPoCr7hwQCJYoo,59467
77
78
  execsql/gui/tui.py,sha256=VoUtjSMopYtbtc8_-qV7YQAFvc-bS7zrZ5J2hl1cPxM,66853
78
79
  execsql/importers/__init__.py,sha256=zZwdQxMaValCNqUrVdvaA7XPU3J8NmqVJ4uolNWY2iU,299
79
- execsql/importers/base.py,sha256=N94kJ_a3_UvjOrZv7TCYOL2b4lshYb_HuLTqpht4D4A,5578
80
- execsql/importers/csv.py,sha256=4zIv-K02fuHKxnbqS5iTvLOeVnfssLYYJrs0Gh3qv7I,5021
80
+ execsql/importers/base.py,sha256=_RkCCP8cgqXfNioFVhuo8DAmrbZ-YBdW3rdpKntv-BY,5608
81
+ execsql/importers/csv.py,sha256=IANjZhAhKUXJo_W1RAR-6smVCLSO7_CVHAHdzhtzAck,5005
81
82
  execsql/importers/feather.py,sha256=g2B69d2uv9vmnXcmjFyTVsMP40LYEzFYkhk3gD26mGw,1900
82
83
  execsql/importers/json.py,sha256=fL47h09Zzx4Qw3TTQRQJbdPdD3qVMiU-kK9C7j1IQzg,5534
83
- execsql/importers/ods.py,sha256=VsxIkr7opBamB0PbSFmMWt7G11w8lLUH1k_kRwz28zw,2847
84
+ execsql/importers/ods.py,sha256=scSId1sQpvWxtyPsp6QWTmuXn-h34gbbC4FM2fmhvFA,2980
84
85
  execsql/importers/xls.py,sha256=D7Ul42gIRYZZC5QxD35ft_wmqQv2f1jNMSbnqlzV0ZA,3851
85
86
  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=E9FfnAypzggO__QGWSlbfa6AhYE_1IMpIbyrwkEKx8s,8774
87
+ execsql/lsp/_util.py,sha256=8CypObGywKZP1aRetq0ytNBqlMelIdJWduR1JnEuW1E,729
88
+ execsql/lsp/cache.py,sha256=wAiZAzNdVseqRDJQ4aiKJF6WVHBV20tt9lQ7kvwlMeo,3149
89
+ execsql/lsp/code_actions.py,sha256=5UH_W22MY00PMXCc_IV0xv4v1WnvUvKMu3QWnk7qf-w,8579
90
+ execsql/lsp/completion.py,sha256=podEPbgDwGbvGdOWPQRuxsYpQ4f1mybuVgAkwwd7MGQ,7875
91
+ execsql/lsp/diagnostics.py,sha256=wZuCYGkYqyqTRBQ5s-s4UwdMoive8M9_O74T318HzAA,3076
92
+ execsql/lsp/document.py,sha256=psqVjh46kw71qpPYifM59ku0dEBGgEmlTh_dejbe5QI,12458
90
93
  execsql/lsp/folding.py,sha256=PgwehzXnPcR68myldo2SYrqbfGla4f6gb_UrhKmaqyQ,2752
91
94
  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
95
+ execsql/lsp/hover.py,sha256=JemZqJ8d7FHouMhW92jkfek14fL9rl6JBQU7JIXJHos,5038
96
+ execsql/lsp/navigation.py,sha256=_f-zW82P4Wkelbsdedz_5l_ztFt-CFD8VSiVE5JaSAM,6436
94
97
  execsql/lsp/rename.py,sha256=fYk1gDSWWhqyoIGZO5hVIHPYYdGKNjgZS0mijFDFpac,3756
95
- execsql/lsp/server.py,sha256=R9QBhPyZONpTa9yfrmvxftVrOVyX5NXwoEqcBnKnq-M,16047
96
- execsql/metacommands/__init__.py,sha256=H_D1Z5kN6zfYtxatejQhQhQV1tlVZ7rcdFZ_9uhXu2Q,13010
98
+ execsql/lsp/server.py,sha256=gTjk1agZbygdbcowa3jkL45WJ37sxhJ58oiLB7BM6Bw,19893
99
+ execsql/metacommands/__init__.py,sha256=MO5cF84jHakrgYDR8C4-YzeMTLU6oCDeB7x-kUpoVws,12970
97
100
  execsql/metacommands/conditions.py,sha256=4DsMXr6vnfbtcKqgnxYV4UK4NmAfE_hpfgkFjlH0bjo,29844
98
101
  execsql/metacommands/connect.py,sha256=SPk4h9yiUgTD3w1gNOT_oYx8VShggsO357by5Hoy6OI,15344
99
102
  execsql/metacommands/control.py,sha256=9swW6X8jXDUpu5cHiAnQVx1ahFyWxlx7mjg4dqYfX5Y,9355
@@ -103,51 +106,51 @@ execsql/metacommands/dispatch.py,sha256=so0ebcnv66NhVDtA1Bt4GelD0hsC5w7gy7rItz2M
103
106
  execsql/metacommands/effects.py,sha256=cRSo48R4nRJzkRR3OGHLhJzofcdAaNIobaxmn1N9TGw,3813
104
107
  execsql/metacommands/io.py,sha256=vlGBje5sgnqeilooMdhJDgSRIhysHy5_7LrKtik9Xjs,3011
105
108
  execsql/metacommands/io_export.py,sha256=YamxQwURRjZRpCG2z8W3QurncCmEmAyLFqDkxtHo5dY,14434
106
- execsql/metacommands/io_fileops.py,sha256=JkuHBsZFDZvAW3wUJtdWwm4qGkpXObqkQNcZalhJVkE,12766
109
+ execsql/metacommands/io_fileops.py,sha256=CmdgfgTHFWlzsA5XzsHeu6B9OTncb0K8n9uEgS68dkQ,13306
107
110
  execsql/metacommands/io_import.py,sha256=gJICeK1MOfG6D73I7m8zBCalvr_ZJzD-QBKOpKYeYXo,15684
108
111
  execsql/metacommands/io_write.py,sha256=yXDkMbQ3haDARVATVUYZprakyJHSyk1NywdKkFLpQ14,12783
109
112
  execsql/metacommands/prompt.py,sha256=PlXhtBYCembG_1SSCrwpQR10mGF3_jXodu4aCSHlSCM,37950
110
- execsql/metacommands/reference.py,sha256=tMHyfpGMNJQubX4yERe_nFZaXOoxjYWI542YHusBVHE,53953
113
+ execsql/metacommands/reference.py,sha256=yiv_qNp-MPI2UNBOzfwT11JU-xvWM9lw8yBZjP_VlsY,53953
111
114
  execsql/metacommands/script_ext.py,sha256=CsUbyq8QFPnnvfX_k7fPlYNvvRw1xLmAWER4Exo5pwc,3658
112
115
  execsql/metacommands/system.py,sha256=6X2qmMpGUHDzyEluEotXt0Ks9jKQTpc2x0eoYNgN12M,7997
113
- execsql/metacommands/upsert.py,sha256=vy8zfvxs9OYsyDiXInNIRT93ovzue4N_KMPBabNH6Ys,20320
116
+ execsql/metacommands/upsert.py,sha256=Dl7NfaAH8ziGBqcLCgcat3Hcw9vSewK1eo7-nzToI4g,20725
114
117
  execsql/script/__init__.py,sha256=I7hVO6wm3iOocxRRGEcFHhjdtL1moKbUYLB-wKbjPdk,3267
115
118
  execsql/script/ast.py,sha256=WqCpFxhxrT2IIGvbArTp3QS0BZryRZAb7IL4ri3I6xg,20591
116
119
  execsql/script/control.py,sha256=WqLy-HLPqHG3vEzYpKMiIJsD7LpORjyQuUWzFzcGz4w,2327
117
120
  execsql/script/engine.py,sha256=wjXKwPIis-T2Y8rLnRXQ_ymUFdXff1MlI2IIYmxihKo,18448
118
- execsql/script/executor.py,sha256=lvMFjKe2h4fafhKNiuoXAYpDe8pLHHuYMiwPkLYJe9I,41527
121
+ execsql/script/executor.py,sha256=p3Aj7Ab8HwZRnmYds_e6h6yhRzCCa9XXbdVDkpg6NaQ,40855
119
122
  execsql/script/parser.py,sha256=z73v6t6ZbPUKkRu-UOIL6q1cCRDeoRvG2aXXC8NpMvE,37162
120
123
  execsql/script/variables.py,sha256=Tb01aHqOdWZbkgj-oW0ky3KWNy5N34XLD-Fm2eShYZM,17462
121
124
  execsql/utils/__init__.py,sha256=0uR6JwVJQRX3vceByNBduCAf5dd5assKjeqJUWvpZoA,278
122
- execsql/utils/auth.py,sha256=BV7VtLM-ID8jNB42vx7GEz8yb3Z1Qs9xCr4cUMqL864,14539
125
+ execsql/utils/auth.py,sha256=0LYKdNMhodq9R0B8WyKp69a-xlP9wOR6Ua9Lgo2aJnQ,14868
123
126
  execsql/utils/color.py,sha256=goQqhnLg8yERpFolQikA9zYSVcuAm0unKTJiWTbQm-U,634
124
127
  execsql/utils/crypto.py,sha256=KlT6lPk-v0-qQQfAMfWvT9Q6kRdCD3_5JVaLajNocKM,3051
125
128
  execsql/utils/datetime.py,sha256=rqtGrc0t37V00mvirJ8wJKHmDtDSYzTg_UgCyIBzv9E,5583
126
- execsql/utils/errors.py,sha256=NA-JXP4cyEZ8Y_KNOPLS_ebXTJhQ50gNMBSTTcnsLIc,12350
127
- execsql/utils/fileio.py,sha256=ADp8Iltf_zfv0PL0VRdO0BDIHkVpKVVh59_5zmkTfkw,47564
129
+ execsql/utils/errors.py,sha256=WKojSMjNecL9riRo9TnZ4fXofZr2uDo2_4B6n-zP31M,11693
130
+ execsql/utils/fileio.py,sha256=IqIEhun9aOnr1oBCWK2z2VAPVo95bZ54cVglLW4rV9M,48208
128
131
  execsql/utils/gui.py,sha256=1iiupP9AsLdR6ST0gcLE143o6y6YGUFlNv_pdVPxfCE,23943
129
132
  execsql/utils/mail.py,sha256=4RiKtXa_sqij_YGdYmjQ3PG0u3G9qjs-9caQwBErtBw,7278
130
133
  execsql/utils/numeric.py,sha256=_7bi5R6pHjMCkOPne_Sh5nUj-B8e9g6WFmjptFHaunA,1573
131
- execsql/utils/regex.py,sha256=B3mSBhRRx_DpUnX_t9IoYd05KvWAebiLMCZqQAmEwcw,3885
134
+ execsql/utils/paths.py,sha256=7IIHT6vqXTfs6Ltfrzm_I2ZV4pU8IuedOLkHo6a1_K8,1175
135
+ execsql/utils/regex.py,sha256=DGzPBl0Kt4--RbwPhoZI6Bm6N_CBUvI0DbqE4EF6qp8,3718
132
136
  execsql/utils/strings.py,sha256=UQNjpRCEFa1UO6feU-M-9e24wWAvizs_iu_4fFusLxo,8516
133
137
  execsql/utils/timer.py,sha256=eDYf5VzCNFk7oo90InJucUm3XcBdhYMogjZMqeg9xzc,1899
134
- execsql2-2.29.0.data/data/execsql2_extras/README.md,sha256=7SG9FbBpdqkgQTTt1aBTbCgymBZyV0rLrQMQrendzxs,5032
135
- execsql2-2.29.0.data/data/execsql2_extras/config_settings.sqlite,sha256=aY5cxR7Q7J6zJ4bC9lu5mHUrhy211Cq3MNKPQVCt02E,20480
136
- execsql2-2.29.0.data/data/execsql2_extras/example_config_prompt.sql,sha256=2e8KzzVWhho8KxYVHETSVmZdhW7wodioDsqBLSL6m4s,7487
137
- execsql2-2.29.0.data/data/execsql2_extras/make_config_db.sql,sha256=WwyC6dK-Eh5CAVppiBCDHqiI1_wEI9U95Ytpr4lsZkg,8726
138
- execsql2-2.29.0.data/data/execsql2_extras/md_compare.sql,sha256=qYYVAjSeHZzjszxV3Bv6bg8Ckbq2kMHl87_gh4sywMU,24140
139
- execsql2-2.29.0.data/data/execsql2_extras/md_glossary.sql,sha256=hkZ2Onn57LAKKsuXxzhR8tPtcWXkmWEQkwPE58-Tm2k,10796
140
- execsql2-2.29.0.data/data/execsql2_extras/md_upsert.sql,sha256=_CAK4BzEboRXTNy03SJR-oOjcEdSNMuRBPL6noWUptY,112560
141
- execsql2-2.29.0.data/data/execsql2_extras/pg_compare.sql,sha256=1zJd4hVUKHR0tncc2qTBC9B4qVV4Us2ITkJpsjN3tMw,24352
142
- execsql2-2.29.0.data/data/execsql2_extras/pg_glossary.sql,sha256=IKuwna-_8b20ljSkXZruuiQigrCpo7ueQdUqd1MXiuI,9908
143
- execsql2-2.29.0.data/data/execsql2_extras/pg_upsert.sql,sha256=HpPJtTHvpEjQy03j-3iPxDEOHMRkudOg7O4D4YR38UI,108315
144
- execsql2-2.29.0.data/data/execsql2_extras/script_template.sql,sha256=2J35ddZPguJ-vwTsz83wErv0jiWUyJcdW_JM0mNKDXA,11155
145
- execsql2-2.29.0.data/data/execsql2_extras/ss_compare.sql,sha256=j1qVNUPXQsEU7-DoVgDJCGcE0EuIl7whLBT3fgeiMAo,24833
146
- execsql2-2.29.0.data/data/execsql2_extras/ss_glossary.sql,sha256=2gLxv34xzKt0vy7hSzJH7a9JiMC3ETrv9MofxQwAibU,13065
147
- execsql2-2.29.0.data/data/execsql2_extras/ss_upsert.sql,sha256=G_8rQ0VzuKIZHWs24O_WrfzpC5S27R1JsL-bFBR3SUQ,117730
148
- execsql2-2.29.0.dist-info/METADATA,sha256=eqv9-m8EsFEa1OBzwYfK66_d6vGY2Fv5BTmKyy1ashY,27854
149
- execsql2-2.29.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
150
- execsql2-2.29.0.dist-info/entry_points.txt,sha256=jOf53-4IVGjEZeNYUOF1GGaiPNfVZcNKxP3vDFKEyMA,58
151
- execsql2-2.29.0.dist-info/licenses/LICENSE.txt,sha256=LBdhuxejF8_bLCHZ2kWfmDXpDGUu914Gbd6_3JjCRe0,676
152
- execsql2-2.29.0.dist-info/licenses/NOTICE,sha256=McYzgxYav3U1OaVsY4Su1sfBrfmplpRdA9b6-gCDQCg,342
153
- execsql2-2.29.0.dist-info/RECORD,,
138
+ execsql2-2.31.1.data/data/execsql2_extras/README.md,sha256=6f5bWiBlKRn8s6GVrU423-HFrU1Jwbk2AabxraLu3AY,5398
139
+ execsql2-2.31.1.data/data/execsql2_extras/config_settings.sqlite,sha256=aY5cxR7Q7J6zJ4bC9lu5mHUrhy211Cq3MNKPQVCt02E,20480
140
+ execsql2-2.31.1.data/data/execsql2_extras/example_config_prompt.sql,sha256=2e8KzzVWhho8KxYVHETSVmZdhW7wodioDsqBLSL6m4s,7487
141
+ execsql2-2.31.1.data/data/execsql2_extras/make_config_db.sql,sha256=WwyC6dK-Eh5CAVppiBCDHqiI1_wEI9U95Ytpr4lsZkg,8726
142
+ execsql2-2.31.1.data/data/execsql2_extras/md_compare.sql,sha256=ARYEcOlxWLxfw-KCKDeJRdCqnuCb9PVwGaHtITR2sYU,26535
143
+ execsql2-2.31.1.data/data/execsql2_extras/md_glossary.sql,sha256=gu2PDTm295YvxR7cDp25Mf-xXHly0BvlMudoNOrep5Q,10931
144
+ execsql2-2.31.1.data/data/execsql2_extras/md_upsert.sql,sha256=YNUTFS6yB4bZXs-wRDn6dN8jL5wIumzZyE2uo5arIos,113407
145
+ execsql2-2.31.1.data/data/execsql2_extras/pg_compare.sql,sha256=WcupGxQoWtMwHVPuy42xCpP4gAV4Ttb1W-_hwh-3xb4,24529
146
+ execsql2-2.31.1.data/data/execsql2_extras/pg_glossary.sql,sha256=CfQz2HZj2nMvJfYfQrAmNYdx0uRrOIWsCXwVo5gKv_k,9953
147
+ execsql2-2.31.1.data/data/execsql2_extras/script_template.sql,sha256=s5i0HULxp49N2Cpd24iALleM_dBq5oLuN3Arx_4Z7-o,11140
148
+ execsql2-2.31.1.data/data/execsql2_extras/ss_compare.sql,sha256=PpU-vPyqqC1faBoo5zwVZlZHYKkT79QZisWVlk4o-ss,26415
149
+ execsql2-2.31.1.data/data/execsql2_extras/ss_glossary.sql,sha256=_oTiZHpadPXWrNs8VoRe9PZgX9XdK490NMVWVTVtjl4,13110
150
+ execsql2-2.31.1.data/data/execsql2_extras/ss_upsert.sql,sha256=Dvst877h4KHn8ayYF9EXI_OxqLQ89wyfcnGYYT4szro,118304
151
+ execsql2-2.31.1.dist-info/METADATA,sha256=_zRvNxl03raboxUe3f_1vjBqiNUyT_k5vF9RJhZI9Tk,26927
152
+ execsql2-2.31.1.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
153
+ execsql2-2.31.1.dist-info/entry_points.txt,sha256=jOf53-4IVGjEZeNYUOF1GGaiPNfVZcNKxP3vDFKEyMA,58
154
+ execsql2-2.31.1.dist-info/licenses/LICENSE.txt,sha256=LBdhuxejF8_bLCHZ2kWfmDXpDGUu914Gbd6_3JjCRe0,676
155
+ execsql2-2.31.1.dist-info/licenses/NOTICE,sha256=McYzgxYav3U1OaVsY4Su1sfBrfmplpRdA9b6-gCDQCg,342
156
+ execsql2-2.31.1.dist-info/RECORD,,