execsql2 2.19.2__py3-none-any.whl → 2.21.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/run.py +28 -11
- execsql/db/access.py +5 -1
- execsql/db/base.py +8 -2
- execsql/db/dsn.py +3 -1
- execsql/db/factory.py +1 -1
- execsql/db/firebird.py +10 -4
- execsql/db/mysql.py +6 -0
- execsql/db/postgres.py +20 -18
- execsql/db/sqlserver.py +4 -1
- execsql/format.py +172 -16
- execsql/utils/mail.py +7 -4
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/README.md +1 -1
- {execsql2-2.19.2.dist-info → execsql2-2.21.0.dist-info}/METADATA +56 -58
- {execsql2-2.19.2.dist-info → execsql2-2.21.0.dist-info}/RECORD +31 -32
- execsql2-2.19.2.data/data/execsql2_extras/execsql.conf +0 -359
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/config_settings.sqlite +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/example_config_prompt.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/make_config_db.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/md_compare.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/md_glossary.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/md_upsert.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/pg_compare.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/pg_glossary.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/pg_upsert.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/script_template.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/ss_compare.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/ss_glossary.sql +0 -0
- {execsql2-2.19.2.data → execsql2-2.21.0.data}/data/execsql2_extras/ss_upsert.sql +0 -0
- {execsql2-2.19.2.dist-info → execsql2-2.21.0.dist-info}/WHEEL +0 -0
- {execsql2-2.19.2.dist-info → execsql2-2.21.0.dist-info}/entry_points.txt +0 -0
- {execsql2-2.19.2.dist-info → execsql2-2.21.0.dist-info}/licenses/LICENSE.txt +0 -0
- {execsql2-2.19.2.dist-info → execsql2-2.21.0.dist-info}/licenses/NOTICE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: execsql2
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.21.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
|
|
@@ -44,90 +44,89 @@ Requires-Dist: rich>=13.0
|
|
|
44
44
|
Requires-Dist: textual>=1.0
|
|
45
45
|
Requires-Dist: typer>=0.12
|
|
46
46
|
Provides-Extra: all
|
|
47
|
-
Requires-Dist: defusedxml; extra == 'all'
|
|
48
|
-
Requires-Dist: duckdb; extra == 'all'
|
|
49
|
-
Requires-Dist: firebird-driver; extra == 'all'
|
|
50
|
-
Requires-Dist: jinja2; extra == 'all'
|
|
51
|
-
Requires-Dist: keyring; extra == 'all'
|
|
52
|
-
Requires-Dist: odfpy; extra == 'all'
|
|
53
|
-
Requires-Dist: openpyxl; extra == 'all'
|
|
54
|
-
Requires-Dist: oracledb; extra == 'all'
|
|
55
|
-
Requires-Dist: pg-upsert>=1.
|
|
56
|
-
Requires-Dist: polars; extra == 'all'
|
|
57
|
-
Requires-Dist:
|
|
58
|
-
Requires-Dist: pymysql; extra == 'all'
|
|
59
|
-
Requires-Dist: pyodbc; extra == 'all'
|
|
60
|
-
Requires-Dist: pyyaml; extra == 'all'
|
|
47
|
+
Requires-Dist: defusedxml>=0.7; extra == 'all'
|
|
48
|
+
Requires-Dist: duckdb>=1.0; extra == 'all'
|
|
49
|
+
Requires-Dist: firebird-driver>=1.10; extra == 'all'
|
|
50
|
+
Requires-Dist: jinja2>=3.1; extra == 'all'
|
|
51
|
+
Requires-Dist: keyring>=25.0; extra == 'all'
|
|
52
|
+
Requires-Dist: odfpy>=1.4; extra == 'all'
|
|
53
|
+
Requires-Dist: openpyxl>=3.1; extra == 'all'
|
|
54
|
+
Requires-Dist: oracledb>=3.0; extra == 'all'
|
|
55
|
+
Requires-Dist: pg-upsert>=1.23.0; extra == 'all'
|
|
56
|
+
Requires-Dist: polars>=1.0; extra == 'all'
|
|
57
|
+
Requires-Dist: psycopg[binary]<4,>=3.1; extra == 'all'
|
|
58
|
+
Requires-Dist: pymysql>=1.1; extra == 'all'
|
|
59
|
+
Requires-Dist: pyodbc>=5.0; extra == 'all'
|
|
60
|
+
Requires-Dist: pyyaml>=6.0; extra == 'all'
|
|
61
61
|
Requires-Dist: sqlglot>=25.0; extra == 'all'
|
|
62
|
-
Requires-Dist: tables; extra == 'all'
|
|
62
|
+
Requires-Dist: tables>=3.10; extra == 'all'
|
|
63
63
|
Requires-Dist: tkintermapview>=1.29; extra == 'all'
|
|
64
|
-
Requires-Dist: xlrd; extra == 'all'
|
|
64
|
+
Requires-Dist: xlrd>=2.0; extra == 'all'
|
|
65
65
|
Provides-Extra: all-db
|
|
66
|
-
Requires-Dist: duckdb; extra == 'all-db'
|
|
67
|
-
Requires-Dist: firebird-driver; extra == 'all-db'
|
|
68
|
-
Requires-Dist: oracledb; extra == 'all-db'
|
|
69
|
-
Requires-Dist:
|
|
70
|
-
Requires-Dist: pymysql; extra == 'all-db'
|
|
71
|
-
Requires-Dist: pyodbc; extra == 'all-db'
|
|
66
|
+
Requires-Dist: duckdb>=1.0; extra == 'all-db'
|
|
67
|
+
Requires-Dist: firebird-driver>=1.10; extra == 'all-db'
|
|
68
|
+
Requires-Dist: oracledb>=3.0; extra == 'all-db'
|
|
69
|
+
Requires-Dist: psycopg[binary]<4,>=3.1; extra == 'all-db'
|
|
70
|
+
Requires-Dist: pymysql>=1.1; extra == 'all-db'
|
|
71
|
+
Requires-Dist: pyodbc>=5.0; extra == 'all-db'
|
|
72
72
|
Provides-Extra: auth
|
|
73
|
-
Requires-Dist: keyring; extra == 'auth'
|
|
73
|
+
Requires-Dist: keyring>=25.0; extra == 'auth'
|
|
74
74
|
Provides-Extra: auth-encrypted
|
|
75
|
-
Requires-Dist: keyring; extra == 'auth-encrypted'
|
|
76
|
-
Requires-Dist: keyrings-alt; extra == 'auth-encrypted'
|
|
77
|
-
Requires-Dist: pycryptodome; extra == 'auth-encrypted'
|
|
75
|
+
Requires-Dist: keyring>=25.0; extra == 'auth-encrypted'
|
|
76
|
+
Requires-Dist: keyrings-alt>=5.0; extra == 'auth-encrypted'
|
|
77
|
+
Requires-Dist: pycryptodome>=3.20; extra == 'auth-encrypted'
|
|
78
78
|
Provides-Extra: auth-plaintext
|
|
79
|
-
Requires-Dist: keyring; extra == 'auth-plaintext'
|
|
80
|
-
Requires-Dist: keyrings-alt; extra == 'auth-plaintext'
|
|
79
|
+
Requires-Dist: keyring>=25.0; extra == 'auth-plaintext'
|
|
80
|
+
Requires-Dist: keyrings-alt>=5.0; extra == 'auth-plaintext'
|
|
81
81
|
Provides-Extra: dev
|
|
82
82
|
Requires-Dist: build>=1.2.2.post1; extra == 'dev'
|
|
83
83
|
Requires-Dist: bump-my-version>=1.2.7; extra == 'dev'
|
|
84
|
-
Requires-Dist: defusedxml; extra == 'dev'
|
|
85
|
-
Requires-Dist: jinja2; extra == 'dev'
|
|
86
|
-
Requires-Dist: markdown-include>=0.8; extra == 'dev'
|
|
84
|
+
Requires-Dist: defusedxml>=0.7; extra == 'dev'
|
|
85
|
+
Requires-Dist: jinja2>=3.1; extra == 'dev'
|
|
87
86
|
Requires-Dist: mkdocstrings-python>=2.0.3; extra == 'dev'
|
|
88
87
|
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
89
|
-
Requires-Dist: odfpy; extra == 'dev'
|
|
90
|
-
Requires-Dist: openpyxl; extra == 'dev'
|
|
91
|
-
Requires-Dist: polars; extra == 'dev'
|
|
88
|
+
Requires-Dist: odfpy>=1.4; extra == 'dev'
|
|
89
|
+
Requires-Dist: openpyxl>=3.1; extra == 'dev'
|
|
90
|
+
Requires-Dist: polars>=1.0; extra == 'dev'
|
|
92
91
|
Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
|
|
93
92
|
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
|
|
94
|
-
Requires-Dist: pyyaml; extra == 'dev'
|
|
93
|
+
Requires-Dist: pyyaml>=6.0; extra == 'dev'
|
|
95
94
|
Requires-Dist: ruff>=0.4; extra == 'dev'
|
|
96
95
|
Requires-Dist: sqlglot>=25.0; extra == 'dev'
|
|
97
|
-
Requires-Dist: tables; extra == 'dev'
|
|
96
|
+
Requires-Dist: tables>=3.10; extra == 'dev'
|
|
98
97
|
Requires-Dist: tox-uv>=1.13.1; extra == 'dev'
|
|
99
98
|
Requires-Dist: twine>=6.1.0; extra == 'dev'
|
|
100
|
-
Requires-Dist: xlrd; extra == 'dev'
|
|
101
|
-
Requires-Dist: zensical
|
|
99
|
+
Requires-Dist: xlrd>=2.0; extra == 'dev'
|
|
100
|
+
Requires-Dist: zensical==0.0.28; extra == 'dev'
|
|
102
101
|
Provides-Extra: duckdb
|
|
103
|
-
Requires-Dist: duckdb; extra == 'duckdb'
|
|
102
|
+
Requires-Dist: duckdb>=1.0; extra == 'duckdb'
|
|
104
103
|
Provides-Extra: firebird
|
|
105
|
-
Requires-Dist: firebird-driver; extra == 'firebird'
|
|
104
|
+
Requires-Dist: firebird-driver>=1.10; extra == 'firebird'
|
|
106
105
|
Provides-Extra: formats
|
|
107
|
-
Requires-Dist: defusedxml; extra == 'formats'
|
|
108
|
-
Requires-Dist: jinja2; extra == 'formats'
|
|
109
|
-
Requires-Dist: odfpy; extra == 'formats'
|
|
110
|
-
Requires-Dist: openpyxl; extra == 'formats'
|
|
111
|
-
Requires-Dist: polars; extra == 'formats'
|
|
112
|
-
Requires-Dist: pyyaml; extra == 'formats'
|
|
113
|
-
Requires-Dist: tables; extra == 'formats'
|
|
114
|
-
Requires-Dist: xlrd; extra == 'formats'
|
|
106
|
+
Requires-Dist: defusedxml>=0.7; extra == 'formats'
|
|
107
|
+
Requires-Dist: jinja2>=3.1; extra == 'formats'
|
|
108
|
+
Requires-Dist: odfpy>=1.4; extra == 'formats'
|
|
109
|
+
Requires-Dist: openpyxl>=3.1; extra == 'formats'
|
|
110
|
+
Requires-Dist: polars>=1.0; extra == 'formats'
|
|
111
|
+
Requires-Dist: pyyaml>=6.0; extra == 'formats'
|
|
112
|
+
Requires-Dist: tables>=3.10; extra == 'formats'
|
|
113
|
+
Requires-Dist: xlrd>=2.0; extra == 'formats'
|
|
115
114
|
Provides-Extra: formatter
|
|
116
115
|
Requires-Dist: sqlglot>=25.0; extra == 'formatter'
|
|
117
116
|
Provides-Extra: map
|
|
118
117
|
Requires-Dist: tkintermapview>=1.29; extra == 'map'
|
|
119
118
|
Provides-Extra: mssql
|
|
120
|
-
Requires-Dist: pyodbc; extra == 'mssql'
|
|
119
|
+
Requires-Dist: pyodbc>=5.0; extra == 'mssql'
|
|
121
120
|
Provides-Extra: mysql
|
|
122
|
-
Requires-Dist: pymysql; extra == 'mysql'
|
|
121
|
+
Requires-Dist: pymysql>=1.1; extra == 'mysql'
|
|
123
122
|
Provides-Extra: odbc
|
|
124
|
-
Requires-Dist: pyodbc; extra == 'odbc'
|
|
123
|
+
Requires-Dist: pyodbc>=5.0; extra == 'odbc'
|
|
125
124
|
Provides-Extra: oracle
|
|
126
|
-
Requires-Dist: oracledb; extra == 'oracle'
|
|
125
|
+
Requires-Dist: oracledb>=3.0; extra == 'oracle'
|
|
127
126
|
Provides-Extra: postgres
|
|
128
|
-
Requires-Dist:
|
|
127
|
+
Requires-Dist: psycopg[binary]<4,>=3.1; extra == 'postgres'
|
|
129
128
|
Provides-Extra: upsert
|
|
130
|
-
Requires-Dist: pg-upsert>=1.
|
|
129
|
+
Requires-Dist: pg-upsert>=1.23.0; extra == 'upsert'
|
|
131
130
|
Description-Content-Type: text/markdown
|
|
132
131
|
|
|
133
132
|
> [!NOTE]
|
|
@@ -404,13 +403,12 @@ execsql-format --no-sql --in-place scripts/
|
|
|
404
403
|
```yaml
|
|
405
404
|
repos:
|
|
406
405
|
- repo: https://github.com/geocoug/execsql
|
|
407
|
-
rev: v2.
|
|
406
|
+
rev: v2.21.0
|
|
408
407
|
hooks:
|
|
409
408
|
- id: execsql-format
|
|
410
|
-
args: [--in-place]
|
|
411
409
|
```
|
|
412
410
|
|
|
413
|
-
See the [formatter documentation](https://execsql2.readthedocs.io/en/latest/guides/formatter/) for
|
|
411
|
+
The hook rewrites `*.sql` files in place by default. See the [formatter documentation](https://execsql2.readthedocs.io/en/latest/guides/formatter/) for `--check`, `--indent`, and other options.
|
|
414
412
|
|
|
415
413
|
# VS Code Syntax Highlighting
|
|
416
414
|
|
|
@@ -3,7 +3,7 @@ execsql/__main__.py,sha256=HdbK-SAhyUmfB6xINY5AzxdMSxGzWSGEG_2dv42Jn64,315
|
|
|
3
3
|
execsql/api.py,sha256=ZFTo_XZPhG21w2vxaeS1lS6o5XmF1FUJRIaypgTOjA8,20919
|
|
4
4
|
execsql/config.py,sha256=OOrCcn9m3CNuXkxVOLp7uMhQikzUS2wh_QVhvIzRqIM,33296
|
|
5
5
|
execsql/exceptions.py,sha256=EkM5cw2s0D9QCOgS4BU29FEyOnEtCxJ0esPT6l1hT9s,9205
|
|
6
|
-
execsql/format.py,sha256=
|
|
6
|
+
execsql/format.py,sha256=dC2cHGUldOTq1YRENm7vtIIv4vtUswRhxuqeMp99d70,33648
|
|
7
7
|
execsql/models.py,sha256=kCTUQg9-vReM6WNFfB_ZrEppuOW5u1uMBQThSkfPC0o,13264
|
|
8
8
|
execsql/parser.py,sha256=P3ea8k7T_XLMrbhpFNZXwytdShrY302MKnhosqza1lo,15493
|
|
9
9
|
execsql/plugins.py,sha256=2voLwT6eFap6BCBoZYndNNC_bMEJO1f_aP6xQTVXwYI,12815
|
|
@@ -14,21 +14,21 @@ execsql/cli/__init__.py,sha256=aJknKKIGxYCXpny0cyHXfqJsJ95dBtlEXXhPASFG8GQ,23114
|
|
|
14
14
|
execsql/cli/dsn.py,sha256=svaZtrUXFRL2W5G6FRRiKtR6kehOp7urrVhIx_642Z8,2820
|
|
15
15
|
execsql/cli/help.py,sha256=ThwdZuMIfLPxLAPpGWwXFY_UfyWvYOCjdlBNK20Vzd8,5718
|
|
16
16
|
execsql/cli/lint.py,sha256=YqKzFNUhyb_Th69hYgKk1ZZVjCsZfJMIiUGqp06JwNs,17236
|
|
17
|
-
execsql/cli/run.py,sha256=
|
|
17
|
+
execsql/cli/run.py,sha256=0gmn7f7RjSYatOUZ34QIzK8gP_vgQFZE6U4P6EKU2H4,38188
|
|
18
18
|
execsql/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
19
|
execsql/data/execsql.conf.template,sha256=Sq1Huwb_Uf_lI7zW7m3h11fqU6zjGpGnCU4OVJ_tCe0,10696
|
|
20
20
|
execsql/db/__init__.py,sha256=jTbuafuKOqYtXFR1wvCOoKK5Lr3l1uErfaIbIr6UywI,1063
|
|
21
|
-
execsql/db/access.py,sha256=
|
|
22
|
-
execsql/db/base.py,sha256=
|
|
23
|
-
execsql/db/dsn.py,sha256=
|
|
21
|
+
execsql/db/access.py,sha256=sRJOJJo1psSO5RV6QPsFY1YJE5wc5aNOYCFDtxIn_Wo,19413
|
|
22
|
+
execsql/db/base.py,sha256=0Cy_M3GHdkQDJMbMeWpNyUIPux9m1cVDy21MGMjhJCI,35002
|
|
23
|
+
execsql/db/dsn.py,sha256=CZd5NhUSVvK3irv2maeWsSqBsZjhFsTxIuT29Z0rP2A,6240
|
|
24
24
|
execsql/db/duckdb.py,sha256=79lRzKRhw1Pjfqcrba27S4Oq8a8AbDO_d0XkaNKKPQo,3197
|
|
25
|
-
execsql/db/factory.py,sha256=
|
|
26
|
-
execsql/db/firebird.py,sha256=
|
|
27
|
-
execsql/db/mysql.py,sha256=
|
|
25
|
+
execsql/db/factory.py,sha256=C_cyi3GjNx0opuwc6maFFeCSkjfOfoUjuf68YT4VAHE,5377
|
|
26
|
+
execsql/db/firebird.py,sha256=cV5wUzQHoz7yugHdNxAn8IW7fL3v1riIsGLykCZhZwA,9480
|
|
27
|
+
execsql/db/mysql.py,sha256=Z0vI_nQ6vhG3sYa2fv5NOO3JmAsH6_jVjM8FuujQpqI,17961
|
|
28
28
|
execsql/db/oracle.py,sha256=1_odb5xmlm8vjdJdQXz7SHm9dzIbZ5sxP_IxTklH3kA,12018
|
|
29
|
-
execsql/db/postgres.py,sha256=
|
|
29
|
+
execsql/db/postgres.py,sha256=CpMR3TamWAgI2DYkLQ5ZDD24hrt78znYi8rFnDbaDEE,21434
|
|
30
30
|
execsql/db/sqlite.py,sha256=xooU6bvD9Y3frRpnbyesE63r6E1fwEHkkcN1YD_UIUE,11519
|
|
31
|
-
execsql/db/sqlserver.py,sha256=
|
|
31
|
+
execsql/db/sqlserver.py,sha256=j2ViLoBWzizgaL0u6V4iHfjinrlJ4rpBD3XZiKKdwSU,8968
|
|
32
32
|
execsql/debug/__init__.py,sha256=j6EGUR0dHzUhWN1mHHtf1-Lhjq3Sb1V-vmnq2Ztgj1M,178
|
|
33
33
|
execsql/debug/repl.py,sha256=JObeoEXh15qyk4Q3WQCCqMcBtojlIcu_Xg-ZRDZJi5Q,25491
|
|
34
34
|
execsql/exporters/__init__.py,sha256=-Cnji-OgodJV8ftcDcOyTof0kQMy9J5kKVC8GVFpc3o,670
|
|
@@ -95,29 +95,28 @@ execsql/utils/datetime.py,sha256=rMCXAbvj6bxKCYzC97vrludO6PU5DYQ39buZ0smDC5A,357
|
|
|
95
95
|
execsql/utils/errors.py,sha256=C-9hlpJ7GM5gpDBdTsT4xFhK0OHNjonHgbq7fMl-Vvc,8577
|
|
96
96
|
execsql/utils/fileio.py,sha256=38Z0WBvfaMa624aw3jo9ZOSlUCsacIeJWOhQKYe9YlU,31012
|
|
97
97
|
execsql/utils/gui.py,sha256=kpJkvi8zblXFdO4PgsF8yE_gkOJrsDwWoQWmaDpjJEQ,23402
|
|
98
|
-
execsql/utils/mail.py,sha256=
|
|
98
|
+
execsql/utils/mail.py,sha256=ojdROW6Ti7paVpVMIxRXh7opOdE61fE2duS8xoA6d2Q,5758
|
|
99
99
|
execsql/utils/numeric.py,sha256=xh02ANSRk3nUpQ-rtm66ILoMqoi7HtzCoRMIOT9U8QI,1570
|
|
100
100
|
execsql/utils/regex.py,sha256=diEzTZqU_HHwVMadPAvN1Vgzhl7I03eVaEFGCXyGGL8,3770
|
|
101
101
|
execsql/utils/strings.py,sha256=UQNjpRCEFa1UO6feU-M-9e24wWAvizs_iu_4fFusLxo,8516
|
|
102
102
|
execsql/utils/timer.py,sha256=eDYf5VzCNFk7oo90InJucUm3XcBdhYMogjZMqeg9xzc,1899
|
|
103
|
-
execsql2-2.
|
|
104
|
-
execsql2-2.
|
|
105
|
-
execsql2-2.
|
|
106
|
-
execsql2-2.
|
|
107
|
-
execsql2-2.
|
|
108
|
-
execsql2-2.
|
|
109
|
-
execsql2-2.
|
|
110
|
-
execsql2-2.
|
|
111
|
-
execsql2-2.
|
|
112
|
-
execsql2-2.
|
|
113
|
-
execsql2-2.
|
|
114
|
-
execsql2-2.
|
|
115
|
-
execsql2-2.
|
|
116
|
-
execsql2-2.
|
|
117
|
-
execsql2-2.
|
|
118
|
-
execsql2-2.
|
|
119
|
-
execsql2-2.
|
|
120
|
-
execsql2-2.
|
|
121
|
-
execsql2-2.
|
|
122
|
-
execsql2-2.
|
|
123
|
-
execsql2-2.19.2.dist-info/RECORD,,
|
|
103
|
+
execsql2-2.21.0.data/data/execsql2_extras/README.md,sha256=vX4NTL095dUoA_hesyRMGYBorEZ_Y_tJ9qrd-MVV09I,5032
|
|
104
|
+
execsql2-2.21.0.data/data/execsql2_extras/config_settings.sqlite,sha256=aY5cxR7Q7J6zJ4bC9lu5mHUrhy211Cq3MNKPQVCt02E,20480
|
|
105
|
+
execsql2-2.21.0.data/data/execsql2_extras/example_config_prompt.sql,sha256=2e8KzzVWhho8KxYVHETSVmZdhW7wodioDsqBLSL6m4s,7487
|
|
106
|
+
execsql2-2.21.0.data/data/execsql2_extras/make_config_db.sql,sha256=WwyC6dK-Eh5CAVppiBCDHqiI1_wEI9U95Ytpr4lsZkg,8726
|
|
107
|
+
execsql2-2.21.0.data/data/execsql2_extras/md_compare.sql,sha256=qYYVAjSeHZzjszxV3Bv6bg8Ckbq2kMHl87_gh4sywMU,24140
|
|
108
|
+
execsql2-2.21.0.data/data/execsql2_extras/md_glossary.sql,sha256=hkZ2Onn57LAKKsuXxzhR8tPtcWXkmWEQkwPE58-Tm2k,10796
|
|
109
|
+
execsql2-2.21.0.data/data/execsql2_extras/md_upsert.sql,sha256=_CAK4BzEboRXTNy03SJR-oOjcEdSNMuRBPL6noWUptY,112560
|
|
110
|
+
execsql2-2.21.0.data/data/execsql2_extras/pg_compare.sql,sha256=1zJd4hVUKHR0tncc2qTBC9B4qVV4Us2ITkJpsjN3tMw,24352
|
|
111
|
+
execsql2-2.21.0.data/data/execsql2_extras/pg_glossary.sql,sha256=IKuwna-_8b20ljSkXZruuiQigrCpo7ueQdUqd1MXiuI,9908
|
|
112
|
+
execsql2-2.21.0.data/data/execsql2_extras/pg_upsert.sql,sha256=HpPJtTHvpEjQy03j-3iPxDEOHMRkudOg7O4D4YR38UI,108315
|
|
113
|
+
execsql2-2.21.0.data/data/execsql2_extras/script_template.sql,sha256=2J35ddZPguJ-vwTsz83wErv0jiWUyJcdW_JM0mNKDXA,11155
|
|
114
|
+
execsql2-2.21.0.data/data/execsql2_extras/ss_compare.sql,sha256=j1qVNUPXQsEU7-DoVgDJCGcE0EuIl7whLBT3fgeiMAo,24833
|
|
115
|
+
execsql2-2.21.0.data/data/execsql2_extras/ss_glossary.sql,sha256=2gLxv34xzKt0vy7hSzJH7a9JiMC3ETrv9MofxQwAibU,13065
|
|
116
|
+
execsql2-2.21.0.data/data/execsql2_extras/ss_upsert.sql,sha256=G_8rQ0VzuKIZHWs24O_WrfzpC5S27R1JsL-bFBR3SUQ,117730
|
|
117
|
+
execsql2-2.21.0.dist-info/METADATA,sha256=wEuDG-Eh-dlJ6kP3cGKUJfbaLQ0lJ0RnGKVfoP7tHpY,22612
|
|
118
|
+
execsql2-2.21.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
|
|
119
|
+
execsql2-2.21.0.dist-info/entry_points.txt,sha256=sUOxkM-dN1eBGGpSpDLsAaE0yNXYQKWZAfxPOlMkQyk,90
|
|
120
|
+
execsql2-2.21.0.dist-info/licenses/LICENSE.txt,sha256=LBdhuxejF8_bLCHZ2kWfmDXpDGUu914Gbd6_3JjCRe0,676
|
|
121
|
+
execsql2-2.21.0.dist-info/licenses/NOTICE,sha256=McYzgxYav3U1OaVsY4Su1sfBrfmplpRdA9b6-gCDQCg,342
|
|
122
|
+
execsql2-2.21.0.dist-info/RECORD,,
|
|
@@ -1,359 +0,0 @@
|
|
|
1
|
-
# execsql.conf — Configuration file for execsql
|
|
2
|
-
#
|
|
3
|
-
# Documentation: https://execsql2.readthedocs.io/en/latest/reference/configuration/
|
|
4
|
-
#
|
|
5
|
-
# This file uses INI format. Section names are case-sensitive (lowercase).
|
|
6
|
-
# Property names are not case-sensitive. Lines starting with # are comments.
|
|
7
|
-
#
|
|
8
|
-
# execsql searches for this file in the following locations (in order):
|
|
9
|
-
# 1. System-wide: /etc/execsql.conf (Linux/macOS) or %APPDATA%\execsql.conf (Windows)
|
|
10
|
-
# 2. User: ~/.config/execsql.conf
|
|
11
|
-
# 3. Script directory: same directory as the SQL script
|
|
12
|
-
# 4. Working directory: current directory
|
|
13
|
-
#
|
|
14
|
-
# Later files override earlier ones. CLI arguments override everything.
|
|
15
|
-
# Generate this template with: execsql --init-config > execsql.conf
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
[connect]
|
|
19
|
-
# Connection information for the initial database connection.
|
|
20
|
-
|
|
21
|
-
# Database type.
|
|
22
|
-
# p: PostgreSQL l: SQLite m: MySQL/MariaDB k: DuckDB
|
|
23
|
-
# f: Firebird s: SQL Server a: MS Access o: Oracle d: DSN
|
|
24
|
-
#db_type=l
|
|
25
|
-
|
|
26
|
-
# Server name for client-server databases.
|
|
27
|
-
#server=
|
|
28
|
-
|
|
29
|
-
# Database name for client-server databases.
|
|
30
|
-
#db=
|
|
31
|
-
|
|
32
|
-
# Database file path for file-based databases (SQLite, DuckDB, Access).
|
|
33
|
-
#db_file=
|
|
34
|
-
|
|
35
|
-
# Port number for server-based databases. Only needed if not the default.
|
|
36
|
-
#port=
|
|
37
|
-
|
|
38
|
-
# User name for client-server databases.
|
|
39
|
-
#username=
|
|
40
|
-
|
|
41
|
-
# User name for password-protected MS Access databases if not "Admin".
|
|
42
|
-
#access_username=
|
|
43
|
-
|
|
44
|
-
# Whether to prompt for a password.
|
|
45
|
-
# Values: Yes or No. Default: Yes.
|
|
46
|
-
#password_prompt=Yes
|
|
47
|
-
|
|
48
|
-
# Whether to use the OS credential store (keyring) for password storage.
|
|
49
|
-
# Requires: pip install execsql2[auth]
|
|
50
|
-
# Values: Yes or No. Default: Yes.
|
|
51
|
-
#use_keyring=Yes
|
|
52
|
-
|
|
53
|
-
# Whether to create a new database if it does not exist (SQLite, PostgreSQL, DuckDB).
|
|
54
|
-
# Values: Yes or No. Default: No.
|
|
55
|
-
#new_db=No
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
[encoding]
|
|
59
|
-
# Character encoding for text input and output.
|
|
60
|
-
|
|
61
|
-
#database=
|
|
62
|
-
#script=utf8
|
|
63
|
-
#import=utf8
|
|
64
|
-
#output=utf8
|
|
65
|
-
|
|
66
|
-
# How to handle incompatible encodings.
|
|
67
|
-
# Values: ignore, replace, xmlcharrefreplace, or backslashreplace.
|
|
68
|
-
#error_response=
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
[input]
|
|
72
|
-
# Settings for handling imported data.
|
|
73
|
-
|
|
74
|
-
# Whether to convert numeric values to double precision when using MS Access.
|
|
75
|
-
# Values: Yes or No. Default: No.
|
|
76
|
-
#access_use_numeric=No
|
|
77
|
-
|
|
78
|
-
# Whether to treat integer values of 0 and 1 as Booleans.
|
|
79
|
-
# Values: Yes or No. Default: Yes.
|
|
80
|
-
#boolean_int=Yes
|
|
81
|
-
|
|
82
|
-
# Whether to recognize only full words as Boolean, not "Y", "N", "T", and "F".
|
|
83
|
-
# Values: Yes or No. Default: No.
|
|
84
|
-
#boolean_words=No
|
|
85
|
-
|
|
86
|
-
# Whether to replace non-alphanumeric characters in column names with underscores.
|
|
87
|
-
# Values: Yes or No. Default: No.
|
|
88
|
-
#clean_column_headers=No
|
|
89
|
-
|
|
90
|
-
# Whether to create column headers when missing from an input file.
|
|
91
|
-
# Headers will be "Col1", "Col2", etc.
|
|
92
|
-
# Values: Yes or No. Default: No.
|
|
93
|
-
#create_column_headers=No
|
|
94
|
-
|
|
95
|
-
# Whether to deduplicate column names by appending "_N" (column number).
|
|
96
|
-
# Values: Yes or No. Default: No.
|
|
97
|
-
#dedup_column_headers=No
|
|
98
|
-
|
|
99
|
-
# Whether to completely delete columns with missing headers.
|
|
100
|
-
# Values: Yes or No. Default: No.
|
|
101
|
-
#delete_empty_columns=No
|
|
102
|
-
|
|
103
|
-
# Whether to import completely empty rows.
|
|
104
|
-
# Values: Yes or No. Default: Yes.
|
|
105
|
-
#empty_rows=Yes
|
|
106
|
-
|
|
107
|
-
# Whether empty strings in input data are preserved or replaced by NULL.
|
|
108
|
-
# Values: Yes or No. Default: Yes.
|
|
109
|
-
#empty_strings=Yes
|
|
110
|
-
|
|
111
|
-
# Whether to fold column headers to lowercase, uppercase, or leave unchanged.
|
|
112
|
-
# Values: No, Lower, or Upper. Default: No.
|
|
113
|
-
#fold_column_headers=No
|
|
114
|
-
|
|
115
|
-
# The size of the import buffer, in KB, for the Postgres fast file reading feature.
|
|
116
|
-
#import_buffer=
|
|
117
|
-
|
|
118
|
-
# Whether to ignore extra columns in imported data that are not in the target table.
|
|
119
|
-
# Values: Yes or No. Default: No.
|
|
120
|
-
#import_only_common_columns=No
|
|
121
|
-
|
|
122
|
-
# Interval (in rows) at which to report import progress. 0 disables.
|
|
123
|
-
# Value: A non-negative integer. Default: 0.
|
|
124
|
-
#import_progress_interval=0
|
|
125
|
-
|
|
126
|
-
# The number of rows to buffer when importing data.
|
|
127
|
-
# Value: A positive non-zero integer. Default: 1000.
|
|
128
|
-
#import_row_buffer=1000
|
|
129
|
-
|
|
130
|
-
# The maximum value that will be assigned an integer data type when creating tables.
|
|
131
|
-
#max_int=2147483647
|
|
132
|
-
|
|
133
|
-
# Whether IMPORT treats all columns as text instead of inferring data types.
|
|
134
|
-
# Values: Yes or No. Default: No.
|
|
135
|
-
#only_strings=No
|
|
136
|
-
|
|
137
|
-
# Whether newlines embedded in imported text should be replaced with a space.
|
|
138
|
-
# Values: Yes or No. Default: No.
|
|
139
|
-
#replace_newlines=No
|
|
140
|
-
|
|
141
|
-
# The number of lines to scan in an input file to identify delimiters and quotes.
|
|
142
|
-
# Value: A positive non-zero integer. Default: 100.
|
|
143
|
-
#scan_lines=100
|
|
144
|
-
|
|
145
|
-
# Whether to show a progress bar for long-running IMPORT operations.
|
|
146
|
-
# Values: Yes or No. Default: No.
|
|
147
|
-
#show_progress=No
|
|
148
|
-
|
|
149
|
-
# Whether to trim spaces/underscores from column headers.
|
|
150
|
-
# Values: None, Both, Left, or Right. Default: None.
|
|
151
|
-
#trim_column_headers=None
|
|
152
|
-
|
|
153
|
-
# Whether to trim leading/trailing whitespace from imported text.
|
|
154
|
-
# Values: Yes or No. Default: No.
|
|
155
|
-
#trim_strings=No
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
[output]
|
|
159
|
-
# Settings for data export and output.
|
|
160
|
-
|
|
161
|
-
# Whether WRITE output should also be sent to the log file.
|
|
162
|
-
# Values: Yes or No. Default: No.
|
|
163
|
-
#log_write_messages=No
|
|
164
|
-
|
|
165
|
-
# Whether to create non-existent directories for WRITE or EXPORT output.
|
|
166
|
-
# Values: Yes or No. Default: No.
|
|
167
|
-
#make_export_dirs=No
|
|
168
|
-
|
|
169
|
-
# Whether to quote all text values in delimited exports.
|
|
170
|
-
# Values: Yes or No. Default: No.
|
|
171
|
-
#quote_all_text=No
|
|
172
|
-
|
|
173
|
-
# The number of rows to buffer from the database when exporting.
|
|
174
|
-
# Value: A positive non-zero integer. Default: 1000.
|
|
175
|
-
#export_row_buffer=1000
|
|
176
|
-
|
|
177
|
-
# The length for text data types when exporting to HDF5.
|
|
178
|
-
# Value: A positive non-zero integer. Default: 1000.
|
|
179
|
-
#hdf5_text_len=1000
|
|
180
|
-
|
|
181
|
-
# The URI of a CSS file to use when exporting to HTML.
|
|
182
|
-
#css_file=
|
|
183
|
-
|
|
184
|
-
# CSS style commands to embed in HTML exports.
|
|
185
|
-
#css_styles=
|
|
186
|
-
|
|
187
|
-
# Seconds to keep retrying when an output file has an access conflict.
|
|
188
|
-
# Value: A positive non-zero number. Default: 600.
|
|
189
|
-
#outfile_open_timeout=600
|
|
190
|
-
|
|
191
|
-
# The template processor for template-based exports.
|
|
192
|
-
# Value: jinja.
|
|
193
|
-
#template_processor=
|
|
194
|
-
|
|
195
|
-
# Internal buffer size (in MB) for ZIP exports.
|
|
196
|
-
# Value: A positive non-zero integer. Default: 10.
|
|
197
|
-
#zip_buffer_mb=10
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
[interface]
|
|
201
|
-
# Settings for GUI dialogs and console output.
|
|
202
|
-
|
|
203
|
-
# GUI backend framework.
|
|
204
|
-
# Values: tkinter or textual. Default: tkinter.
|
|
205
|
-
#gui_framework=tkinter
|
|
206
|
-
|
|
207
|
-
# GUI dialog usage level.
|
|
208
|
-
# 0: none (default)
|
|
209
|
-
# 1: passwords and PAUSE metacommands
|
|
210
|
-
# 2: also database selection dialogs
|
|
211
|
-
# 3: open a console window immediately
|
|
212
|
-
#gui_level=0
|
|
213
|
-
|
|
214
|
-
# The height (in lines) of the console window.
|
|
215
|
-
# Value: An integer >= 5. Default: 25.
|
|
216
|
-
#console_height=25
|
|
217
|
-
|
|
218
|
-
# The width (in characters) of the console window.
|
|
219
|
-
# Value: An integer >= 20. Default: 100.
|
|
220
|
-
#console_width=100
|
|
221
|
-
|
|
222
|
-
# Whether the console stays open at the end of the script.
|
|
223
|
-
# Values: Yes or No. Default: No.
|
|
224
|
-
#console_wait_when_done=No
|
|
225
|
-
|
|
226
|
-
# Whether the console stays open when an error halt occurs.
|
|
227
|
-
# Values: Yes or No. Default: No.
|
|
228
|
-
#console_wait_when_error_halt=No
|
|
229
|
-
|
|
230
|
-
# Whether to write warning messages to the console.
|
|
231
|
-
# Values: Yes or No. Default: No.
|
|
232
|
-
#write_warnings=No
|
|
233
|
-
|
|
234
|
-
# Text to prefix to WRITE output (with a space separator). "clear" removes a previous prefix.
|
|
235
|
-
#write_prefix=
|
|
236
|
-
|
|
237
|
-
# Text to append to WRITE output (with a space separator). "clear" removes a previous suffix.
|
|
238
|
-
#write_suffix=
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
[email]
|
|
242
|
-
# Settings for the EMAIL metacommand.
|
|
243
|
-
|
|
244
|
-
# SMTP server connection.
|
|
245
|
-
#host=
|
|
246
|
-
#port=
|
|
247
|
-
#username=
|
|
248
|
-
#password=
|
|
249
|
-
|
|
250
|
-
# Whether to use implicit TLS (port 465). Preferred over use_tls.
|
|
251
|
-
# Values: Yes or No. Default: No.
|
|
252
|
-
#use_ssl=No
|
|
253
|
-
|
|
254
|
-
# Whether to use STARTTLS (port 587).
|
|
255
|
-
# Values: Yes or No. Default: No.
|
|
256
|
-
#use_tls=No
|
|
257
|
-
|
|
258
|
-
# Email body format.
|
|
259
|
-
# Values: plain or html. Default: plain.
|
|
260
|
-
#email_format=plain
|
|
261
|
-
|
|
262
|
-
# Custom CSS styles for HTML email.
|
|
263
|
-
#message_css=
|
|
264
|
-
|
|
265
|
-
# Obfuscated password (XOR, not cryptographically secure — use keyring instead).
|
|
266
|
-
# See: https://execsql2.readthedocs.io/en/latest/reference/security/#credentials
|
|
267
|
-
#enc_password=
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
[config]
|
|
271
|
-
# General program configuration and additional config file chaining.
|
|
272
|
-
|
|
273
|
-
# Path to an additional configuration file to load.
|
|
274
|
-
#config_file=
|
|
275
|
-
|
|
276
|
-
# Whether to allow the SYSTEM_CMD (SHELL) metacommand.
|
|
277
|
-
# Set to No to prevent scripts from executing OS commands.
|
|
278
|
-
# Also controllable via --no-system-cmd CLI flag.
|
|
279
|
-
# Values: Yes or No. Default: Yes.
|
|
280
|
-
#allow_system_cmd=Yes
|
|
281
|
-
|
|
282
|
-
# Whether to allow the RM_FILE metacommand (which deletes a file).
|
|
283
|
-
# Set to No to prevent scripts from deleting files.
|
|
284
|
-
# Also controllable via --no-rm-file CLI flag.
|
|
285
|
-
# Values: Yes or No. Default: Yes.
|
|
286
|
-
#allow_rm_file=Yes
|
|
287
|
-
|
|
288
|
-
# Whether to allow the SERVE metacommand (which opens an HTTP server on
|
|
289
|
-
# a local port to serve a single file). Set to No to disable.
|
|
290
|
-
# Also controllable via --no-serve CLI flag.
|
|
291
|
-
# Values: Yes or No. Default: Yes.
|
|
292
|
-
#allow_serve=Yes
|
|
293
|
-
|
|
294
|
-
# Root directory under which INCLUDE / EXECUTE SCRIPT targets must
|
|
295
|
-
# resolve. When set, attempts to include files outside this root via
|
|
296
|
-
# ../, absolute paths, drive letters, or UNC paths are rejected with
|
|
297
|
-
# an error. Default: no containment (any readable path is permitted).
|
|
298
|
-
#include_root=
|
|
299
|
-
|
|
300
|
-
# Root directory under which SERVE targets must resolve. Same
|
|
301
|
-
# containment semantics as include_root. Default: no containment.
|
|
302
|
-
#serve_root=
|
|
303
|
-
|
|
304
|
-
# Root directory under which Jinja2 / string.Template loader paths
|
|
305
|
-
# must resolve. Same containment semantics as include_root.
|
|
306
|
-
# Default: no containment.
|
|
307
|
-
#template_root=
|
|
308
|
-
|
|
309
|
-
# Maximum byte size of any single substitution-variable expansion,
|
|
310
|
-
# enforced by the substitute_vars() engine to defeat exponential-
|
|
311
|
-
# expansion bombs. Default: 10 MB (10485760).
|
|
312
|
-
#max_substitution_bytes=10485760
|
|
313
|
-
|
|
314
|
-
# Whether to log all data variable assignments.
|
|
315
|
-
# Values: Yes or No. Default: Yes.
|
|
316
|
-
#log_datavars=Yes
|
|
317
|
-
|
|
318
|
-
# Whether to log all executed SQL statements.
|
|
319
|
-
# Values: Yes or No. Default: No.
|
|
320
|
-
#log_sql=No
|
|
321
|
-
|
|
322
|
-
# Maximum log file size in MB before rotation. 0 disables rotation.
|
|
323
|
-
# Value: A non-negative integer. Default: 0.
|
|
324
|
-
#max_log_size_mb=0
|
|
325
|
-
|
|
326
|
-
# Whether to place execsql.log in the user's home directory instead of the script directory.
|
|
327
|
-
# Values: Yes or No. Default: No.
|
|
328
|
-
#user_logfile=No
|
|
329
|
-
|
|
330
|
-
# Seconds between DAO query creation and ODBC data access (MS Access only).
|
|
331
|
-
# Must be >= 5.0.
|
|
332
|
-
#dao_flush_delay_secs=5.0
|
|
333
|
-
|
|
334
|
-
# Platform-specific additional config files.
|
|
335
|
-
#linux_config_file=
|
|
336
|
-
#macos_config_file=
|
|
337
|
-
#win_config_file=
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
[variables]
|
|
341
|
-
# Substitution variables defined at startup. No pre-defined keys.
|
|
342
|
-
# Example:
|
|
343
|
-
# output_dir = /data/exports
|
|
344
|
-
# env_name = production
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
[include_required]
|
|
348
|
-
# Script files to include before the main script (required — error if missing).
|
|
349
|
-
# Keys are integers defining include order; values are file paths.
|
|
350
|
-
# Example:
|
|
351
|
-
# 1 = /opt/execsql/common/setup.sql
|
|
352
|
-
# 2 = /opt/execsql/common/helpers.sql
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
[include_optional]
|
|
356
|
-
# Script files to include before the main script (optional — skipped if missing).
|
|
357
|
-
# Same format as [include_required].
|
|
358
|
-
# Example:
|
|
359
|
-
# 1 = local_overrides.sql
|
|
File without changes
|
{execsql2-2.19.2.data → execsql2-2.21.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
|