execsql2 2.17.2__tar.gz → 2.18.0__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.
Files changed (380) hide show
  1. execsql2-2.18.0/.github/dependabot.yml +21 -0
  2. {execsql2-2.17.2 → execsql2-2.18.0}/.github/workflows/ci-cd.yml +19 -19
  3. {execsql2-2.17.2 → execsql2-2.18.0}/.gitignore +1 -0
  4. {execsql2-2.17.2 → execsql2-2.18.0}/CHANGELOG.md +203 -73
  5. {execsql2-2.17.2 → execsql2-2.18.0}/CONTRIBUTING.md +2 -2
  6. {execsql2-2.17.2 → execsql2-2.18.0}/PKG-INFO +8 -3
  7. {execsql2-2.17.2 → execsql2-2.18.0}/README.md +1 -0
  8. execsql2-2.18.0/SECURITY.md +71 -0
  9. {execsql2-2.17.2 → execsql2-2.18.0}/docs/about/divergence.md +3 -1
  10. {execsql2-2.17.2 → execsql2-2.18.0}/docs/reference/metacommands.md +4 -2
  11. {execsql2-2.17.2 → execsql2-2.18.0}/docs/reference/substitution_vars.md +7 -1
  12. {execsql2-2.17.2 → execsql2-2.18.0}/extras/vscode-execsql/syntaxes/execsql.tmLanguage.json +1 -1
  13. {execsql2-2.17.2 → execsql2-2.18.0}/justfile +10 -0
  14. {execsql2-2.17.2 → execsql2-2.18.0}/pyproject.toml +5 -4
  15. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/cli/__init__.py +13 -1
  16. execsql2-2.18.0/src/execsql/cli/lint.py +91 -0
  17. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/cli/run.py +29 -2
  18. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/config.py +20 -0
  19. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/access.py +6 -0
  20. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/base.py +57 -1
  21. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/dsn.py +19 -9
  22. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/firebird.py +6 -0
  23. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/mysql.py +81 -0
  24. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/oracle.py +6 -0
  25. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/sqlite.py +37 -18
  26. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/sqlserver.py +31 -6
  27. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/base.py +1 -1
  28. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/duckdb.py +8 -4
  29. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/ods.py +11 -0
  30. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/sqlite.py +10 -3
  31. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/templates.py +10 -0
  32. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/xls.py +4 -0
  33. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/xlsx.py +9 -0
  34. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/importers/json.py +49 -32
  35. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/conditions.py +7 -2
  36. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/io_export.py +21 -26
  37. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/io_fileops.py +21 -3
  38. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/io_import.py +23 -3
  39. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/script/ast.py +8 -0
  40. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/script/engine.py +32 -0
  41. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/script/executor.py +12 -0
  42. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/script/variables.py +41 -15
  43. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/auth.py +49 -1
  44. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/fileio.py +120 -0
  45. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/gui.py +11 -1
  46. {execsql2-2.17.2 → execsql2-2.18.0}/templates/md_compare.sql +12 -12
  47. {execsql2-2.17.2 → execsql2-2.18.0}/templates/md_glossary.sql +5 -5
  48. {execsql2-2.17.2 → execsql2-2.18.0}/templates/md_upsert.sql +13 -13
  49. {execsql2-2.17.2 → execsql2-2.18.0}/templates/pg_compare.sql +24 -24
  50. {execsql2-2.17.2 → execsql2-2.18.0}/templates/pg_glossary.sql +5 -5
  51. {execsql2-2.17.2 → execsql2-2.18.0}/templates/pg_upsert.sql +29 -29
  52. {execsql2-2.17.2 → execsql2-2.18.0}/templates/script_template.sql +2 -2
  53. {execsql2-2.17.2 → execsql2-2.18.0}/templates/ss_compare.sql +24 -24
  54. {execsql2-2.17.2 → execsql2-2.18.0}/templates/ss_glossary.sql +6 -6
  55. {execsql2-2.17.2 → execsql2-2.18.0}/templates/ss_upsert.sql +2917 -2917
  56. execsql2-2.18.0/tests/cli/test_lint.py +98 -0
  57. execsql2-2.18.0/tests/cli/test_lint_ast.py +216 -0
  58. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_db_adapters_mocked.py +2 -1
  59. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_dsn.py +4 -2
  60. execsql2-2.18.0/tests/db/test_mysql_case_folding.py +118 -0
  61. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_sqlite_extra.py +12 -6
  62. {execsql2-2.17.2 → execsql2-2.18.0}/tests/importers/test_json_importer.py +7 -7
  63. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_conditions_extra.py +56 -0
  64. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_io_export.py +27 -9
  65. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_metacommands_io.py +13 -5
  66. execsql2-2.18.0/tests/scripts/fixtures/audit_lint_bad.sql +14 -0
  67. execsql2-2.18.0/tests/scripts/fixtures/audit_smoke/sample.json +5 -0
  68. execsql2-2.18.0/tests/scripts/fixtures/audit_smoke/sample.jsonl +3 -0
  69. execsql2-2.18.0/tests/scripts/fixtures/audit_smoke.sql +403 -0
  70. execsql2-2.18.0/tests/scripts/fixtures/config_runtime.sql +65 -0
  71. execsql2-2.18.0/tests/scripts/fixtures/counters_and_locals.sql +143 -0
  72. execsql2-2.18.0/tests/scripts/fixtures/error_handling.sql +129 -0
  73. execsql2-2.18.0/tests/scripts/fixtures/import_options/has_comments.csv +5 -0
  74. execsql2-2.18.0/tests/scripts/fixtures/import_options.sql +75 -0
  75. execsql2-2.18.0/tests/scripts/fixtures/includes/helper.sql +13 -0
  76. execsql2-2.18.0/tests/scripts/fixtures/includes.sql +72 -0
  77. execsql2-2.18.0/tests/scripts/fixtures/io_formats.sql +87 -0
  78. execsql2-2.18.0/tests/scripts/fixtures/multi_db.sql +101 -0
  79. execsql2-2.18.0/tests/scripts/fixtures/parquet_feather_roundtrip.sql +53 -0
  80. execsql2-2.18.0/tests/scripts/fixtures/predicates.sql +99 -0
  81. execsql2-2.18.0/tests/scripts/fixtures/scripts.sql +132 -0
  82. execsql2-2.18.0/tests/scripts/fixtures/subroutine_loops.sql +90 -0
  83. execsql2-2.18.0/tests/scripts/fixtures/subvars_advanced.sql +125 -0
  84. execsql2-2.18.0/tests/scripts/fixtures/template_export/greeting.tmpl +1 -0
  85. execsql2-2.18.0/tests/scripts/fixtures/template_export.sql +29 -0
  86. execsql2-2.18.0/tests/scripts/fixtures/timer.sql +56 -0
  87. execsql2-2.18.0/tests/scripts/fixtures/transactions.sql +82 -0
  88. execsql2-2.18.0/tests/scripts/fixtures/write_create_table.sql +41 -0
  89. execsql2-2.18.0/tests/scripts/fixtures/xlsx_ods_roundtrip.sql +52 -0
  90. execsql2-2.18.0/tests/scripts/test_sql_scripts.py +163 -0
  91. execsql2-2.18.0/tests/security/test_env_detection.py +99 -0
  92. execsql2-2.18.0/tests/security/test_expansion_bomb.py +124 -0
  93. execsql2-2.18.0/tests/security/test_import_regex_hardening.py +57 -0
  94. execsql2-2.18.0/tests/security/test_log_redaction.py +74 -0
  95. execsql2-2.18.0/tests/security/test_odbc_injection.py +137 -0
  96. execsql2-2.18.0/tests/security/test_path_containment.py +142 -0
  97. execsql2-2.18.0/tests/security/test_substitution_injection.py +654 -0
  98. execsql2-2.18.0/tests/security/test_zip_bomb.py +88 -0
  99. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_ast.py +12 -0
  100. execsql2-2.18.0/tests/test_bundled_templates.py +81 -0
  101. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_executor.py +6 -1
  102. execsql2-2.18.0/tests/utils/__init__.py +0 -0
  103. execsql2-2.18.0/tests/utils/test_encodedfile_context.py +52 -0
  104. {execsql2-2.17.2 → execsql2-2.18.0}/uv.lock +234 -20
  105. execsql2-2.17.2/SECURITY.md +0 -28
  106. execsql2-2.17.2/examples/prompt_map_demo.sql +0 -68
  107. execsql2-2.17.2/src/execsql/cli/lint.py +0 -640
  108. execsql2-2.17.2/tests/cli/test_lint.py +0 -743
  109. execsql2-2.17.2/tests/scripts/test_sql_scripts.py +0 -67
  110. {execsql2-2.17.2 → execsql2-2.18.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  111. {execsql2-2.17.2 → execsql2-2.18.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  112. {execsql2-2.17.2 → execsql2-2.18.0}/.pre-commit-config.yaml +0 -0
  113. {execsql2-2.17.2 → execsql2-2.18.0}/.pre-commit-hooks.yaml +0 -0
  114. {execsql2-2.17.2 → execsql2-2.18.0}/.python-version +0 -0
  115. {execsql2-2.17.2 → execsql2-2.18.0}/.readthedocs.yaml +0 -0
  116. {execsql2-2.17.2 → execsql2-2.18.0}/LICENSE.txt +0 -0
  117. {execsql2-2.17.2 → execsql2-2.18.0}/NOTICE +0 -0
  118. {execsql2-2.17.2 → execsql2-2.18.0}/docs/about/contributors.md +0 -0
  119. {execsql2-2.17.2 → execsql2-2.18.0}/docs/about/copyright.md +0 -0
  120. {execsql2-2.17.2 → execsql2-2.18.0}/docs/api/cli.md +0 -0
  121. {execsql2-2.17.2 → execsql2-2.18.0}/docs/api/db.md +0 -0
  122. {execsql2-2.17.2 → execsql2-2.18.0}/docs/api/exporters.md +0 -0
  123. {execsql2-2.17.2 → execsql2-2.18.0}/docs/api/importers.md +0 -0
  124. {execsql2-2.17.2 → execsql2-2.18.0}/docs/api/index.md +0 -0
  125. {execsql2-2.17.2 → execsql2-2.18.0}/docs/api/metacommands.md +0 -0
  126. {execsql2-2.17.2 → execsql2-2.18.0}/docs/dev/adding_db_adapters.md +0 -0
  127. {execsql2-2.17.2 → execsql2-2.18.0}/docs/dev/adding_exporters.md +0 -0
  128. {execsql2-2.17.2 → execsql2-2.18.0}/docs/dev/adding_importers.md +0 -0
  129. {execsql2-2.17.2 → execsql2-2.18.0}/docs/dev/adding_metacommands.md +0 -0
  130. {execsql2-2.17.2 → execsql2-2.18.0}/docs/dev/architecture.md +0 -0
  131. {execsql2-2.17.2 → execsql2-2.18.0}/docs/getting-started/installation.md +0 -0
  132. {execsql2-2.17.2 → execsql2-2.18.0}/docs/getting-started/requirements.md +0 -0
  133. {execsql2-2.17.2 → execsql2-2.18.0}/docs/getting-started/syntax.md +0 -0
  134. {execsql2-2.17.2 → execsql2-2.18.0}/docs/guides/debugging.md +0 -0
  135. {execsql2-2.17.2 → execsql2-2.18.0}/docs/guides/documentation.md +0 -0
  136. {execsql2-2.17.2 → execsql2-2.18.0}/docs/guides/encoding.md +0 -0
  137. {execsql2-2.17.2 → execsql2-2.18.0}/docs/guides/examples.md +0 -0
  138. {execsql2-2.17.2 → execsql2-2.18.0}/docs/guides/formatter.md +0 -0
  139. {execsql2-2.17.2 → execsql2-2.18.0}/docs/guides/logging.md +0 -0
  140. {execsql2-2.17.2 → execsql2-2.18.0}/docs/guides/sql_syntax.md +0 -0
  141. {execsql2-2.17.2 → execsql2-2.18.0}/docs/guides/usage.md +0 -0
  142. {execsql2-2.17.2 → execsql2-2.18.0}/docs/guides/using_scripts.md +0 -0
  143. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/Compare_planets.png +0 -0
  144. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/actions.png +0 -0
  145. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/actions2.png +0 -0
  146. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/checkboxes.png +0 -0
  147. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/connect.b64 +0 -0
  148. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/connect.png +0 -0
  149. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/create_conf.png +0 -0
  150. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/data_error1_screenshot.jpg +0 -0
  151. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/entry_form.png +0 -0
  152. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/execsql_console.png +0 -0
  153. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/execsql_logo_01.png +0 -0
  154. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/fatals.png +0 -0
  155. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/logo_small.png +0 -0
  156. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/pause_terminal.png +0 -0
  157. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/pause_terminal_sm.b64 +0 -0
  158. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/pause_terminal_sm.png +0 -0
  159. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/prompt_compare.png +0 -0
  160. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/set_build_commands.jpg +0 -0
  161. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/unit_conversions.b64 +0 -0
  162. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/unit_conversions_029.png +0 -0
  163. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/unmatched.png +0 -0
  164. {execsql2-2.17.2 → execsql2-2.18.0}/docs/images/vim_execsql_highlight.png +0 -0
  165. {execsql2-2.17.2 → execsql2-2.18.0}/docs/index.md +0 -0
  166. {execsql2-2.17.2 → execsql2-2.18.0}/docs/reference/configuration.md +0 -0
  167. {execsql2-2.17.2 → execsql2-2.18.0}/docs/reference/security.md +0 -0
  168. {execsql2-2.17.2 → execsql2-2.18.0}/extras/plugin-template/README.md +0 -0
  169. {execsql2-2.17.2 → execsql2-2.18.0}/extras/plugin-template/pyproject.toml +0 -0
  170. {execsql2-2.17.2 → execsql2-2.18.0}/extras/plugin-template/src/execsql_plugin_YOURNAME/__init__.py +0 -0
  171. {execsql2-2.17.2 → execsql2-2.18.0}/extras/plugin-template/tests/test_plugin.py.example +0 -0
  172. {execsql2-2.17.2 → execsql2-2.18.0}/extras/vscode-execsql/README.md +0 -0
  173. {execsql2-2.17.2 → execsql2-2.18.0}/extras/vscode-execsql/package.json +0 -0
  174. {execsql2-2.17.2 → execsql2-2.18.0}/scripts/generate_vscode_grammar.py +0 -0
  175. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/__init__.py +0 -0
  176. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/__main__.py +0 -0
  177. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/api.py +0 -0
  178. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/cli/dsn.py +0 -0
  179. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/cli/help.py +0 -0
  180. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/cli/lint_ast.py +0 -0
  181. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/data/__init__.py +0 -0
  182. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/data/execsql.conf.template +0 -0
  183. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/__init__.py +0 -0
  184. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/duckdb.py +0 -0
  185. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/factory.py +0 -0
  186. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/db/postgres.py +0 -0
  187. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/debug/__init__.py +0 -0
  188. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/debug/repl.py +0 -0
  189. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exceptions.py +0 -0
  190. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/__init__.py +0 -0
  191. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/delimited.py +0 -0
  192. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/feather.py +0 -0
  193. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/html.py +0 -0
  194. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/json.py +0 -0
  195. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/latex.py +0 -0
  196. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/markdown.py +0 -0
  197. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/parquet.py +0 -0
  198. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/pretty.py +0 -0
  199. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/protocol.py +0 -0
  200. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/raw.py +0 -0
  201. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/values.py +0 -0
  202. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/xml.py +0 -0
  203. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/yaml.py +0 -0
  204. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/exporters/zip.py +0 -0
  205. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/format.py +0 -0
  206. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/gui/__init__.py +0 -0
  207. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/gui/base.py +0 -0
  208. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/gui/console.py +0 -0
  209. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/gui/desktop.py +0 -0
  210. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/gui/tui.py +0 -0
  211. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/importers/__init__.py +0 -0
  212. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/importers/base.py +0 -0
  213. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/importers/csv.py +0 -0
  214. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/importers/feather.py +0 -0
  215. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/importers/ods.py +0 -0
  216. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/importers/xls.py +0 -0
  217. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/__init__.py +0 -0
  218. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/connect.py +0 -0
  219. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/control.py +0 -0
  220. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/data.py +0 -0
  221. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/debug.py +0 -0
  222. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/dispatch.py +0 -0
  223. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/io.py +0 -0
  224. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/io_write.py +0 -0
  225. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/prompt.py +0 -0
  226. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/script_ext.py +0 -0
  227. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/system.py +0 -0
  228. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/metacommands/upsert.py +0 -0
  229. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/models.py +0 -0
  230. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/parser.py +0 -0
  231. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/plugins.py +0 -0
  232. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/py.typed +0 -0
  233. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/script/__init__.py +0 -0
  234. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/script/control.py +0 -0
  235. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/script/parser.py +0 -0
  236. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/state.py +0 -0
  237. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/types.py +0 -0
  238. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/__init__.py +0 -0
  239. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/crypto.py +0 -0
  240. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/datetime.py +0 -0
  241. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/errors.py +0 -0
  242. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/mail.py +0 -0
  243. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/numeric.py +0 -0
  244. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/regex.py +0 -0
  245. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/strings.py +0 -0
  246. {execsql2-2.17.2 → execsql2-2.18.0}/src/execsql/utils/timer.py +0 -0
  247. {execsql2-2.17.2 → execsql2-2.18.0}/templates/README.md +0 -0
  248. {execsql2-2.17.2 → execsql2-2.18.0}/templates/config_settings.sqlite +0 -0
  249. {execsql2-2.17.2 → execsql2-2.18.0}/templates/example_config_prompt.sql +0 -0
  250. {execsql2-2.17.2 → execsql2-2.18.0}/templates/execsql.conf +0 -0
  251. {execsql2-2.17.2 → execsql2-2.18.0}/templates/make_config_db.sql +0 -0
  252. {execsql2-2.17.2 → execsql2-2.18.0}/tests/__init__.py +0 -0
  253. {execsql2-2.17.2 → execsql2-2.18.0}/tests/cli/__init__.py +0 -0
  254. {execsql2-2.17.2 → execsql2-2.18.0}/tests/cli/test_cli.py +0 -0
  255. {execsql2-2.17.2 → execsql2-2.18.0}/tests/cli/test_cli_e2e.py +0 -0
  256. {execsql2-2.17.2 → execsql2-2.18.0}/tests/cli/test_cli_run.py +0 -0
  257. {execsql2-2.17.2 → execsql2-2.18.0}/tests/cli/test_ping.py +0 -0
  258. {execsql2-2.17.2 → execsql2-2.18.0}/tests/cli/test_profile.py +0 -0
  259. {execsql2-2.17.2 → execsql2-2.18.0}/tests/conftest.py +0 -0
  260. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/__init__.py +0 -0
  261. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_access_windows.py +0 -0
  262. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_base.py +0 -0
  263. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_db_adapters_mocked_extra.py +0 -0
  264. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_duckdb.py +0 -0
  265. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_factory.py +0 -0
  266. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_mysql_inprocess.py +0 -0
  267. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_postgres.py +0 -0
  268. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_postgres_inprocess.py +0 -0
  269. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_sqlite.py +0 -0
  270. {execsql2-2.17.2 → execsql2-2.18.0}/tests/db/test_sqlserver_inprocess.py +0 -0
  271. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/__init__.py +0 -0
  272. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_base.py +0 -0
  273. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_db.py +0 -0
  274. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_delimited.py +0 -0
  275. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_duckdb_exporter.py +0 -0
  276. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_exporters.py +0 -0
  277. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_feather.py +0 -0
  278. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_html_extended.py +0 -0
  279. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_html_latex.py +0 -0
  280. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_json.py +0 -0
  281. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_json_extended.py +0 -0
  282. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_latex_extended.py +0 -0
  283. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_markdown.py +0 -0
  284. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_ods.py +0 -0
  285. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_ods_export.py +0 -0
  286. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_parquet.py +0 -0
  287. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_pretty_extended.py +0 -0
  288. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_raw_extended.py +0 -0
  289. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_sqlite_exporter.py +0 -0
  290. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_templates.py +0 -0
  291. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_templates_extended.py +0 -0
  292. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_values_extended.py +0 -0
  293. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_xls_xlsx.py +0 -0
  294. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_xlsx.py +0 -0
  295. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_xml.py +0 -0
  296. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_yaml.py +0 -0
  297. {execsql2-2.17.2 → execsql2-2.18.0}/tests/exporters/test_zip.py +0 -0
  298. {execsql2-2.17.2 → execsql2-2.18.0}/tests/gui/__init__.py +0 -0
  299. {execsql2-2.17.2 → execsql2-2.18.0}/tests/gui/test_backends.py +0 -0
  300. {execsql2-2.17.2 → execsql2-2.18.0}/tests/gui/test_backends_extended.py +0 -0
  301. {execsql2-2.17.2 → execsql2-2.18.0}/tests/gui/test_compare_stats.py +0 -0
  302. {execsql2-2.17.2 → execsql2-2.18.0}/tests/gui/test_compute_row_diffs.py +0 -0
  303. {execsql2-2.17.2 → execsql2-2.18.0}/tests/gui/test_desktop_dialogs.py +0 -0
  304. {execsql2-2.17.2 → execsql2-2.18.0}/tests/gui/test_tui_pilot.py +0 -0
  305. {execsql2-2.17.2 → execsql2-2.18.0}/tests/gui/test_tui_pilot_complex.py +0 -0
  306. {execsql2-2.17.2 → execsql2-2.18.0}/tests/gui/test_utils_gui_extended.py +0 -0
  307. {execsql2-2.17.2 → execsql2-2.18.0}/tests/importers/__init__.py +0 -0
  308. {execsql2-2.17.2 → execsql2-2.18.0}/tests/importers/test_base_extended.py +0 -0
  309. {execsql2-2.17.2 → execsql2-2.18.0}/tests/importers/test_csv_edge_cases.py +0 -0
  310. {execsql2-2.17.2 → execsql2-2.18.0}/tests/importers/test_csv_importer.py +0 -0
  311. {execsql2-2.17.2 → execsql2-2.18.0}/tests/importers/test_feather_importer.py +0 -0
  312. {execsql2-2.17.2 → execsql2-2.18.0}/tests/importers/test_ods_importer.py +0 -0
  313. {execsql2-2.17.2 → execsql2-2.18.0}/tests/importers/test_xls_importer.py +0 -0
  314. {execsql2-2.17.2 → execsql2-2.18.0}/tests/integration/__init__.py +0 -0
  315. {execsql2-2.17.2 → execsql2-2.18.0}/tests/integration/conftest.py +0 -0
  316. {execsql2-2.17.2 → execsql2-2.18.0}/tests/integration/test_dsn.py +0 -0
  317. {execsql2-2.17.2 → execsql2-2.18.0}/tests/integration/test_duckdb.py +0 -0
  318. {execsql2-2.17.2 → execsql2-2.18.0}/tests/integration/test_mysql.py +0 -0
  319. {execsql2-2.17.2 → execsql2-2.18.0}/tests/integration/test_postgres.py +0 -0
  320. {execsql2-2.17.2 → execsql2-2.18.0}/tests/integration/test_sqlite.py +0 -0
  321. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/__init__.py +0 -0
  322. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_assert.py +0 -0
  323. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_breakpoint.py +0 -0
  324. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_connect.py +0 -0
  325. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_io_import.py +0 -0
  326. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_metacommands.py +0 -0
  327. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_metacommands_connect.py +0 -0
  328. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_metacommands_data.py +0 -0
  329. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_metacommands_extended.py +0 -0
  330. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_metacommands_fileops_extra.py +0 -0
  331. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_metacommands_io_write_extra.py +0 -0
  332. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_metacommands_script_ext.py +0 -0
  333. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_metacommands_system.py +0 -0
  334. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_metacommands_system_extra.py +0 -0
  335. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_pg_upsert.py +0 -0
  336. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_prompt.py +0 -0
  337. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_row_count.py +0 -0
  338. {execsql2-2.17.2 → execsql2-2.18.0}/tests/metacommands/test_show_scripts.py +0 -0
  339. {execsql2-2.17.2 → execsql2-2.18.0}/tests/scripts/__init__.py +0 -0
  340. {execsql2-2.17.2 → execsql2-2.18.0}/tests/scripts/fixtures/control_flow.sql +0 -0
  341. {execsql2-2.17.2 → execsql2-2.18.0}/tests/scripts/fixtures/io_roundtrip.sql +0 -0
  342. {execsql2-2.17.2 → execsql2-2.18.0}/tests/scripts/fixtures/parse_only/parse_tree.sql +0 -0
  343. {execsql2-2.17.2 → execsql2-2.18.0}/tests/scripts/fixtures/smoke.sql +0 -0
  344. {execsql2-2.17.2/tests/utils → execsql2-2.18.0/tests/security}/__init__.py +0 -0
  345. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_api.py +0 -0
  346. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_api_extended.py +0 -0
  347. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_ast_parser.py +0 -0
  348. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_config.py +0 -0
  349. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_config_data.py +0 -0
  350. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_config_extended.py +0 -0
  351. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_debug_repl.py +0 -0
  352. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_engine.py +0 -0
  353. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_error_messages.py +0 -0
  354. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_exceptions.py +0 -0
  355. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_executor_inprocess.py +0 -0
  356. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_format.py +0 -0
  357. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_mail.py +0 -0
  358. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_models.py +0 -0
  359. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_package.py +0 -0
  360. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_parser.py +0 -0
  361. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_parser_params.py +0 -0
  362. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_plugins.py +0 -0
  363. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_registry.py +0 -0
  364. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_script.py +0 -0
  365. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_state.py +0 -0
  366. {execsql2-2.17.2 → execsql2-2.18.0}/tests/test_types.py +0 -0
  367. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_auth.py +0 -0
  368. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_auth_extra.py +0 -0
  369. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_crypto.py +0 -0
  370. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_datetime.py +0 -0
  371. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_errors.py +0 -0
  372. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_errors_extra.py +0 -0
  373. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_fileio.py +0 -0
  374. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_fileio_extra.py +0 -0
  375. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_numeric.py +0 -0
  376. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_regex.py +0 -0
  377. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_strings.py +0 -0
  378. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_timer.py +0 -0
  379. {execsql2-2.17.2 → execsql2-2.18.0}/tests/utils/test_timer_extra.py +0 -0
  380. {execsql2-2.17.2 → execsql2-2.18.0}/zensical.toml +0 -0
@@ -0,0 +1,21 @@
1
+ # Dependabot keeps the SHA-pinned GitHub Actions in ci-cd.yml up to
2
+ # date. The audit's B22 finding (F059) called out that pinning to
3
+ # major-version tags (e.g. `actions/checkout@v6`) is supply-chain
4
+ # exposure — an attacker who compromises the repo can retag any v6.x
5
+ # release to point at malicious code and every consumer pulls it on
6
+ # the next run. Pinning to a 40-char SHA closes that hole, but the
7
+ # pins must be refreshed when upstream ships a real new release;
8
+ # Dependabot files a PR with the new SHA and a CHANGELOG link.
9
+ version: 2
10
+ updates:
11
+ - package-ecosystem: github-actions
12
+ directory: /
13
+ schedule:
14
+ interval: weekly
15
+ groups:
16
+ actions-minor-and-patch:
17
+ patterns:
18
+ - "*"
19
+ update-types:
20
+ - minor
21
+ - patch
@@ -20,8 +20,8 @@ jobs:
20
20
  permissions:
21
21
  contents: read
22
22
  steps:
23
- - uses: actions/checkout@v6
24
- - uses: actions/setup-python@v6
23
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
24
+ - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
25
25
  with:
26
26
  python-version: "3.13"
27
27
  - run: python -m pip install ruff
@@ -48,13 +48,13 @@ jobs:
48
48
  contents: read
49
49
  steps:
50
50
  - name: Check out repository code
51
- uses: actions/checkout@v6
51
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
52
52
  - name: Setup Python ${{ matrix.python-version }}
53
- uses: actions/setup-python@v6
53
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
54
54
  with:
55
55
  python-version: ${{ matrix.python-version }}
56
56
  - name: Cache pip dependencies
57
- uses: actions/cache@v5
57
+ uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
58
58
  with:
59
59
  path: ~/.cache/pip
60
60
  key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{
@@ -86,7 +86,7 @@ jobs:
86
86
  tox -e py
87
87
  - name: Upload coverage to Codecov
88
88
  if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
89
- uses: codecov/codecov-action@v6
89
+ uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
90
90
  with:
91
91
  token: ${{ secrets.CODECOV_TOKEN }}
92
92
  files: coverage.xml
@@ -139,9 +139,9 @@ jobs:
139
139
  --health-interval 10s --health-timeout 5s --health-retries 20
140
140
  steps:
141
141
  - name: Check out repository code
142
- uses: actions/checkout@v6
142
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
143
143
  - name: Setup Python ${{ matrix.python-version }}
144
- uses: actions/setup-python@v6
144
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
145
145
  with:
146
146
  python-version: ${{ matrix.python-version }}
147
147
  - name: Install tkinter (Ubuntu)
@@ -167,7 +167,7 @@ jobs:
167
167
  run: |
168
168
  python -m pytest --cov=execsql --cov-branch --cov-report=xml --cov-fail-under=86
169
169
  - name: Upload coverage to Codecov
170
- uses: codecov/codecov-action@v6
170
+ uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
171
171
  with:
172
172
  token: ${{ secrets.CODECOV_TOKEN }}
173
173
  files: coverage.xml
@@ -186,8 +186,8 @@ jobs:
186
186
  permissions:
187
187
  contents: read
188
188
  steps:
189
- - uses: actions/checkout@v6
190
- - uses: actions/setup-python@v6
189
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
190
+ - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
191
191
  with:
192
192
  python-version: ${{ matrix.python-version }}
193
193
  - name: Install Microsoft Access Database Engine 2016 (x64)
@@ -226,9 +226,9 @@ jobs:
226
226
  permissions:
227
227
  contents: read
228
228
  steps:
229
- - uses: actions/checkout@v6
229
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
230
230
  - name: Set up Python
231
- uses: actions/setup-python@v6
231
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
232
232
  with:
233
233
  python-version: "3.13"
234
234
  cache: "pip"
@@ -239,7 +239,7 @@ jobs:
239
239
  python -m build --sdist --wheel --outdir dist/
240
240
  python -m twine check dist/*
241
241
  - name: Upload dist artifact
242
- uses: actions/upload-artifact@v7
242
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
243
243
  with:
244
244
  name: ${{ github.event.repository.name }}
245
245
  path: dist/
@@ -257,12 +257,12 @@ jobs:
257
257
  contents: read
258
258
  steps:
259
259
  - name: Download dist
260
- uses: actions/download-artifact@v8
260
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
261
261
  with:
262
262
  name: ${{ github.event.repository.name }}
263
263
  path: dist/
264
264
  - name: Publish to PyPI
265
- uses: pypa/gh-action-pypi-publish@release/v1
265
+ uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # release/v1
266
266
  with:
267
267
  packages-dir: dist
268
268
  skip-existing: true
@@ -276,14 +276,14 @@ jobs:
276
276
  contents: write
277
277
  steps:
278
278
  - name: Checkout
279
- uses: actions/checkout@v6
279
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
280
280
  - name: Download dist
281
- uses: actions/download-artifact@v8
281
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
282
282
  with:
283
283
  name: ${{ github.event.repository.name }}
284
284
  path: dist/
285
285
  - name: Create release
286
- uses: softprops/action-gh-release@v2
286
+ uses: softprops/action-gh-release@3bb12739c298aeb8a4eeaf626c5b8d85266b0e65 # v2
287
287
  with:
288
288
  draft: false
289
289
  prerelease: false
@@ -7,6 +7,7 @@ dist/
7
7
  build/
8
8
  .eggs/
9
9
  .ruff_cache/
10
+ .mypy_cache/
10
11
 
11
12
  # uv / venv
12
13
  .venv/