execsql2 2.30.0__py3-none-any.whl → 2.31.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/api.py +1 -0
- execsql/cli/application.py +1 -1
- execsql/cli/commands/lint.py +1 -1
- execsql/cli/dsn.py +35 -1
- execsql/cli/lint.py +10 -1
- execsql/cli/run.py +8 -3
- execsql/config.py +26 -4
- execsql/data/execsql.conf.template +8 -2
- execsql/db/access.py +9 -5
- execsql/db/base.py +18 -0
- execsql/db/dsn.py +3 -0
- execsql/db/factory.py +11 -1
- execsql/db/mysql.py +56 -3
- execsql/db/odbc.py +62 -0
- execsql/db/postgres.py +1 -1
- execsql/db/sqlserver.py +39 -21
- execsql/exporters/ods.py +146 -41
- execsql/exporters/values.py +166 -9
- execsql/importers/base.py +1 -1
- execsql/importers/csv.py +1 -1
- execsql/importers/ods.py +2 -0
- execsql/lsp/diagnostics.py +1 -1
- execsql/lsp/document.py +3 -0
- execsql/metacommands/io_fileops.py +11 -5
- execsql/metacommands/reference.py +1 -1
- execsql/metacommands/upsert.py +10 -1
- execsql/utils/auth.py +21 -14
- execsql/utils/errors.py +1 -1
- execsql/utils/paths.py +31 -0
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/README.md +9 -8
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/md_compare.sql +53 -29
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/md_glossary.sql +20 -20
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/md_upsert.sql +59 -66
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/pg_compare.sql +19 -22
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/pg_glossary.sql +13 -17
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/script_template.sql +302 -299
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/ss_compare.sql +39 -29
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/ss_glossary.sql +13 -17
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/ss_upsert.sql +56 -66
- {execsql2-2.30.0.dist-info → execsql2-2.31.2.dist-info}/METADATA +17 -41
- {execsql2-2.30.0.dist-info → execsql2-2.31.2.dist-info}/RECORD +48 -47
- execsql2-2.30.0.data/data/execsql2_extras/pg_upsert.sql +0 -2791
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/config_settings.sqlite +0 -0
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/example_config_prompt.sql +0 -0
- {execsql2-2.30.0.data → execsql2-2.31.2.data}/data/execsql2_extras/make_config_db.sql +0 -0
- {execsql2-2.30.0.dist-info → execsql2-2.31.2.dist-info}/WHEEL +0 -0
- {execsql2-2.30.0.dist-info → execsql2-2.31.2.dist-info}/entry_points.txt +0 -0
- {execsql2-2.30.0.dist-info → execsql2-2.31.2.dist-info}/licenses/LICENSE.txt +0 -0
- {execsql2-2.30.0.dist-info → execsql2-2.31.2.dist-info}/licenses/NOTICE +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: execsql2
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.31.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
|
-
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.
|
|
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,29 +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: bump-my-version>=1.2.7; extra == 'dev'
|
|
87
|
-
Requires-Dist: defusedxml>=0.7; extra == 'dev'
|
|
88
|
-
Requires-Dist: jinja2>=3.1; extra == 'dev'
|
|
89
|
-
Requires-Dist: lsprotocol>=2025.0.0; extra == 'dev'
|
|
90
|
-
Requires-Dist: mkdocstrings-python>=2.0.3; extra == 'dev'
|
|
91
|
-
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
92
|
-
Requires-Dist: odfpy>=1.4; extra == 'dev'
|
|
93
|
-
Requires-Dist: openpyxl>=3.1; extra == 'dev'
|
|
94
|
-
Requires-Dist: polars>=1.0; extra == 'dev'
|
|
95
|
-
Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
|
|
96
|
-
Requires-Dist: pygls<3,>=2.1; extra == 'dev'
|
|
97
|
-
Requires-Dist: pytest-asyncio>=1.0; extra == 'dev'
|
|
98
|
-
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
|
|
99
|
-
Requires-Dist: pytest-lsp>=1.0; extra == 'dev'
|
|
100
|
-
Requires-Dist: pytest>=8; extra == 'dev'
|
|
101
|
-
Requires-Dist: pyyaml>=6.0; extra == 'dev'
|
|
102
|
-
Requires-Dist: ruff>=0.4; extra == 'dev'
|
|
103
|
-
Requires-Dist: sqlglot<30.22,>=30.21.0; extra == 'dev'
|
|
104
|
-
Requires-Dist: tables>=3.10; extra == 'dev'
|
|
105
|
-
Requires-Dist: tox-uv>=1.13.1; extra == 'dev'
|
|
106
|
-
Requires-Dist: xlrd>=2.0; extra == 'dev'
|
|
107
|
-
Requires-Dist: zensical==0.0.67; extra == 'dev'
|
|
108
85
|
Provides-Extra: duckdb
|
|
109
86
|
Requires-Dist: duckdb>=1.0; extra == 'duckdb'
|
|
110
87
|
Requires-Dist: pytz; extra == 'duckdb'
|
|
@@ -138,7 +115,7 @@ Requires-Dist: oracledb>=3.0; extra == 'oracle'
|
|
|
138
115
|
Provides-Extra: postgres
|
|
139
116
|
Requires-Dist: psycopg[binary]<4,>=3.1; extra == 'postgres'
|
|
140
117
|
Provides-Extra: upsert
|
|
141
|
-
Requires-Dist: pg-upsert>=1.
|
|
118
|
+
Requires-Dist: pg-upsert>=1.26.0; extra == 'upsert'
|
|
142
119
|
Description-Content-Type: text/markdown
|
|
143
120
|
|
|
144
121
|
> [!NOTE]
|
|
@@ -146,7 +123,7 @@ Description-Content-Type: text/markdown
|
|
|
146
123
|
|
|
147
124
|
<div align="center">
|
|
148
125
|
|
|
149
|
-
<img src="https://execsql2.readthedocs.io/en/
|
|
126
|
+
<img src="https://execsql2.readthedocs.io/en/stable/images/execsql_logo_01.png" alt="execsql logo">
|
|
150
127
|
|
|
151
128
|
*Multi-DBMS SQL script processor.*
|
|
152
129
|
|
|
@@ -178,7 +155,7 @@ Scripts are ordinary SQL plus metacommands embedded in comments (`-- !x!`), whic
|
|
|
178
155
|
| `execsql config` | Show every config option, its value, and the file that set it | No |
|
|
179
156
|
| `execsql list` | Metacommands, encodings, plugins, or the keyword vocabulary | No |
|
|
180
157
|
| `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/
|
|
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 |
|
|
182
159
|
| [VS Code extension](extras/vscode-execsql) | Highlighting plus everything `execsql lsp` provides | No |
|
|
183
160
|
|
|
184
161
|
`format` and `lint` take files or directories.
|
|
@@ -212,7 +189,7 @@ load_data.sql
|
|
|
212
189
|
Found 3 issues in 1 file: 3 warnings (1 file checked)
|
|
213
190
|
```
|
|
214
191
|
|
|
215
|
-
`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/
|
|
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.
|
|
216
193
|
|
|
217
194
|
`execsql format` also runs as a [pre-commit hook](#formatting-scripts), so formatting is enforced without anyone remembering to run it.
|
|
218
195
|
|
|
@@ -252,7 +229,7 @@ drop table if exists staging.errorlog cascade;
|
|
|
252
229
|
|
|
253
230
|
The `PROMPT` metacommand produces a GUI display of the data:
|
|
254
231
|
|
|
255
|
-

|
|
256
233
|
|
|
257
234
|
## Installation
|
|
258
235
|
|
|
@@ -267,7 +244,7 @@ uv tool install "execsql2[all]" # everything: all drivers plus all fea
|
|
|
267
244
|
add it to that project instead: `uv add "execsql2[postgres]"` or
|
|
268
245
|
`pip install "execsql2[postgres]"` in its virtual environment.
|
|
269
246
|
|
|
270
|
-
Feature extras cover spreadsheet and Parquet/Feather formats, keyring authentication, PostgreSQL upsert, and more. See the [installation guide](https://execsql2.readthedocs.io/en/
|
|
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.
|
|
271
248
|
|
|
272
249
|
## Usage
|
|
273
250
|
|
|
@@ -334,7 +311,7 @@ silences.
|
|
|
334
311
|
| `--debug` | Start in step-through debug mode (REPL pauses before each stmt) |
|
|
335
312
|
| `--no-system-cmd` / `--no-rm-file` / `--no-serve` | Disable the `SYSTEM_CMD` / `RM_FILE` / `SERVE` metacommands |
|
|
336
313
|
|
|
337
|
-
See the [full options reference](https://execsql2.readthedocs.io/en/
|
|
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.
|
|
338
315
|
|
|
339
316
|
## Features
|
|
340
317
|
|
|
@@ -437,7 +414,7 @@ result = run(sql="SELECT 1;", connection=conn)
|
|
|
437
414
|
conn.close()
|
|
438
415
|
```
|
|
439
416
|
|
|
440
|
-
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/
|
|
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/).
|
|
441
418
|
|
|
442
419
|
Each call to `run()` uses an isolated `RuntimeContext`, so multiple calls do not share state.
|
|
443
420
|
|
|
@@ -464,13 +441,13 @@ execsql format --no-sql --in-place scripts/
|
|
|
464
441
|
```yaml
|
|
465
442
|
repos:
|
|
466
443
|
- repo: https://github.com/geocoug/execsql
|
|
467
|
-
rev: v2.
|
|
444
|
+
rev: v2.31.2
|
|
468
445
|
hooks:
|
|
469
446
|
- id: execsql-format
|
|
470
447
|
- id: execsql-lint
|
|
471
448
|
```
|
|
472
449
|
|
|
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/
|
|
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.
|
|
474
451
|
|
|
475
452
|
## VS Code
|
|
476
453
|
|
|
@@ -481,19 +458,18 @@ uv tool install "execsql2[lsp]" # the language server
|
|
|
481
458
|
code --install-extension execsql-syntax.vsix # the extension, from the release
|
|
482
459
|
```
|
|
483
460
|
|
|
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/
|
|
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)).
|
|
485
462
|
|
|
486
|
-
Other editors use the language server directly: see [Editor Support](https://execsql2.readthedocs.io/en/
|
|
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.
|
|
487
464
|
|
|
488
465
|
## Templates
|
|
489
466
|
|
|
490
|
-
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.)
|
|
491
468
|
|
|
492
|
-
- **Upsert scripts** (`
|
|
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.
|
|
493
470
|
- **Comparison scripts** (`pg_compare.sql`, `md_compare.sql`, `ss_compare.sql`): Compare staging and base tables across multiple dimensions.
|
|
494
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.
|
|
495
472
|
- **`script_template.sql`**: A framework for new scripts with sections for configuration, logging, and error reporting.
|
|
496
|
-
- **`execsql.conf`**: An annotated configuration file covering all available settings.
|
|
497
473
|
|
|
498
474
|
## Documentation
|
|
499
475
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
execsql/__init__.py,sha256=ZeVnpEWu8M2bn3qLmVM72NhWRueUGNbsX8UAPTermo0,901
|
|
2
2
|
execsql/__main__.py,sha256=Nnh7_QgjYTTzd1Kog2thl7wzNpoxfnZ3YaurSOMzE_U,270
|
|
3
|
-
execsql/api.py,sha256=
|
|
4
|
-
execsql/config.py,sha256
|
|
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
|
|
@@ -15,36 +15,37 @@ execsql/state.py,sha256=rXhxx58dVFjhG58HGOXm3ewloVlvpcaYnW1rij4qjkM,23478
|
|
|
15
15
|
execsql/state.pyi,sha256=ZDHZ1DPKYu4Qs4bcJT31XNv4GOt6O4s_zH4UHCowovw,4344
|
|
16
16
|
execsql/types.py,sha256=zey_bc2AzbUduLoK-nps16qX2zazDYf_iapWkG_cbmA,33130
|
|
17
17
|
execsql/cli/__init__.py,sha256=FHg2lm2gt4L-XBnlVORn3qWHZ4739Ao-uwBIURfVIjg,2798
|
|
18
|
-
execsql/cli/application.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
29
|
+
execsql/cli/commands/lint.py,sha256=K_4eeU4JcQh6vNV5Thcta9Kuqek_cNiKFOHskgOtDzI,8435
|
|
30
30
|
execsql/cli/commands/listing.py,sha256=thtkJ-ILGd0SPs57oVIMkkCGpXsfS0hQxueMc2ccRVw,3514
|
|
31
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=
|
|
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=
|
|
38
|
-
execsql/db/base.py,sha256=
|
|
39
|
-
execsql/db/dsn.py,sha256=
|
|
37
|
+
execsql/db/access.py,sha256=fxiC3rtoOJzrNXNxau-w7oh1fd9tyh2_PMliBbFc164,21427
|
|
38
|
+
execsql/db/base.py,sha256=tBAcNRiYE7VZo98S75mu6Y2ySdBNoh8LzzTn7TgLOBs,43684
|
|
39
|
+
execsql/db/dsn.py,sha256=Evrc6MUllJVFDn0jZB_iks-aKCsXuNF9XYjAkttqgGQ,6995
|
|
40
40
|
execsql/db/duckdb.py,sha256=KC8Tqbnemg3wsYH_efnFmxtybPbMXElFDsoeq_FeVus,11143
|
|
41
|
-
execsql/db/factory.py,sha256=
|
|
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=
|
|
43
|
+
execsql/db/mysql.py,sha256=FVId78NifBmNfEI8zmqjRMJ3FUy7hskv411LqABAAOQ,24198
|
|
44
|
+
execsql/db/odbc.py,sha256=l03UNHi8sFtjHbgOKUNA2teKOisNk-8laQGCsHZs2eo,2526
|
|
44
45
|
execsql/db/oracle.py,sha256=i5qPahsy_z1AuZT7l54Hzixknkvbzd-SCQgiVcTN94w,13796
|
|
45
|
-
execsql/db/postgres.py,sha256=
|
|
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=
|
|
48
|
+
execsql/db/sqlserver.py,sha256=6-wySx9BrSTAyXl5BnBLjRYEpl4_GubDjiGuvpehgco,10528
|
|
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,14 +58,14 @@ 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=
|
|
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=
|
|
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
|
|
@@ -76,19 +77,19 @@ 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=
|
|
80
|
-
execsql/importers/csv.py,sha256=
|
|
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=
|
|
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
87
|
execsql/lsp/_util.py,sha256=8CypObGywKZP1aRetq0ytNBqlMelIdJWduR1JnEuW1E,729
|
|
87
88
|
execsql/lsp/cache.py,sha256=wAiZAzNdVseqRDJQ4aiKJF6WVHBV20tt9lQ7kvwlMeo,3149
|
|
88
89
|
execsql/lsp/code_actions.py,sha256=5UH_W22MY00PMXCc_IV0xv4v1WnvUvKMu3QWnk7qf-w,8579
|
|
89
90
|
execsql/lsp/completion.py,sha256=podEPbgDwGbvGdOWPQRuxsYpQ4f1mybuVgAkwwd7MGQ,7875
|
|
90
|
-
execsql/lsp/diagnostics.py,sha256=
|
|
91
|
-
execsql/lsp/document.py,sha256=
|
|
91
|
+
execsql/lsp/diagnostics.py,sha256=wZuCYGkYqyqTRBQ5s-s4UwdMoive8M9_O74T318HzAA,3076
|
|
92
|
+
execsql/lsp/document.py,sha256=psqVjh46kw71qpPYifM59ku0dEBGgEmlTh_dejbe5QI,12458
|
|
92
93
|
execsql/lsp/folding.py,sha256=PgwehzXnPcR68myldo2SYrqbfGla4f6gb_UrhKmaqyQ,2752
|
|
93
94
|
execsql/lsp/formatting.py,sha256=9YpCfLsi09M1PZovB2HJN-Tp9Jqgk-2xxit5g5NrTqU,1217
|
|
94
95
|
execsql/lsp/hover.py,sha256=JemZqJ8d7FHouMhW92jkfek14fL9rl6JBQU7JIXJHos,5038
|
|
@@ -105,14 +106,14 @@ execsql/metacommands/dispatch.py,sha256=so0ebcnv66NhVDtA1Bt4GelD0hsC5w7gy7rItz2M
|
|
|
105
106
|
execsql/metacommands/effects.py,sha256=cRSo48R4nRJzkRR3OGHLhJzofcdAaNIobaxmn1N9TGw,3813
|
|
106
107
|
execsql/metacommands/io.py,sha256=vlGBje5sgnqeilooMdhJDgSRIhysHy5_7LrKtik9Xjs,3011
|
|
107
108
|
execsql/metacommands/io_export.py,sha256=YamxQwURRjZRpCG2z8W3QurncCmEmAyLFqDkxtHo5dY,14434
|
|
108
|
-
execsql/metacommands/io_fileops.py,sha256=
|
|
109
|
+
execsql/metacommands/io_fileops.py,sha256=CmdgfgTHFWlzsA5XzsHeu6B9OTncb0K8n9uEgS68dkQ,13306
|
|
109
110
|
execsql/metacommands/io_import.py,sha256=gJICeK1MOfG6D73I7m8zBCalvr_ZJzD-QBKOpKYeYXo,15684
|
|
110
111
|
execsql/metacommands/io_write.py,sha256=yXDkMbQ3haDARVATVUYZprakyJHSyk1NywdKkFLpQ14,12783
|
|
111
112
|
execsql/metacommands/prompt.py,sha256=PlXhtBYCembG_1SSCrwpQR10mGF3_jXodu4aCSHlSCM,37950
|
|
112
|
-
execsql/metacommands/reference.py,sha256=
|
|
113
|
+
execsql/metacommands/reference.py,sha256=yiv_qNp-MPI2UNBOzfwT11JU-xvWM9lw8yBZjP_VlsY,53953
|
|
113
114
|
execsql/metacommands/script_ext.py,sha256=CsUbyq8QFPnnvfX_k7fPlYNvvRw1xLmAWER4Exo5pwc,3658
|
|
114
115
|
execsql/metacommands/system.py,sha256=6X2qmMpGUHDzyEluEotXt0Ks9jKQTpc2x0eoYNgN12M,7997
|
|
115
|
-
execsql/metacommands/upsert.py,sha256=
|
|
116
|
+
execsql/metacommands/upsert.py,sha256=Dl7NfaAH8ziGBqcLCgcat3Hcw9vSewK1eo7-nzToI4g,20725
|
|
116
117
|
execsql/script/__init__.py,sha256=I7hVO6wm3iOocxRRGEcFHhjdtL1moKbUYLB-wKbjPdk,3267
|
|
117
118
|
execsql/script/ast.py,sha256=WqCpFxhxrT2IIGvbArTp3QS0BZryRZAb7IL4ri3I6xg,20591
|
|
118
119
|
execsql/script/control.py,sha256=WqLy-HLPqHG3vEzYpKMiIJsD7LpORjyQuUWzFzcGz4w,2327
|
|
@@ -121,35 +122,35 @@ execsql/script/executor.py,sha256=p3Aj7Ab8HwZRnmYds_e6h6yhRzCCa9XXbdVDkpg6NaQ,40
|
|
|
121
122
|
execsql/script/parser.py,sha256=z73v6t6ZbPUKkRu-UOIL6q1cCRDeoRvG2aXXC8NpMvE,37162
|
|
122
123
|
execsql/script/variables.py,sha256=Tb01aHqOdWZbkgj-oW0ky3KWNy5N34XLD-Fm2eShYZM,17462
|
|
123
124
|
execsql/utils/__init__.py,sha256=0uR6JwVJQRX3vceByNBduCAf5dd5assKjeqJUWvpZoA,278
|
|
124
|
-
execsql/utils/auth.py,sha256=
|
|
125
|
+
execsql/utils/auth.py,sha256=0LYKdNMhodq9R0B8WyKp69a-xlP9wOR6Ua9Lgo2aJnQ,14868
|
|
125
126
|
execsql/utils/color.py,sha256=goQqhnLg8yERpFolQikA9zYSVcuAm0unKTJiWTbQm-U,634
|
|
126
127
|
execsql/utils/crypto.py,sha256=KlT6lPk-v0-qQQfAMfWvT9Q6kRdCD3_5JVaLajNocKM,3051
|
|
127
128
|
execsql/utils/datetime.py,sha256=rqtGrc0t37V00mvirJ8wJKHmDtDSYzTg_UgCyIBzv9E,5583
|
|
128
|
-
execsql/utils/errors.py,sha256=
|
|
129
|
+
execsql/utils/errors.py,sha256=WKojSMjNecL9riRo9TnZ4fXofZr2uDo2_4B6n-zP31M,11693
|
|
129
130
|
execsql/utils/fileio.py,sha256=IqIEhun9aOnr1oBCWK2z2VAPVo95bZ54cVglLW4rV9M,48208
|
|
130
131
|
execsql/utils/gui.py,sha256=1iiupP9AsLdR6ST0gcLE143o6y6YGUFlNv_pdVPxfCE,23943
|
|
131
132
|
execsql/utils/mail.py,sha256=4RiKtXa_sqij_YGdYmjQ3PG0u3G9qjs-9caQwBErtBw,7278
|
|
132
133
|
execsql/utils/numeric.py,sha256=_7bi5R6pHjMCkOPne_Sh5nUj-B8e9g6WFmjptFHaunA,1573
|
|
134
|
+
execsql/utils/paths.py,sha256=7IIHT6vqXTfs6Ltfrzm_I2ZV4pU8IuedOLkHo6a1_K8,1175
|
|
133
135
|
execsql/utils/regex.py,sha256=DGzPBl0Kt4--RbwPhoZI6Bm6N_CBUvI0DbqE4EF6qp8,3718
|
|
134
136
|
execsql/utils/strings.py,sha256=UQNjpRCEFa1UO6feU-M-9e24wWAvizs_iu_4fFusLxo,8516
|
|
135
137
|
execsql/utils/timer.py,sha256=eDYf5VzCNFk7oo90InJucUm3XcBdhYMogjZMqeg9xzc,1899
|
|
136
|
-
execsql2-2.
|
|
137
|
-
execsql2-2.
|
|
138
|
-
execsql2-2.
|
|
139
|
-
execsql2-2.
|
|
140
|
-
execsql2-2.
|
|
141
|
-
execsql2-2.
|
|
142
|
-
execsql2-2.
|
|
143
|
-
execsql2-2.
|
|
144
|
-
execsql2-2.
|
|
145
|
-
execsql2-2.
|
|
146
|
-
execsql2-2.
|
|
147
|
-
execsql2-2.
|
|
148
|
-
execsql2-2.
|
|
149
|
-
execsql2-2.
|
|
150
|
-
execsql2-2.
|
|
151
|
-
execsql2-2.
|
|
152
|
-
execsql2-2.
|
|
153
|
-
execsql2-2.
|
|
154
|
-
execsql2-2.
|
|
155
|
-
execsql2-2.30.0.dist-info/RECORD,,
|
|
138
|
+
execsql2-2.31.2.data/data/execsql2_extras/README.md,sha256=6f5bWiBlKRn8s6GVrU423-HFrU1Jwbk2AabxraLu3AY,5398
|
|
139
|
+
execsql2-2.31.2.data/data/execsql2_extras/config_settings.sqlite,sha256=aY5cxR7Q7J6zJ4bC9lu5mHUrhy211Cq3MNKPQVCt02E,20480
|
|
140
|
+
execsql2-2.31.2.data/data/execsql2_extras/example_config_prompt.sql,sha256=2e8KzzVWhho8KxYVHETSVmZdhW7wodioDsqBLSL6m4s,7487
|
|
141
|
+
execsql2-2.31.2.data/data/execsql2_extras/make_config_db.sql,sha256=WwyC6dK-Eh5CAVppiBCDHqiI1_wEI9U95Ytpr4lsZkg,8726
|
|
142
|
+
execsql2-2.31.2.data/data/execsql2_extras/md_compare.sql,sha256=ARYEcOlxWLxfw-KCKDeJRdCqnuCb9PVwGaHtITR2sYU,26535
|
|
143
|
+
execsql2-2.31.2.data/data/execsql2_extras/md_glossary.sql,sha256=gu2PDTm295YvxR7cDp25Mf-xXHly0BvlMudoNOrep5Q,10931
|
|
144
|
+
execsql2-2.31.2.data/data/execsql2_extras/md_upsert.sql,sha256=YNUTFS6yB4bZXs-wRDn6dN8jL5wIumzZyE2uo5arIos,113407
|
|
145
|
+
execsql2-2.31.2.data/data/execsql2_extras/pg_compare.sql,sha256=WcupGxQoWtMwHVPuy42xCpP4gAV4Ttb1W-_hwh-3xb4,24529
|
|
146
|
+
execsql2-2.31.2.data/data/execsql2_extras/pg_glossary.sql,sha256=CfQz2HZj2nMvJfYfQrAmNYdx0uRrOIWsCXwVo5gKv_k,9953
|
|
147
|
+
execsql2-2.31.2.data/data/execsql2_extras/script_template.sql,sha256=s5i0HULxp49N2Cpd24iALleM_dBq5oLuN3Arx_4Z7-o,11140
|
|
148
|
+
execsql2-2.31.2.data/data/execsql2_extras/ss_compare.sql,sha256=PpU-vPyqqC1faBoo5zwVZlZHYKkT79QZisWVlk4o-ss,26415
|
|
149
|
+
execsql2-2.31.2.data/data/execsql2_extras/ss_glossary.sql,sha256=_oTiZHpadPXWrNs8VoRe9PZgX9XdK490NMVWVTVtjl4,13110
|
|
150
|
+
execsql2-2.31.2.data/data/execsql2_extras/ss_upsert.sql,sha256=Dvst877h4KHn8ayYF9EXI_OxqLQ89wyfcnGYYT4szro,118304
|
|
151
|
+
execsql2-2.31.2.dist-info/METADATA,sha256=hcqYBQapidB4W3tZ0n4YWwdb6-j_8I4N6TrSyrHcrXY,26927
|
|
152
|
+
execsql2-2.31.2.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
153
|
+
execsql2-2.31.2.dist-info/entry_points.txt,sha256=jOf53-4IVGjEZeNYUOF1GGaiPNfVZcNKxP3vDFKEyMA,58
|
|
154
|
+
execsql2-2.31.2.dist-info/licenses/LICENSE.txt,sha256=LBdhuxejF8_bLCHZ2kWfmDXpDGUu914Gbd6_3JjCRe0,676
|
|
155
|
+
execsql2-2.31.2.dist-info/licenses/NOTICE,sha256=McYzgxYav3U1OaVsY4Su1sfBrfmplpRdA9b6-gCDQCg,342
|
|
156
|
+
execsql2-2.31.2.dist-info/RECORD,,
|