execsql2 2.26.0__py3-none-any.whl → 2.28.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.
- execsql/cli/commands/__init__.py +1 -0
- execsql/cli/commands/format.py +2 -1
- execsql/cli/commands/listing.py +32 -5
- execsql/cli/commands/lsp.py +64 -0
- execsql/cli/dispatch.py +1 -1
- execsql/cli/help.py +44 -96
- execsql/cli/lint.py +58 -22
- execsql/db/access.py +4 -4
- execsql/db/base.py +17 -3
- execsql/db/dsn.py +2 -2
- execsql/db/duckdb.py +14 -2
- execsql/db/firebird.py +2 -3
- execsql/db/mysql.py +2 -2
- execsql/db/oracle.py +5 -5
- execsql/db/postgres.py +2 -3
- execsql/db/sqlserver.py +2 -2
- execsql/exporters/duckdb.py +2 -2
- execsql/exporters/ods.py +2 -2
- execsql/exporters/templates.py +2 -2
- execsql/exporters/xls.py +3 -3
- execsql/exporters/xlsx.py +2 -2
- execsql/exporters/yaml.py +3 -4
- execsql/format.py +71 -21
- execsql/importers/base.py +6 -10
- execsql/lsp/__init__.py +6 -0
- execsql/lsp/code_actions.py +217 -0
- execsql/lsp/completion.py +203 -0
- execsql/lsp/diagnostics.py +66 -0
- execsql/lsp/document.py +210 -0
- execsql/lsp/folding.py +59 -0
- execsql/lsp/formatting.py +37 -0
- execsql/lsp/hover.py +119 -0
- execsql/lsp/navigation.py +169 -0
- execsql/lsp/rename.py +91 -0
- execsql/lsp/server.py +358 -0
- execsql/metacommands/debug.py +2 -2
- execsql/metacommands/dispatch.py +7 -0
- execsql/metacommands/io_fileops.py +6 -6
- execsql/metacommands/reference.py +1404 -0
- execsql/metacommands/upsert.py +2 -5
- execsql/models.py +11 -0
- execsql/utils/errors.py +16 -0
- {execsql2-2.26.0.dist-info → execsql2-2.28.0.dist-info}/METADATA +34 -18
- {execsql2-2.26.0.dist-info → execsql2-2.28.0.dist-info}/RECORD +62 -49
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/README.md +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/config_settings.sqlite +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/example_config_prompt.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/make_config_db.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/md_compare.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/md_glossary.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/md_upsert.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/pg_compare.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/pg_glossary.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/pg_upsert.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/script_template.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/ss_compare.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/ss_glossary.sql +0 -0
- {execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/ss_upsert.sql +0 -0
- {execsql2-2.26.0.dist-info → execsql2-2.28.0.dist-info}/WHEEL +0 -0
- {execsql2-2.26.0.dist-info → execsql2-2.28.0.dist-info}/entry_points.txt +0 -0
- {execsql2-2.26.0.dist-info → execsql2-2.28.0.dist-info}/licenses/LICENSE.txt +0 -0
- {execsql2-2.26.0.dist-info → execsql2-2.28.0.dist-info}/licenses/NOTICE +0 -0
execsql/metacommands/upsert.py
CHANGED
|
@@ -17,7 +17,7 @@ from typing import Any
|
|
|
17
17
|
import execsql.state as _state
|
|
18
18
|
from execsql.exceptions import ErrInfo
|
|
19
19
|
from execsql.types import dbt_postgres
|
|
20
|
-
from execsql.utils.errors import exception_desc
|
|
20
|
+
from execsql.utils.errors import exception_desc, install_hint
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
# ---------------------------------------------------------------------------
|
|
@@ -213,10 +213,7 @@ def _require_pg_upsert() -> None:
|
|
|
213
213
|
except ImportError as exc:
|
|
214
214
|
raise ErrInfo(
|
|
215
215
|
"exception",
|
|
216
|
-
other_msg=(
|
|
217
|
-
'PG_UPSERT requires the pg-upsert package. Install the upsert extra: uv tool install "execsql2[upsert]"'
|
|
218
|
-
' (or pip install "execsql2[upsert]").'
|
|
219
|
-
),
|
|
216
|
+
other_msg=f"PG_UPSERT requires the pg-upsert package. {install_hint('upsert')}",
|
|
220
217
|
) from exc
|
|
221
218
|
|
|
222
219
|
|
execsql/models.py
CHANGED
|
@@ -167,8 +167,16 @@ class Column:
|
|
|
167
167
|
self.Accum(DT_Text()),
|
|
168
168
|
self.Accum(DT_Binary()),
|
|
169
169
|
)
|
|
170
|
+
if not infer_strings:
|
|
171
|
+
# Values from a database cursor: a bytes value is binary data, so
|
|
172
|
+
# Binary is tried before the text types (which accept anything).
|
|
173
|
+
text = [ac for ac in self.accums if isinstance(ac.dt, (DT_Character, DT_Varchar, DT_Text))]
|
|
174
|
+
binary = [ac for ac in self.accums if isinstance(ac.dt, DT_Binary)]
|
|
175
|
+
self.accums = tuple(ac for ac in self.accums if ac not in text and ac not in binary) + tuple(binary + text)
|
|
170
176
|
self.infer_strings = infer_strings
|
|
171
177
|
self.str_accums = tuple(ac for ac in self.accums if isinstance(ac.dt, (DT_Character, DT_Varchar, DT_Text)))
|
|
178
|
+
# A bytes value is checked as binary or text only: int(b"12") is 12.
|
|
179
|
+
self.bytes_accums = tuple(ac for ac in self.accums if isinstance(ac.dt, DT_Binary)) + self.str_accums
|
|
172
180
|
self.dt_eval = False
|
|
173
181
|
# self.dt is a tuple of: 0: column name; 1: data type class; 2: max length or None;
|
|
174
182
|
# 3: bool indicating any null values; 4: precision or None; 5: scale or None.
|
|
@@ -198,6 +206,9 @@ class Column:
|
|
|
198
206
|
if not self.infer_strings and isinstance(column_value, str):
|
|
199
207
|
for dt in self.str_accums:
|
|
200
208
|
dt.check(column_value)
|
|
209
|
+
elif not self.infer_strings and isinstance(column_value, (bytes, bytearray, memoryview)):
|
|
210
|
+
for dt in self.bytes_accums:
|
|
211
|
+
dt.check(column_value)
|
|
201
212
|
else:
|
|
202
213
|
for dt in self.accums:
|
|
203
214
|
dt.check(column_value)
|
execsql/utils/errors.py
CHANGED
|
@@ -37,8 +37,24 @@ __all__ = [
|
|
|
37
37
|
"stamp_errinfo",
|
|
38
38
|
"write_warning",
|
|
39
39
|
"file_size_date",
|
|
40
|
+
"install_hint",
|
|
40
41
|
]
|
|
41
42
|
|
|
43
|
+
_ADDING_AN_EXTRA = "https://execsql2.readthedocs.io/en/latest/getting-started/installation/#adding-an-extra-later"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def install_hint(extra: str) -> str:
|
|
47
|
+
"""How to install the execsql2 *extra*, for a message about a missing optional package.
|
|
48
|
+
|
|
49
|
+
``uv tool install`` and ``pipx install --force`` replace an install's
|
|
50
|
+
extras with the ones named, so the hint says to keep those already there.
|
|
51
|
+
"""
|
|
52
|
+
return (
|
|
53
|
+
f'Install the {extra} extra along with the extras you already have: uv tool install "execsql2[...,{extra}]" '
|
|
54
|
+
f'or pipx install --force "execsql2[...,{extra}]" (in a project environment: pip install "execsql2[{extra}]"). '
|
|
55
|
+
f"See {_ADDING_AN_EXTRA}"
|
|
56
|
+
)
|
|
57
|
+
|
|
42
58
|
|
|
43
59
|
def exception_info() -> tuple:
|
|
44
60
|
# Returns the exception type, value, source file name, source line number, and source line text.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: execsql2
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.28.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,14 +49,17 @@ 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
64
|
Requires-Dist: sqlglot<30.22,>=30.21.0; extra == 'all'
|
|
62
65
|
Requires-Dist: tables>=3.10; 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,13 +87,18 @@ 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'
|
|
98
|
+
Requires-Dist: pytest-asyncio>=1.0; extra == 'dev'
|
|
92
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'
|
|
93
102
|
Requires-Dist: pyyaml>=6.0; extra == 'dev'
|
|
94
103
|
Requires-Dist: ruff>=0.4; extra == 'dev'
|
|
95
104
|
Requires-Dist: sqlglot<30.22,>=30.21.0; extra == 'dev'
|
|
@@ -97,9 +106,10 @@ Requires-Dist: tables>=3.10; extra == 'dev'
|
|
|
97
106
|
Requires-Dist: tox-uv>=1.13.1; extra == 'dev'
|
|
98
107
|
Requires-Dist: twine>=6.1.0; extra == 'dev'
|
|
99
108
|
Requires-Dist: xlrd>=2.0; extra == 'dev'
|
|
100
|
-
Requires-Dist: zensical==0.0.
|
|
109
|
+
Requires-Dist: zensical==0.0.67; extra == 'dev'
|
|
101
110
|
Provides-Extra: duckdb
|
|
102
111
|
Requires-Dist: duckdb>=1.0; extra == 'duckdb'
|
|
112
|
+
Requires-Dist: pytz; extra == 'duckdb'
|
|
103
113
|
Provides-Extra: firebird
|
|
104
114
|
Requires-Dist: firebird-driver>=1.10; extra == 'firebird'
|
|
105
115
|
Provides-Extra: formats
|
|
@@ -113,6 +123,10 @@ Requires-Dist: tables>=3.10; extra == 'formats'
|
|
|
113
123
|
Requires-Dist: xlrd>=2.0; extra == 'formats'
|
|
114
124
|
Provides-Extra: formatter
|
|
115
125
|
Requires-Dist: sqlglot<30.22,>=30.21.0; extra == 'formatter'
|
|
126
|
+
Provides-Extra: lsp
|
|
127
|
+
Requires-Dist: lsprotocol>=2025.0.0; extra == 'lsp'
|
|
128
|
+
Requires-Dist: pygls<3,>=2.1; extra == 'lsp'
|
|
129
|
+
Requires-Dist: sqlglot<30.22,>=30.21.0; extra == 'lsp'
|
|
116
130
|
Provides-Extra: map
|
|
117
131
|
Requires-Dist: tkintermapview>=1.29; extra == 'map'
|
|
118
132
|
Provides-Extra: mssql
|
|
@@ -158,15 +172,16 @@ Description-Content-Type: text/markdown
|
|
|
158
172
|
|
|
159
173
|
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
174
|
|
|
161
|
-
| Command | What it does
|
|
162
|
-
| ------------------------------------------ |
|
|
163
|
-
| `execsql format` | Normalize keywords, indentation, and SQL layout
|
|
164
|
-
| `execsql lint` | Static analysis: structure, unknown metacommands, variables, targets
|
|
165
|
-
| `execsql run` | Run the script against PostgreSQL, MySQL, SQLite, DuckDB, …
|
|
166
|
-
| `execsql config` | Show every config option, its value, and the file that set it
|
|
167
|
-
| `execsql list` | Metacommands, encodings, plugins, or the keyword vocabulary
|
|
168
|
-
| `execsql init` | Set up a project: config file, a script with a header, pre-commit hooks
|
|
169
|
-
| [
|
|
175
|
+
| Command | What it does | Needs a database? |
|
|
176
|
+
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
|
|
177
|
+
| `execsql format` | Normalize keywords, indentation, and SQL layout | No |
|
|
178
|
+
| `execsql lint` | Static analysis: structure, unknown metacommands, variables, targets | No |
|
|
179
|
+
| `execsql run` | Run the script against PostgreSQL, MySQL, SQLite, DuckDB, … | Yes |
|
|
180
|
+
| `execsql config` | Show every config option, its value, and the file that set it | No |
|
|
181
|
+
| `execsql list` | Metacommands, encodings, plugins, or the keyword vocabulary | No |
|
|
182
|
+
| `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 |
|
|
184
|
+
| [VS Code extension](extras/vscode-execsql) | Highlighting plus everything `execsql lsp` provides | No |
|
|
170
185
|
|
|
171
186
|
`format` and `lint` take files or directories.
|
|
172
187
|
|
|
@@ -451,7 +466,7 @@ execsql format --no-sql --in-place scripts/
|
|
|
451
466
|
```yaml
|
|
452
467
|
repos:
|
|
453
468
|
- repo: https://github.com/geocoug/execsql
|
|
454
|
-
rev: v2.
|
|
469
|
+
rev: v2.28.0
|
|
455
470
|
hooks:
|
|
456
471
|
- id: execsql-format
|
|
457
472
|
- id: execsql-lint
|
|
@@ -459,17 +474,18 @@ repos:
|
|
|
459
474
|
|
|
460
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.
|
|
461
476
|
|
|
462
|
-
## VS Code
|
|
477
|
+
## VS Code
|
|
463
478
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
To install, symlink the extension folder into your VS Code extensions directory:
|
|
479
|
+
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
480
|
|
|
468
481
|
```sh
|
|
469
|
-
|
|
482
|
+
uv tool install "execsql2[lsp]" # the language server
|
|
483
|
+
code --install-extension execsql-syntax.vsix # the extension, from the release
|
|
470
484
|
```
|
|
471
485
|
|
|
472
|
-
|
|
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)).
|
|
487
|
+
|
|
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.
|
|
473
489
|
|
|
474
490
|
## Templates
|
|
475
491
|
|
|
@@ -4,10 +4,10 @@ execsql/api.py,sha256=UJJSlFHySuINeoExaMXqhl00hVSPH1s7G4m8T0NX_xI,26484
|
|
|
4
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=
|
|
7
|
+
execsql/format.py,sha256=z-KZ8VY1muz8S6iaErZX9E_7wE_VtjEcUB7e_KyhfyI,59565
|
|
8
8
|
execsql/interactive.py,sha256=7vm7NAlcarBJJOIffcLOcJqH9ZCInvHB_CmC2sQsXf8,8241
|
|
9
9
|
execsql/manifest.py,sha256=ibceEZtH2FqsUiujbTGy5D3W0WgO4tFCs7bjIHVdep4,8062
|
|
10
|
-
execsql/models.py,sha256=
|
|
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
|
|
@@ -16,58 +16,59 @@ 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=
|
|
19
|
+
execsql/cli/dispatch.py,sha256=deyN2QQYvdzMSqGGa3CSMpaqdLNeMgc5Uke0mUbl764,2704
|
|
20
20
|
execsql/cli/dsn.py,sha256=uBspf8DXCn2pXmT1Ug1c4IG7IgR5IFGKp9138puaubo,3289
|
|
21
|
-
execsql/cli/help.py,sha256=
|
|
22
|
-
execsql/cli/lint.py,sha256=
|
|
21
|
+
execsql/cli/help.py,sha256=bEy6ssVjyIw73JD_UPLXnCtnCifdVCKJr_cydAAVxhk,8220
|
|
22
|
+
execsql/cli/lint.py,sha256=8dZhwPrkc-_0WFd1D_qjBdKuql0SP5dpkdBRFd25xC8,47604
|
|
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=
|
|
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=
|
|
27
|
+
execsql/cli/commands/format.py,sha256=3awfNmCc6kImeyXKZo1Jt1qXbEuWk86ZllqEOY5vxzw,4456
|
|
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=
|
|
30
|
+
execsql/cli/commands/listing.py,sha256=thtkJ-ILGd0SPs57oVIMkkCGpXsfS0hQxueMc2ccRVw,3514
|
|
31
|
+
execsql/cli/commands/lsp.py,sha256=4Xng1xtoCxF6X0eQ8oC4KnV0ovEeGmlDb0tpdjJnskg,2483
|
|
31
32
|
execsql/cli/commands/run.py,sha256=sGFDku66CazJrorr0mmrhUI3QDvQVSMEYlU8G1Pd5fQ,16492
|
|
32
33
|
execsql/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
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
|
-
execsql/db/access.py,sha256=
|
|
37
|
-
execsql/db/base.py,sha256=
|
|
38
|
-
execsql/db/dsn.py,sha256=
|
|
39
|
-
execsql/db/duckdb.py,sha256=
|
|
37
|
+
execsql/db/access.py,sha256=xfBzcgP1qJovxSYwrpu0bdxqyJWqMoMP8i4FsaCTYXA,21306
|
|
38
|
+
execsql/db/base.py,sha256=rMkOxfqhlrG1_LnlkIQYwZXnm-wRd2xN4YQ9oY7OOZM,42990
|
|
39
|
+
execsql/db/dsn.py,sha256=CaISffisqO5IjSE-elEpwK9vXLaArp3ItpV8lvRTu-I,6920
|
|
40
|
+
execsql/db/duckdb.py,sha256=2iVlbjQdOSAwhI2LxWEm7FYZxjjVcKiE8rT_3VJdRIo,7761
|
|
40
41
|
execsql/db/factory.py,sha256=cMptU3BL1Nsilo7LKLAI5RR-LiC9RTH-3UC9rHT2JLQ,5519
|
|
41
|
-
execsql/db/firebird.py,sha256=
|
|
42
|
-
execsql/db/mysql.py,sha256=
|
|
43
|
-
execsql/db/oracle.py,sha256
|
|
44
|
-
execsql/db/postgres.py,sha256=
|
|
42
|
+
execsql/db/firebird.py,sha256=CoNnzFtOFAkp8OJByXXXclitCPAAjM23eFJGfy3C7IE,10171
|
|
43
|
+
execsql/db/mysql.py,sha256=ovadEv8InaK2VZjfMRwZNQ7dTQaE2qaWNUra-FjP0xA,21492
|
|
44
|
+
execsql/db/oracle.py,sha256=i5qPahsy_z1AuZT7l54Hzixknkvbzd-SCQgiVcTN94w,13796
|
|
45
|
+
execsql/db/postgres.py,sha256=PZ2vXKh9Nbs6aAc899vaPz1w9ZntKNCqQ2pCl_giiVQ,23587
|
|
45
46
|
execsql/db/sqlite.py,sha256=fEpNPkfJGnqm1Wx_rZK5SEqaWsBqLy85Jxk_5NsnqgM,12109
|
|
46
|
-
execsql/db/sqlserver.py,sha256=
|
|
47
|
+
execsql/db/sqlserver.py,sha256=cdbyHoSUKEwUee2GQTKD5SlLyBraYiOvJ2ro5MJuMFA,9525
|
|
47
48
|
execsql/db/tiers.py,sha256=PH2sUYwlYqcANGVKXprWQKVIlM6fpWU9q74djn8oFwc,2924
|
|
48
49
|
execsql/debug/__init__.py,sha256=j6EGUR0dHzUhWN1mHHtf1-Lhjq3Sb1V-vmnq2Ztgj1M,178
|
|
49
50
|
execsql/debug/repl.py,sha256=jnwrqRac4krc1pES7Ni-j1Dyw3mJIcWl5LQQIX1GkRw,20753
|
|
50
51
|
execsql/exporters/__init__.py,sha256=-Cnji-OgodJV8ftcDcOyTof0kQMy9J5kKVC8GVFpc3o,670
|
|
51
52
|
execsql/exporters/base.py,sha256=_GoO0YqwlTxrjogxHI3CxxRR64sMgIEjRogt0KCqzoY,6402
|
|
52
53
|
execsql/exporters/delimited.py,sha256=N0cP_CNlb_LLCUqbHmTQsOGufWnD_ddGdeFnXPE8Erc,35606
|
|
53
|
-
execsql/exporters/duckdb.py,sha256=
|
|
54
|
+
execsql/exporters/duckdb.py,sha256=1Qo6idHvQIJjGbA5trt_s5to9XtoDpcS_wWGXOrVe6I,3495
|
|
54
55
|
execsql/exporters/feather.py,sha256=tah48aep0cQRikZcmADXUPTzFddgDUT78Ndw_l0Hsj4,4178
|
|
55
56
|
execsql/exporters/html.py,sha256=hwf9UHs7EZ7xiP3p9ilBIsAukXcDu-KO2dcQHVh2z30,10111
|
|
56
57
|
execsql/exporters/json.py,sha256=wWGT6zjvIdWlO5FmXbaEw1xOhy23f1YY6bm5uQD_NS0,4393
|
|
57
58
|
execsql/exporters/latex.py,sha256=bdUN3GwfENUZHgpw6bvjsjfivDgzyf-HRkYTP-eH-pM,5480
|
|
58
59
|
execsql/exporters/markdown.py,sha256=FuMGFxm9uZUOrdEuXT2ZZLCqmVDly7SMrFlrjP6kVEI,4827
|
|
59
|
-
execsql/exporters/ods.py,sha256=
|
|
60
|
+
execsql/exporters/ods.py,sha256=5Qubpuz7CLIrl7KgMp1uXIFPrF_7alMjuTuVdj76eh4,20771
|
|
60
61
|
execsql/exporters/parquet.py,sha256=mbCo2Wlit1lkXmyo5EyLd_ATIHSICS49bouiBT2kdAs,1121
|
|
61
62
|
execsql/exporters/pretty.py,sha256=SiJHBXIjoFsOHegXcdrtxYa6xSIPga1U0DQEy7pK4QY,4145
|
|
62
63
|
execsql/exporters/protocol.py,sha256=BxATgz0xKHbB2FpZBeNg7wZfIiCohhD1awlr3JCec0c,4372
|
|
63
64
|
execsql/exporters/raw.py,sha256=9o3BMt7UYmnjbP8OEzmM2kNKfwwERi2yDcuNfUoEfuQ,2530
|
|
64
65
|
execsql/exporters/sqlite.py,sha256=QjP_W90S-hecNqp2A-Vy58DD8MZitME1sTq4lqIS43w,3401
|
|
65
|
-
execsql/exporters/templates.py,sha256=
|
|
66
|
+
execsql/exporters/templates.py,sha256=N9PRFet0mYuDQFu7PNbq5c6qGu2You2qfHpqnxg17NA,7065
|
|
66
67
|
execsql/exporters/values.py,sha256=UPxN5IprasBZLqM5jfUXQihjdTeBFTxbJslOEtmGOcY,3384
|
|
67
|
-
execsql/exporters/xls.py,sha256=
|
|
68
|
-
execsql/exporters/xlsx.py,sha256=
|
|
68
|
+
execsql/exporters/xls.py,sha256=n4J4J4sJq-5iU3Fa1JTAxTq8VAXEhv2znNRGoi1arSw,11265
|
|
69
|
+
execsql/exporters/xlsx.py,sha256=7sm-3KniYlB2K-n6xQmIoHbAvl2ryJhFWU95SEkR7e4,12702
|
|
69
70
|
execsql/exporters/xml.py,sha256=t1PSr3i8xvTCWzd9jaxxAy5NcRpl6sqjnZALafKCqpM,2575
|
|
70
|
-
execsql/exporters/yaml.py,sha256=
|
|
71
|
+
execsql/exporters/yaml.py,sha256=ex2h91E12wItvh84AarjrDTcZ4SDx9uq0c9wtr-NuQM,3084
|
|
71
72
|
execsql/exporters/zip.py,sha256=0vDkXB19WzLzgCACBVNnGJYxacgBwEehQDL7Inl-rgw,5002
|
|
72
73
|
execsql/gui/__init__.py,sha256=oCb-cyhLZzVpWJ4WU5HbqEDBrV-lm0ytEwxemrOZyqs,2048
|
|
73
74
|
execsql/gui/base.py,sha256=DMTqHLlpZlGCsNKyrLlJPbaxvukC0n1YmR4aHEN3jPY,14983
|
|
@@ -75,29 +76,41 @@ execsql/gui/console.py,sha256=dzdSl4NJNvRd9VvlwRCXHvfnXjQPimyTx7NcibcUZC8,18305
|
|
|
75
76
|
execsql/gui/desktop.py,sha256=y-T317NzSs9kcA4-NZW-Dx2cZ4Bv1mPoCr7hwQCJYoo,59467
|
|
76
77
|
execsql/gui/tui.py,sha256=VoUtjSMopYtbtc8_-qV7YQAFvc-bS7zrZ5J2hl1cPxM,66853
|
|
77
78
|
execsql/importers/__init__.py,sha256=zZwdQxMaValCNqUrVdvaA7XPU3J8NmqVJ4uolNWY2iU,299
|
|
78
|
-
execsql/importers/base.py,sha256=
|
|
79
|
+
execsql/importers/base.py,sha256=N94kJ_a3_UvjOrZv7TCYOL2b4lshYb_HuLTqpht4D4A,5578
|
|
79
80
|
execsql/importers/csv.py,sha256=4zIv-K02fuHKxnbqS5iTvLOeVnfssLYYJrs0Gh3qv7I,5021
|
|
80
81
|
execsql/importers/feather.py,sha256=g2B69d2uv9vmnXcmjFyTVsMP40LYEzFYkhk3gD26mGw,1900
|
|
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=E9FfnAypzggO__QGWSlbfa6AhYE_1IMpIbyrwkEKx8s,8774
|
|
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
|
-
execsql/metacommands/debug.py,sha256=
|
|
90
|
-
execsql/metacommands/dispatch.py,sha256=
|
|
101
|
+
execsql/metacommands/debug.py,sha256=mKRT7uLwnw34Xl46fNDI_zH4MsPpZyihoLlonapbXuU,12981
|
|
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
|
|
94
|
-
execsql/metacommands/io_fileops.py,sha256=
|
|
106
|
+
execsql/metacommands/io_fileops.py,sha256=JkuHBsZFDZvAW3wUJtdWwm4qGkpXObqkQNcZalhJVkE,12766
|
|
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
|
-
execsql/metacommands/upsert.py,sha256=
|
|
113
|
+
execsql/metacommands/upsert.py,sha256=vy8zfvxs9OYsyDiXInNIRT93ovzue4N_KMPBabNH6Ys,20320
|
|
101
114
|
execsql/script/__init__.py,sha256=I7hVO6wm3iOocxRRGEcFHhjdtL1moKbUYLB-wKbjPdk,3267
|
|
102
115
|
execsql/script/ast.py,sha256=WqCpFxhxrT2IIGvbArTp3QS0BZryRZAb7IL4ri3I6xg,20591
|
|
103
116
|
execsql/script/control.py,sha256=WqLy-HLPqHG3vEzYpKMiIJsD7LpORjyQuUWzFzcGz4w,2327
|
|
@@ -110,7 +123,7 @@ execsql/utils/auth.py,sha256=BV7VtLM-ID8jNB42vx7GEz8yb3Z1Qs9xCr4cUMqL864,14539
|
|
|
110
123
|
execsql/utils/color.py,sha256=goQqhnLg8yERpFolQikA9zYSVcuAm0unKTJiWTbQm-U,634
|
|
111
124
|
execsql/utils/crypto.py,sha256=KlT6lPk-v0-qQQfAMfWvT9Q6kRdCD3_5JVaLajNocKM,3051
|
|
112
125
|
execsql/utils/datetime.py,sha256=rqtGrc0t37V00mvirJ8wJKHmDtDSYzTg_UgCyIBzv9E,5583
|
|
113
|
-
execsql/utils/errors.py,sha256=
|
|
126
|
+
execsql/utils/errors.py,sha256=NA-JXP4cyEZ8Y_KNOPLS_ebXTJhQ50gNMBSTTcnsLIc,12350
|
|
114
127
|
execsql/utils/fileio.py,sha256=ADp8Iltf_zfv0PL0VRdO0BDIHkVpKVVh59_5zmkTfkw,47564
|
|
115
128
|
execsql/utils/gui.py,sha256=1iiupP9AsLdR6ST0gcLE143o6y6YGUFlNv_pdVPxfCE,23943
|
|
116
129
|
execsql/utils/mail.py,sha256=4RiKtXa_sqij_YGdYmjQ3PG0u3G9qjs-9caQwBErtBw,7278
|
|
@@ -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.
|
|
122
|
-
execsql2-2.
|
|
123
|
-
execsql2-2.
|
|
124
|
-
execsql2-2.
|
|
125
|
-
execsql2-2.
|
|
126
|
-
execsql2-2.
|
|
127
|
-
execsql2-2.
|
|
128
|
-
execsql2-2.
|
|
129
|
-
execsql2-2.
|
|
130
|
-
execsql2-2.
|
|
131
|
-
execsql2-2.
|
|
132
|
-
execsql2-2.
|
|
133
|
-
execsql2-2.
|
|
134
|
-
execsql2-2.
|
|
135
|
-
execsql2-2.
|
|
136
|
-
execsql2-2.
|
|
137
|
-
execsql2-2.
|
|
138
|
-
execsql2-2.
|
|
139
|
-
execsql2-2.
|
|
140
|
-
execsql2-2.
|
|
134
|
+
execsql2-2.28.0.data/data/execsql2_extras/README.md,sha256=7SG9FbBpdqkgQTTt1aBTbCgymBZyV0rLrQMQrendzxs,5032
|
|
135
|
+
execsql2-2.28.0.data/data/execsql2_extras/config_settings.sqlite,sha256=aY5cxR7Q7J6zJ4bC9lu5mHUrhy211Cq3MNKPQVCt02E,20480
|
|
136
|
+
execsql2-2.28.0.data/data/execsql2_extras/example_config_prompt.sql,sha256=2e8KzzVWhho8KxYVHETSVmZdhW7wodioDsqBLSL6m4s,7487
|
|
137
|
+
execsql2-2.28.0.data/data/execsql2_extras/make_config_db.sql,sha256=WwyC6dK-Eh5CAVppiBCDHqiI1_wEI9U95Ytpr4lsZkg,8726
|
|
138
|
+
execsql2-2.28.0.data/data/execsql2_extras/md_compare.sql,sha256=qYYVAjSeHZzjszxV3Bv6bg8Ckbq2kMHl87_gh4sywMU,24140
|
|
139
|
+
execsql2-2.28.0.data/data/execsql2_extras/md_glossary.sql,sha256=hkZ2Onn57LAKKsuXxzhR8tPtcWXkmWEQkwPE58-Tm2k,10796
|
|
140
|
+
execsql2-2.28.0.data/data/execsql2_extras/md_upsert.sql,sha256=_CAK4BzEboRXTNy03SJR-oOjcEdSNMuRBPL6noWUptY,112560
|
|
141
|
+
execsql2-2.28.0.data/data/execsql2_extras/pg_compare.sql,sha256=1zJd4hVUKHR0tncc2qTBC9B4qVV4Us2ITkJpsjN3tMw,24352
|
|
142
|
+
execsql2-2.28.0.data/data/execsql2_extras/pg_glossary.sql,sha256=IKuwna-_8b20ljSkXZruuiQigrCpo7ueQdUqd1MXiuI,9908
|
|
143
|
+
execsql2-2.28.0.data/data/execsql2_extras/pg_upsert.sql,sha256=HpPJtTHvpEjQy03j-3iPxDEOHMRkudOg7O4D4YR38UI,108315
|
|
144
|
+
execsql2-2.28.0.data/data/execsql2_extras/script_template.sql,sha256=2J35ddZPguJ-vwTsz83wErv0jiWUyJcdW_JM0mNKDXA,11155
|
|
145
|
+
execsql2-2.28.0.data/data/execsql2_extras/ss_compare.sql,sha256=j1qVNUPXQsEU7-DoVgDJCGcE0EuIl7whLBT3fgeiMAo,24833
|
|
146
|
+
execsql2-2.28.0.data/data/execsql2_extras/ss_glossary.sql,sha256=2gLxv34xzKt0vy7hSzJH7a9JiMC3ETrv9MofxQwAibU,13065
|
|
147
|
+
execsql2-2.28.0.data/data/execsql2_extras/ss_upsert.sql,sha256=G_8rQ0VzuKIZHWs24O_WrfzpC5S27R1JsL-bFBR3SUQ,117730
|
|
148
|
+
execsql2-2.28.0.dist-info/METADATA,sha256=8mBy6p3UOLvFCmFwhoNh77QQIR5qYSotGYH0fUF0XgQ,27854
|
|
149
|
+
execsql2-2.28.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
150
|
+
execsql2-2.28.0.dist-info/entry_points.txt,sha256=jOf53-4IVGjEZeNYUOF1GGaiPNfVZcNKxP3vDFKEyMA,58
|
|
151
|
+
execsql2-2.28.0.dist-info/licenses/LICENSE.txt,sha256=LBdhuxejF8_bLCHZ2kWfmDXpDGUu914Gbd6_3JjCRe0,676
|
|
152
|
+
execsql2-2.28.0.dist-info/licenses/NOTICE,sha256=McYzgxYav3U1OaVsY4Su1sfBrfmplpRdA9b6-gCDQCg,342
|
|
153
|
+
execsql2-2.28.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{execsql2-2.26.0.data → execsql2-2.28.0.data}/data/execsql2_extras/example_config_prompt.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|