execsql2 2.1.1__tar.gz → 2.1.2__tar.gz
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.
- {execsql2-2.1.1 → execsql2-2.1.2}/.pre-commit-config.yaml +2 -1
- {execsql2-2.1.1 → execsql2-2.1.2}/.readthedocs.yaml +2 -1
- {execsql2-2.1.1 → execsql2-2.1.2}/CHANGELOG.md +16 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/PKG-INFO +7 -2
- {execsql2-2.1.1 → execsql2-2.1.2}/README.md +6 -1
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/api/cli.md +1 -1
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/index.md +11 -11
- {execsql2-2.1.1 → execsql2-2.1.2}/pyproject.toml +2 -2
- {execsql2-2.1.1 → execsql2-2.1.2}/uv.lock +1 -1
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/agents/changelog-manager.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/agents/code-oracle.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/agents/code-reviewer.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/agents/docs-author.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/agents/migration-coder.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/agents/monolith-navigator.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/agents/test-engineer.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/commands/code-oracle.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/commands/migrate.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/commands/review-changes.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/commands/test-module.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/commands/update-changelog.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/commands/where-is.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.claude/project_context.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.github/workflows/ci-cd.yml +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.gitignore +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/.python-version +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/CONTRIBUTING.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/LICENSE.txt +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/NOTICE +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/api/db.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/api/exporters.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/api/importers.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/api/index.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/api/metacommands.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/change_log.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/configuration.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/contributors.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/copyright.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/debugging.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/dev/adding_db_adapters.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/dev/adding_exporters.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/dev/adding_importers.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/dev/adding_metacommands.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/documentation.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/encoding.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/examples.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/formatter.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/Compare_planets.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/actions.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/actions2.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/checkboxes.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/connect.b64 +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/connect.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/create_conf.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/data_error1_screenshot.jpg +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/entry_form.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/execsql_console.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/execsql_logo_01.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/fatals.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/logo_small.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/pause_terminal.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/pause_terminal_sm.b64 +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/pause_terminal_sm.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/prompt_compare.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/set_build_commands.jpg +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/unit_conversions.b64 +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/unit_conversions_029.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/unmatched.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/images/vim_execsql_highlight.png +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/installation.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/logging.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/metacommands.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/requirements.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/sql_syntax.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/substitution_vars.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/syntax.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/usage.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/docs/using_scripts.md +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/justfile +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/__main__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/cli.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/config.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/constants.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/access.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/base.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/dsn.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/duckdb.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/factory.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/firebird.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/mysql.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/oracle.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/postgres.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/sqlite.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/db/sqlserver.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exceptions.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/base.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/delimited.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/duckdb.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/feather.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/html.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/json.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/latex.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/ods.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/parquet.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/pretty.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/raw.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/sqlite.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/templates.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/values.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/xls.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/xml.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/exporters/zip.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/format.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/gui/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/gui/base.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/gui/console.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/gui/desktop.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/gui/tui.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/importers/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/importers/base.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/importers/csv.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/importers/feather.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/importers/ods.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/importers/xls.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/metacommands/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/metacommands/conditions.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/metacommands/connect.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/metacommands/control.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/metacommands/data.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/metacommands/debug.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/metacommands/io.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/metacommands/prompt.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/metacommands/script_ext.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/metacommands/system.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/models.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/parser.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/script.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/state.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/types.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/auth.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/crypto.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/datetime.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/errors.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/fileio.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/gui.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/mail.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/numeric.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/regex.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/strings.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/src/execsql/utils/timer.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/READ_ME.rst +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/config_settings.sqlite +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/example_config_prompt.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/execsql.conf +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/make_config_db.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/md_compare.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/md_glossary.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/md_upsert.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/pg_compare.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/pg_glossary.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/pg_upsert.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/script_template.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/ss_compare.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/ss_glossary.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/templates/ss_upsert.sql +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/conftest.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/db/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/db/test_base.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/db/test_duckdb.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/db/test_factory.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/db/test_postgres.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/db/test_sqlite.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_base.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_db.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_delimited.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_duckdb_exporter.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_exporters.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_feather.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_html_latex.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_json.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_ods.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_parquet.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_sqlite_exporter.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_templates.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_xls_xlsx.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_xml.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/exporters/test_zip.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/gui/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/gui/test_backends.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/importers/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/importers/test_csv_importer.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/importers/test_feather_importer.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/importers/test_ods_importer.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/importers/test_xls_importer.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/metacommands/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/metacommands/test_metacommands.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/metacommands/test_metacommands_connect.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/metacommands/test_metacommands_extended.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/metacommands/test_metacommands_io.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/metacommands/test_metacommands_script_ext.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/metacommands/test_metacommands_system.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_cli.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_config.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_config_data.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_constants.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_exceptions.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_format.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_integration.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_mail.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_models.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_package.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_parser.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_script.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_state.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/test_types.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/utils/__init__.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/utils/test_auth.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/utils/test_crypto.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/utils/test_datetime.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/utils/test_errors.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/utils/test_fileio.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/utils/test_numeric.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/utils/test_regex.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/utils/test_strings.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/tests/utils/test_timer.py +0 -0
- {execsql2-2.1.1 → execsql2-2.1.2}/zensical.toml +0 -0
|
@@ -18,7 +18,7 @@ repos:
|
|
|
18
18
|
- id: gitleaks
|
|
19
19
|
# uv lockfile management
|
|
20
20
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
21
|
-
rev: 0.
|
|
21
|
+
rev: 0.11.1
|
|
22
22
|
hooks:
|
|
23
23
|
- id: uv-lock
|
|
24
24
|
# Base hooks
|
|
@@ -47,6 +47,7 @@ repos:
|
|
|
47
47
|
- mdformat-mkdocs==5.1.1
|
|
48
48
|
exclude: |
|
|
49
49
|
(?x)^(
|
|
50
|
+
docs/api/.*|
|
|
50
51
|
docs/metacommands\.md|
|
|
51
52
|
docs/documentation\.md|
|
|
52
53
|
docs/examples\.md
|
|
@@ -13,6 +13,22 @@ ______________________________________________________________________
|
|
|
13
13
|
|
|
14
14
|
______________________________________________________________________
|
|
15
15
|
|
|
16
|
+
## [2.1.2] - 2026-03-25
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Added PyPI version, Python versions, license, and Read the Docs badges to `README.md`.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Read the Docs build: added `mkdocstrings-python` and editable project install to `.readthedocs.yaml` so `mkdocstrings` can resolve API references.
|
|
25
|
+
|
|
26
|
+
- Fixed escaped underscore in `docs/api/cli.md` (`\_run` → `_run`) that caused `mkdocstrings` to fail resolving `execsql.cli._run`.
|
|
27
|
+
|
|
28
|
+
- Excluded `docs/api/` from `mdformat` pre-commit hook to prevent it from re-escaping underscores in `mkdocstrings` `:::` directives.
|
|
29
|
+
|
|
30
|
+
______________________________________________________________________
|
|
31
|
+
|
|
16
32
|
## [2.1.1] - 2026-03-25
|
|
17
33
|
|
|
18
34
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: execsql2
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.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
5
|
Project-URL: Repository, https://github.com/geocoug/execsql
|
|
6
6
|
Project-URL: Issues, https://github.com/geocoug/execsql/issues
|
|
@@ -105,7 +105,8 @@ Description-Content-Type: text/markdown
|
|
|
105
105
|
> Not recommended for production use. For the stable upstream release, see [execsql](https://execsql.readthedocs.io/).
|
|
106
106
|
|
|
107
107
|
<div align="center">
|
|
108
|
-
|
|
108
|
+
|
|
109
|
+
<img src="https://execsql2.readthedocs.io/en/latest/images/execsql_logo_01.png" alt="execsql logo">
|
|
109
110
|
|
|
110
111
|
*Multi-DBMS SQL script processor.*
|
|
111
112
|
|
|
@@ -115,6 +116,10 @@ Description-Content-Type: text/markdown
|
|
|
115
116
|
|
|
116
117
|
[](https://github.com/geocoug/execsql/actions/workflows/ci-cd.yml)
|
|
117
118
|
[](https://codecov.io/gh/geocoug/execsql)
|
|
119
|
+
[](https://execsql2.readthedocs.io/)
|
|
120
|
+
[](https://pypi.org/project/execsql2/)
|
|
121
|
+
[](https://pypi.org/project/execsql2/)
|
|
122
|
+
[](https://pypi.org/project/execsql2/)
|
|
118
123
|
[](https://pepy.tech/project/execsql2)
|
|
119
124
|
|
|
120
125
|
</div>
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
> Not recommended for production use. For the stable upstream release, see [execsql](https://execsql.readthedocs.io/).
|
|
6
6
|
|
|
7
7
|
<div align="center">
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
<img src="https://execsql2.readthedocs.io/en/latest/images/execsql_logo_01.png" alt="execsql logo">
|
|
9
10
|
|
|
10
11
|
*Multi-DBMS SQL script processor.*
|
|
11
12
|
|
|
@@ -15,6 +16,10 @@
|
|
|
15
16
|
|
|
16
17
|
[](https://github.com/geocoug/execsql/actions/workflows/ci-cd.yml)
|
|
17
18
|
[](https://codecov.io/gh/geocoug/execsql)
|
|
19
|
+
[](https://execsql2.readthedocs.io/)
|
|
20
|
+
[](https://pypi.org/project/execsql2/)
|
|
21
|
+
[](https://pypi.org/project/execsql2/)
|
|
22
|
+
[](https://pypi.org/project/execsql2/)
|
|
18
23
|
[](https://pepy.tech/project/execsql2)
|
|
19
24
|
|
|
20
25
|
</div>
|
|
@@ -8,17 +8,17 @@
|
|
|
8
8
|
|
|
9
9
|
You can use *execsql* to:
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
- Import data from text files and spreadsheets into a database.
|
|
12
|
+
- Export tables and views to text files, OpenDocument spreadsheets, HTML, JSON, LaTeΧ, XML, or 17 other data formats.
|
|
13
|
+
- Copy data between different databases, even databases using different DBMSs.
|
|
14
|
+
- Display tables or views on the terminal or in a GUI dialog window.
|
|
15
|
+
- Export data using template processors to produce non-tabular output with customized format and contents.
|
|
16
|
+
- Conditionally execute different SQL commands and metacommands based on the DBMS in use, the database in use, data values, user input, and other conditions.
|
|
17
|
+
- Execute blocks of SQL statements and metacommands repeatedly, using any of three different looping methods.
|
|
18
|
+
- Prompt the user to select files or directories, answer questions, or enter data values.
|
|
19
|
+
- Allow the user to visually compare two tables or views.
|
|
20
|
+
- Serve data tables to a web application when used as a CGI script.
|
|
21
|
+
- Write messages to the console or to a file during the processing of a SQL script. These messages can be used to display the progress of the script or create a custom log of the operations that have been carried out or results obtained. Status messages and data exported in text format can be combined in a single text file. Data tables can be exported in a text format that is compatible with Markdown pipe tables, so that script output can be converted into a variety of document formats (see [Example 8](examples.md#example8) and [Example 11](examples.md#example11)).
|
|
22
22
|
|
|
23
23
|
Different DBMSs and DBMS-specific client programs provide different and incompatible extensions to SQL, ordinarily to allow interactions with the file system and to allow conditional tests and looping. Some DBMSs do not have any native extensions of this sort. *execsql* provides these features, as well as features for user interaction, in an identical fashion for all supported DBMSs. This allows standardization of the SQL scripting language used for different types of database management systems.
|
|
24
24
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "execsql2"
|
|
7
|
-
version = "2.1.
|
|
7
|
+
version = "2.1.2"
|
|
8
8
|
description = "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."
|
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
10
|
license = { file = "LICENSE.txt" }
|
|
@@ -153,7 +153,7 @@ skip-magic-trailing-comma = false
|
|
|
153
153
|
line-ending = "auto"
|
|
154
154
|
|
|
155
155
|
[tool.bumpversion]
|
|
156
|
-
current_version = "2.1.
|
|
156
|
+
current_version = "2.1.2"
|
|
157
157
|
commit = true
|
|
158
158
|
commit_args = "--no-verify"
|
|
159
159
|
tag = true
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|