mycli 2.29.1__tar.gz → 2.29.3__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 (228) hide show
  1. mycli-2.29.3/.github/actions/lint/action.yml +13 -0
  2. mycli-2.29.3/.github/actions/typecheck/action.yml +24 -0
  3. {mycli-2.29.1 → mycli-2.29.3}/.github/workflows/lint.yml +3 -8
  4. {mycli-2.29.1 → mycli-2.29.3}/.github/workflows/publish.yml +23 -11
  5. mycli-2.29.3/.github/workflows/typecheck.yml +24 -0
  6. {mycli-2.29.1/mycli.egg-info → mycli-2.29.3}/PKG-INFO +1 -1
  7. {mycli-2.29.1 → mycli-2.29.3}/changelog.md +16 -0
  8. {mycli-2.29.1 → mycli-2.29.3}/docker/resources/test_db-1.0.7.tar.gz +1 -1
  9. {mycli-2.29.1 → mycli-2.29.3/mycli.egg-info}/PKG-INFO +1 -1
  10. {mycli-2.29.1 → mycli-2.29.3}/mycli.egg-info/SOURCES.txt +2 -0
  11. {mycli-2.29.1 → mycli-2.29.3}/mycli.egg-info/scm_file_list.json +2 -0
  12. mycli-2.29.3/mycli.egg-info/scm_version.json +8 -0
  13. {mycli-2.29.1 → mycli-2.29.3}/pyproject.toml +2 -2
  14. mycli-2.29.1/.github/workflows/typecheck.yml +0 -38
  15. mycli-2.29.1/mycli.egg-info/scm_version.json +0 -8
  16. {mycli-2.29.1 → mycli-2.29.3}/.git-blame-ignore-revs +0 -0
  17. {mycli-2.29.1 → mycli-2.29.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  18. {mycli-2.29.1 → mycli-2.29.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  19. {mycli-2.29.1 → mycli-2.29.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  20. {mycli-2.29.1 → mycli-2.29.3}/.github/dependabot.yml +0 -0
  21. {mycli-2.29.1 → mycli-2.29.3}/.github/workflows/ci.yml +0 -0
  22. {mycli-2.29.1 → mycli-2.29.3}/.gitignore +0 -0
  23. {mycli-2.29.1 → mycli-2.29.3}/AGENTS.md +0 -0
  24. {mycli-2.29.1 → mycli-2.29.3}/AUTHORS.md +0 -0
  25. {mycli-2.29.1 → mycli-2.29.3}/CONTRIBUTING.md +0 -0
  26. {mycli-2.29.1 → mycli-2.29.3}/LICENSE.txt +0 -0
  27. {mycli-2.29.1 → mycli-2.29.3}/MANIFEST.in +0 -0
  28. {mycli-2.29.1 → mycli-2.29.3}/README.md +0 -0
  29. {mycli-2.29.1 → mycli-2.29.3}/SPONSORS.md +0 -0
  30. {mycli-2.29.1 → mycli-2.29.3}/doc/cookbook.md +0 -0
  31. {mycli-2.29.1 → mycli-2.29.3}/doc/key_bindings.md +0 -0
  32. {mycli-2.29.1 → mycli-2.29.3}/doc/known_bugs.md +0 -0
  33. {mycli-2.29.1 → mycli-2.29.3}/doc/llm.md +0 -0
  34. {mycli-2.29.1 → mycli-2.29.3}/doc/screenshots/main.gif +0 -0
  35. {mycli-2.29.1 → mycli-2.29.3}/doc/screenshots/polars_describe.png +0 -0
  36. {mycli-2.29.1 → mycli-2.29.3}/doc/screenshots/polars_group_by.png +0 -0
  37. {mycli-2.29.1 → mycli-2.29.3}/doc/screenshots/polars_histogram.png +0 -0
  38. {mycli-2.29.1 → mycli-2.29.3}/doc/screenshots/polars_pivot.png +0 -0
  39. {mycli-2.29.1 → mycli-2.29.3}/doc/screenshots/tables.png +0 -0
  40. {mycli-2.29.1 → mycli-2.29.3}/doc/transforms.md +0 -0
  41. {mycli-2.29.1 → mycli-2.29.3}/docker/Dockerfile +0 -0
  42. {mycli-2.29.1 → mycli-2.29.3}/docker/resources/test_db_license.md +0 -0
  43. {mycli-2.29.1 → mycli-2.29.3}/mycli/AUTHORS.txt +0 -0
  44. {mycli-2.29.1 → mycli-2.29.3}/mycli/SPONSORS.txt +0 -0
  45. {mycli-2.29.1 → mycli-2.29.3}/mycli/TIPS.txt +0 -0
  46. {mycli-2.29.1 → mycli-2.29.3}/mycli/__init__.py +0 -0
  47. {mycli-2.29.1 → mycli-2.29.3}/mycli/app_state.py +0 -0
  48. {mycli-2.29.1 → mycli-2.29.3}/mycli/cli_runner.py +0 -0
  49. {mycli-2.29.1 → mycli-2.29.3}/mycli/client.py +0 -0
  50. {mycli-2.29.1 → mycli-2.29.3}/mycli/client_commands.py +0 -0
  51. {mycli-2.29.1 → mycli-2.29.3}/mycli/client_connection.py +0 -0
  52. {mycli-2.29.1 → mycli-2.29.3}/mycli/client_query.py +0 -0
  53. {mycli-2.29.1 → mycli-2.29.3}/mycli/compat.py +0 -0
  54. {mycli-2.29.1 → mycli-2.29.3}/mycli/config.py +0 -0
  55. {mycli-2.29.1 → mycli-2.29.3}/mycli/constants.py +0 -0
  56. {mycli-2.29.1 → mycli-2.29.3}/mycli/main.py +0 -0
  57. {mycli-2.29.1 → mycli-2.29.3}/mycli/main_modes/batch.py +0 -0
  58. {mycli-2.29.1 → mycli-2.29.3}/mycli/main_modes/checkup.py +0 -0
  59. {mycli-2.29.1 → mycli-2.29.3}/mycli/main_modes/completions.py +0 -0
  60. {mycli-2.29.1 → mycli-2.29.3}/mycli/main_modes/execute.py +0 -0
  61. {mycli-2.29.1 → mycli-2.29.3}/mycli/main_modes/list_dsn.py +0 -0
  62. {mycli-2.29.1 → mycli-2.29.3}/mycli/main_modes/repl.py +0 -0
  63. {mycli-2.29.1 → mycli-2.29.3}/mycli/myclirc +0 -0
  64. {mycli-2.29.1 → mycli-2.29.3}/mycli/output.py +0 -0
  65. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/__init__.py +0 -0
  66. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/completion/__init__.py +0 -0
  67. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/completion/completion_engine.py +0 -0
  68. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/completion/completion_refresher.py +0 -0
  69. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/completion/schema_prefetcher.py +0 -0
  70. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/completion/sql_completer.py +0 -0
  71. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/credentials/__init__.py +0 -0
  72. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/credentials/password_sources.py +0 -0
  73. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/dataframes/__init__.py +0 -0
  74. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/dataframes/completion.py +0 -0
  75. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/dataframes/transform.py +0 -0
  76. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/execution/__init__.py +0 -0
  77. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/execution/background_runner.py +0 -0
  78. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/execution/sql_execute.py +0 -0
  79. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/__init__.py +0 -0
  80. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/boundary/__init__.py +0 -0
  81. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/boundary/boundary_tunnel.py +0 -0
  82. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/fzf/__init__.py +0 -0
  83. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/fzf/fzf.py +0 -0
  84. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/kubernetes/__init__.py +0 -0
  85. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/kubernetes/kubectl_tunnel.py +0 -0
  86. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/macos/__init__.py +0 -0
  87. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/macos/macos_keychain.py +0 -0
  88. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/openssh/__init__.py +0 -0
  89. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/openssh/ssh_tunnel.py +0 -0
  90. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/vault/__init__.py +0 -0
  91. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/integrations/vault/vault_credentials.py +0 -0
  92. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/prompt_toolkit/__init__.py +0 -0
  93. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/prompt_toolkit/fzf_history.py +0 -0
  94. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/prompt_toolkit/history.py +0 -0
  95. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/prompt_toolkit/key_bindings.py +0 -0
  96. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/prompt_toolkit/multiline.py +0 -0
  97. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/prompt_toolkit/style.py +0 -0
  98. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/prompt_toolkit/toolbar.py +0 -0
  99. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/prompt_toolkit/utils.py +0 -0
  100. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/pygments/__init__.py +0 -0
  101. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/pygments/mycli_lexer.py +0 -0
  102. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/redirection/__init__.py +0 -0
  103. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/redirection/hybrid_redirection.py +0 -0
  104. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/special_commands/__init__.py +0 -0
  105. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/special_commands/db_commands.py +0 -0
  106. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/special_commands/delimiter_command.py +0 -0
  107. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/special_commands/dsn_aliases.py +0 -0
  108. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/special_commands/favorite_queries.py +0 -0
  109. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/special_commands/io_commands.py +0 -0
  110. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/special_commands/llm.py +0 -0
  111. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/special_commands/main.py +0 -0
  112. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/special_commands/source.py +0 -0
  113. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/special_commands/special_command_utils.py +0 -0
  114. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/sql_result/__init__.py +0 -0
  115. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/sql_result/sql_result.py +0 -0
  116. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/tabular_output/__init__.py +0 -0
  117. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/tabular_output/sql_format.py +0 -0
  118. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/utils/__init__.py +0 -0
  119. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/utils/batch_utils.py +0 -0
  120. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/utils/cli_utils.py +0 -0
  121. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/utils/interactive_utils.py +0 -0
  122. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/utils/key_binding_utils.py +0 -0
  123. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/utils/keyring_utils.py +0 -0
  124. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/utils/path_utils.py +0 -0
  125. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/utils/sql_utils.py +0 -0
  126. {mycli-2.29.1 → mycli-2.29.3}/mycli/packages/utils/string_utils.py +0 -0
  127. {mycli-2.29.1 → mycli-2.29.3}/mycli/resources/completions/bash/mycli +0 -0
  128. {mycli-2.29.1 → mycli-2.29.3}/mycli/resources/completions/fish/mycli.fish +0 -0
  129. {mycli-2.29.1 → mycli-2.29.3}/mycli/resources/completions/zsh/_mycli +0 -0
  130. {mycli-2.29.1 → mycli-2.29.3}/mycli/types.py +0 -0
  131. {mycli-2.29.1 → mycli-2.29.3}/mycli.egg-info/dependency_links.txt +0 -0
  132. {mycli-2.29.1 → mycli-2.29.3}/mycli.egg-info/entry_points.txt +0 -0
  133. {mycli-2.29.1 → mycli-2.29.3}/mycli.egg-info/requires.txt +0 -0
  134. {mycli-2.29.1 → mycli-2.29.3}/mycli.egg-info/top_level.txt +0 -0
  135. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/__init__.py +0 -0
  136. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/__init__.py +0 -0
  137. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/auto_vertical.feature +0 -0
  138. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/basic_commands.feature +0 -0
  139. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/connection.feature +0 -0
  140. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/crud_database.feature +0 -0
  141. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/crud_table.feature +0 -0
  142. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/db_utils.py +0 -0
  143. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/environment.py +0 -0
  144. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/fixture_data/help_commands.txt +0 -0
  145. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/fixture_utils.py +0 -0
  146. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/iocommands.feature +0 -0
  147. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/named_queries.feature +0 -0
  148. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/specials.feature +0 -0
  149. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/__init__.py +0 -0
  150. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/auto_vertical.py +0 -0
  151. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/basic_commands.py +0 -0
  152. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/connection.py +0 -0
  153. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/crud_database.py +0 -0
  154. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/crud_table.py +0 -0
  155. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/iocommands.py +0 -0
  156. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/named_queries.py +0 -0
  157. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/specials.py +0 -0
  158. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/utils.py +0 -0
  159. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/steps/wrappers.py +0 -0
  160. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/features/wrappager.py +0 -0
  161. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/myclirc +0 -0
  162. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/mylogin.cnf +0 -0
  163. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/conftest.py +0 -0
  164. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_app_state.py +0 -0
  165. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_background_runner.py +0 -0
  166. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_bash_completion.py +0 -0
  167. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_batch_utils.py +0 -0
  168. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_boundary_tunnel.py +0 -0
  169. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_checkup.py +0 -0
  170. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_cli_runner.py +0 -0
  171. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_cli_utils.py +0 -0
  172. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_clibuffer.py +0 -0
  173. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_client.py +0 -0
  174. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_client_commands.py +0 -0
  175. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_client_connection.py +0 -0
  176. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_client_query.py +0 -0
  177. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_completer_use_switch.py +0 -0
  178. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_completion_engine.py +0 -0
  179. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_completion_refresher.py +0 -0
  180. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_config.py +0 -0
  181. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_delimitercommand.py +0 -0
  182. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_dsn_aliases.py +0 -0
  183. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_favoritequeries.py +0 -0
  184. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_fish_completion.py +0 -0
  185. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_fzf.py +0 -0
  186. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_hybrid_redirection.py +0 -0
  187. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_interactive_utils.py +0 -0
  188. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_key_binding_utils.py +0 -0
  189. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_key_bindings.py +0 -0
  190. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_keyring_utils.py +0 -0
  191. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_kubectl_tunnel.py +0 -0
  192. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_macos_keychain.py +0 -0
  193. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_main.py +0 -0
  194. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_main_modes_batch.py +0 -0
  195. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_main_modes_execute.py +0 -0
  196. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_main_modes_list_dsn.py +0 -0
  197. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_main_modes_repl.py +0 -0
  198. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_naive_completion.py +0 -0
  199. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_output.py +0 -0
  200. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_password_sources.py +0 -0
  201. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_path_utils.py +0 -0
  202. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_polars_completion.py +0 -0
  203. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_polars_transform.py +0 -0
  204. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_prompt_toolkit_fzf_history.py +0 -0
  205. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_prompt_toolkit_history.py +0 -0
  206. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_prompt_toolkit_style.py +0 -0
  207. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_prompt_toolkit_toolbar.py +0 -0
  208. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_prompt_toolkit_utils.py +0 -0
  209. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_schema_prefetcher.py +0 -0
  210. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_smart_completion_public_schema_only.py +0 -0
  211. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_special_commands_init.py +0 -0
  212. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_special_db_commands.py +0 -0
  213. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_special_io_commands.py +0 -0
  214. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_special_llm.py +0 -0
  215. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_special_main.py +0 -0
  216. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_special_source.py +0 -0
  217. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_special_utils.py +0 -0
  218. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_sql_execute.py +0 -0
  219. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_sql_utils.py +0 -0
  220. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_sqlcompleter.py +0 -0
  221. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_sqlresult.py +0 -0
  222. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_ssh_tunnel.py +0 -0
  223. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_string_utils.py +0 -0
  224. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_tabular_output.py +0 -0
  225. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_vault.py +0 -0
  226. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/pytests/test_zsh_completion.py +0 -0
  227. {mycli-2.29.1 → mycli-2.29.3}/mycli_test/utils.py +0 -0
  228. {mycli-2.29.1 → mycli-2.29.3}/setup.cfg +0 -0
@@ -0,0 +1,13 @@
1
+ name: Lint
2
+ description: Run Lint Checks
3
+
4
+ runs:
5
+ using: composite
6
+ steps:
7
+ - name: Run ruff check
8
+ uses: astral-sh/ruff-action@278981a28ce3188b1e39527901f38254bf3aac89 # v4.1.0
9
+
10
+ - name: Run ruff format
11
+ uses: astral-sh/ruff-action@278981a28ce3188b1e39527901f38254bf3aac89 # v4.1.0
12
+ with:
13
+ args: 'format --check'
@@ -0,0 +1,24 @@
1
+ name: Typecheck
2
+ description: Run Typecheck
3
+
4
+ runs:
5
+ using: composite
6
+ steps:
7
+ - name: Set up Python
8
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
9
+ with:
10
+ python-version: '3.14'
11
+
12
+ - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
13
+ with:
14
+ version: 'latest'
15
+
16
+ - name: Install dependencies
17
+ shell: bash
18
+ run: uv sync --extra dev,llm,dataframe
19
+
20
+ - name: Run mypy
21
+ shell: bash
22
+ run: |
23
+ uv run --no-sync --frozen -- python -m ensurepip
24
+ uv run --no-sync --frozen -- python -m mypy --no-pretty --install-types --non-interactive .
@@ -17,13 +17,8 @@ jobs:
17
17
  runs-on: ubuntu-latest
18
18
 
19
19
  steps:
20
- - name: Check out Git repository
20
+ - name: Check out Git Repository
21
21
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
22
22
 
23
- - name: Run ruff check
24
- uses: astral-sh/ruff-action@278981a28ce3188b1e39527901f38254bf3aac89 # v4.1.0
25
-
26
- - name: Run ruff format
27
- uses: astral-sh/ruff-action@278981a28ce3188b1e39527901f38254bf3aac89 # v4.1.0
28
- with:
29
- args: 'format --check'
23
+ - name: Lint Action
24
+ uses: ./.github/actions/lint
@@ -22,10 +22,29 @@ jobs:
22
22
  run: |
23
23
  if grep -q TBD changelog.md; then false; fi
24
24
 
25
- tests:
25
+ lint:
26
26
  runs-on: ubuntu-latest
27
27
  needs: [docs]
28
28
 
29
+ steps:
30
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
31
+
32
+ - name: Lint Action
33
+ uses: ./.github/actions/lint
34
+
35
+ typecheck:
36
+ runs-on: ubuntu-latest
37
+ needs: [lint]
38
+
39
+ steps:
40
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
41
+
42
+ - name: Typecheck Action
43
+ uses: ./.github/actions/typecheck
44
+
45
+ tests:
46
+ runs-on: ubuntu-latest
47
+ needs: [typecheck]
29
48
  strategy:
30
49
  matrix:
31
50
  python-version: ["3.11", "3.12", "3.13", "3.14"]
@@ -54,16 +73,6 @@ jobs:
54
73
  sleep 5
55
74
  done
56
75
 
57
- # arguably this should be made identical to CI for PRs
58
- # better would be a composite GH action
59
- - name: Run Style Checks
60
- run: ./.venv/bin/tox -e style
61
-
62
- # arguably this should be made identical to CI for PRs
63
- # better would be a composite GH action
64
- - name: Run Typechecker
65
- run: ./.venv/bin/tox -e typecheck
66
-
67
76
  - name: Pytest / behave
68
77
  env:
69
78
  PYTEST_PASSWORD: root
@@ -74,6 +83,7 @@ jobs:
74
83
  tests-macos:
75
84
  name: Tests macOS
76
85
  runs-on: macos-latest
86
+ needs: [typecheck]
77
87
 
78
88
  strategy:
79
89
  fail-fast: false
@@ -124,6 +134,7 @@ jobs:
124
134
  tests-windows:
125
135
  name: Tests Windows
126
136
  runs-on: windows-latest
137
+ needs: [typecheck]
127
138
 
128
139
  strategy:
129
140
  fail-fast: false
@@ -163,6 +174,7 @@ jobs:
163
174
  tests-wsl:
164
175
  name: Tests WSL
165
176
  runs-on: windows-latest
177
+ needs: [typecheck]
166
178
 
167
179
  steps:
168
180
  - uses: vampire/setup-wsl@d1da7f2c0322a5ee4f24975344f67fc0f5baf364 # v7.0.0
@@ -0,0 +1,24 @@
1
+ name: Typecheck
2
+
3
+ on:
4
+ pull_request:
5
+ paths-ignore:
6
+ - '**.md'
7
+ - '**.rst'
8
+ - 'LICENSE.txt'
9
+ - 'doc/**/*.txt'
10
+ - '**/AUTHORS.txt'
11
+ - '**/SPONSORS.txt'
12
+ - '**/TIPS.txt'
13
+
14
+ jobs:
15
+ typecheck:
16
+ name: Typecheck
17
+ runs-on: ubuntu-latest
18
+
19
+ steps:
20
+ - name: Check out Git Repository
21
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
22
+
23
+ - name: Typecheck Action
24
+ uses: ./.github/actions/typecheck
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mycli
3
- Version: 2.29.1
3
+ Version: 2.29.3
4
4
  Summary: Rich MySQL terminal client with autocompletion, syntax highlighting, and dataframes
5
5
  Author: Mycli Core Team
6
6
  License-Expression: BSD-3-Clause
@@ -1,3 +1,19 @@
1
+ v2.29.3 (2026/10/11)
2
+ ==============
3
+
4
+ Internal
5
+ --------
6
+ * Improve `publish.yml` workflow dependencies.
7
+
8
+
9
+ v2.29.2 (2026/10/11)
10
+ ==============
11
+
12
+ Internal
13
+ --------
14
+ * Move typecheck and lint CI to composite GitHub Actions.
15
+
16
+
1
17
  v2.29.1 (2026/10/10)
2
18
  ==============
3
19
 
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
- name: mycli-2.29.1/docker/resources/test_db-1.0.7.tar.gz
2
+ name: mycli-2.29.3/docker/resources/test_db-1.0.7.tar.gz
3
3
  size: 35607473 bytes
4
4
  sha256: c44c140f352f35d47fdb65df60f52b779ef552822fad6c4efcfa7b134c3faf84
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mycli
3
- Version: 2.29.1
3
+ Version: 2.29.3
4
4
  Summary: Rich MySQL terminal client with autocompletion, syntax highlighting, and dataframes
5
5
  Author: Mycli Core Team
6
6
  License-Expression: BSD-3-Clause
@@ -13,6 +13,8 @@ pyproject.toml
13
13
  .github/dependabot.yml
14
14
  .github/ISSUE_TEMPLATE/bug_report.md
15
15
  .github/ISSUE_TEMPLATE/feature_request.md
16
+ .github/actions/lint/action.yml
17
+ .github/actions/typecheck/action.yml
16
18
  .github/workflows/ci.yml
17
19
  .github/workflows/lint.yml
18
20
  .github/workflows/publish.yml
@@ -4,6 +4,8 @@
4
4
  ".github/ISSUE_TEMPLATE/bug_report.md",
5
5
  ".github/ISSUE_TEMPLATE/feature_request.md",
6
6
  ".github/PULL_REQUEST_TEMPLATE.md",
7
+ ".github/actions/lint/action.yml",
8
+ ".github/actions/typecheck/action.yml",
7
9
  ".github/dependabot.yml",
8
10
  ".github/workflows/ci.yml",
9
11
  ".github/workflows/lint.yml",
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "2.29.3",
3
+ "distance": 0,
4
+ "node": "gb21b607e181a92210e26ce923655c4b7180e928f",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-10-11"
8
+ }
@@ -84,7 +84,7 @@ dev = [
84
84
  "pytest-random-order ~= 1.2.0",
85
85
  "tox ~= 4.35.0",
86
86
  "pdbpp ~= 0.11.7",
87
- "ruff ~= 0.16.5",
87
+ "ruff ~= 0.16.5", # keep in sync with the tool.tox.env.style stanza below
88
88
  "virtualenv ~= 21.7.12", # transitive dependency forced for "uv audit"
89
89
  ]
90
90
 
@@ -167,7 +167,7 @@ allowlist_externals = ['rm', 'uv']
167
167
 
168
168
  [tool.tox.env.style]
169
169
  skip_install = true
170
- deps = ['ruff~=0.16.5']
170
+ deps = ['ruff~=0.16.5'] # keep in sync with dev dependency group above
171
171
  commands = [['ruff', 'check'],
172
172
  ['ruff', 'format', '--diff']]
173
173
 
@@ -1,38 +0,0 @@
1
- name: Typecheck
2
-
3
- on:
4
- pull_request:
5
- paths-ignore:
6
- - '**.md'
7
- - '**.rst'
8
- - 'LICENSE.txt'
9
- - 'doc/**/*.txt'
10
- - '**/AUTHORS.txt'
11
- - '**/SPONSORS.txt'
12
- - '**/TIPS.txt'
13
-
14
- jobs:
15
- typecheck:
16
- name: Typecheck
17
- runs-on: ubuntu-latest
18
-
19
- steps:
20
- - name: Check out Git repository
21
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
22
-
23
- - name: Set up Python
24
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
25
- with:
26
- python-version: '3.14'
27
-
28
- - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
29
- with:
30
- version: 'latest'
31
-
32
- - name: Install dependencies
33
- run: uv sync --extra dev,llm,dataframe
34
-
35
- - name: Run mypy
36
- run: |
37
- uv run --no-sync --frozen -- python -m ensurepip
38
- uv run --no-sync --frozen -- python -m mypy --no-pretty --install-types --non-interactive .
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "2.29.1",
3
- "distance": 0,
4
- "node": "g152f7ea3fdb14e87cef91a805c9405919757ccaa",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-10-10"
8
- }
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