sqlit-tui 1.3.1__tar.gz → 1.4.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 (750) hide show
  1. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/PKG-INFO +27 -4
  2. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/README.md +14 -3
  3. sqlit_tui-1.4.0/flake.nix +138 -0
  4. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/infra/docker/docker-compose.test.yml +118 -0
  5. sqlit_tui-1.4.0/infra/docker/impala_quickstart_conf/hive-site.xml +74 -0
  6. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/pyproject.toml +25 -1
  7. sqlit_tui-1.4.0/sqlit/_version.py +24 -0
  8. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/cli.py +7 -1
  9. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/core/binding_contexts.py +4 -0
  10. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/core/keymap.py +61 -0
  11. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/core/vim.py +2 -0
  12. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/connection_flow.py +14 -0
  13. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/cli/commands.py +9 -1
  14. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/cli/helpers.py +11 -1
  15. sqlit_tui-1.4.0/sqlit/domains/connections/cli/prompts.py +68 -0
  16. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/aws/cache.py +3 -3
  17. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/azure/cache.py +3 -3
  18. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/gcp/cache.py +3 -3
  19. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/domain/config.py +25 -2
  20. sqlit_tui-1.4.0/sqlit/domains/connections/domain/password_command.py +35 -0
  21. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/domain/passwords.py +10 -2
  22. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/adapters/base.py +17 -1
  23. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/d1/adapter.py +2 -2
  24. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/hana/adapter.py +4 -8
  25. sqlit_tui-1.4.0/sqlit/domains/connections/providers/impala/__init__.py +1 -0
  26. sqlit_tui-1.4.0/sqlit/domains/connections/providers/impala/adapter.py +176 -0
  27. sqlit_tui-1.4.0/sqlit/domains/connections/providers/impala/provider.py +29 -0
  28. sqlit_tui-1.4.0/sqlit/domains/connections/providers/impala/schema.py +61 -0
  29. sqlit_tui-1.4.0/sqlit/domains/connections/providers/osquery/__init__.py +1 -0
  30. sqlit_tui-1.4.0/sqlit/domains/connections/providers/osquery/adapter.py +237 -0
  31. sqlit_tui-1.4.0/sqlit/domains/connections/providers/osquery/provider.py +29 -0
  32. sqlit_tui-1.4.0/sqlit/domains/connections/providers/osquery/schema.py +54 -0
  33. sqlit_tui-1.4.0/sqlit/domains/connections/providers/spanner/__init__.py +1 -0
  34. sqlit_tui-1.4.0/sqlit/domains/connections/providers/spanner/adapter.py +378 -0
  35. sqlit_tui-1.4.0/sqlit/domains/connections/providers/spanner/provider.py +36 -0
  36. sqlit_tui-1.4.0/sqlit/domains/connections/providers/spanner/schema.py +83 -0
  37. sqlit_tui-1.4.0/sqlit/domains/connections/providers/surrealdb/__init__.py +1 -0
  38. sqlit_tui-1.4.0/sqlit/domains/connections/providers/surrealdb/adapter.py +300 -0
  39. sqlit_tui-1.4.0/sqlit/domains/connections/providers/surrealdb/provider.py +29 -0
  40. sqlit_tui-1.4.0/sqlit/domains/connections/providers/surrealdb/schema.py +50 -0
  41. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/teradata/adapter.py +50 -30
  42. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/store/connections.py +1 -1
  43. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/mixins/connection.py +2 -2
  44. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/process_worker/app/process_worker.py +18 -0
  45. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/motions/lines.py +18 -0
  46. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/motions/registry.py +2 -0
  47. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/state/__init__.py +4 -0
  48. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/state/query_normal.py +6 -0
  49. sqlit_tui-1.4.0/sqlit/domains/query/state/query_visual.py +109 -0
  50. sqlit_tui-1.4.0/sqlit/domains/query/state/query_visual_line.py +114 -0
  51. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/store/history.py +12 -3
  52. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/store/memory.py +11 -8
  53. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/store/starred.py +1 -1
  54. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query.py +4 -0
  55. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query_editing_cursor.py +40 -5
  56. sqlit_tui-1.4.0/sqlit/domains/query/ui/mixins/query_editing_visual.py +166 -0
  57. sqlit_tui-1.4.0/sqlit/domains/query/ui/mixins/query_editing_visual_line.py +198 -0
  58. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query_execution.py +40 -5
  59. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query_results.py +22 -0
  60. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/screens/query_history.py +3 -1
  61. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/state/results_focused.py +8 -0
  62. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/ui/mixins/results.py +93 -0
  63. sqlit_tui-1.4.0/sqlit/domains/results/ui/screens/__init__.py +5 -0
  64. sqlit_tui-1.4.0/sqlit/domains/results/ui/screens/column_picker.py +149 -0
  65. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/commands/credentials.py +4 -4
  66. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/main.css +7 -0
  67. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/main.py +1 -1
  68. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/theme_manager.py +2 -1
  69. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/state/machine.py +27 -1
  70. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/store/settings.py +1 -1
  71. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/ui/mixins/ui_status.py +18 -8
  72. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/ui/screens/theme.py +1 -1
  73. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/core/protocols.py +2 -1
  74. sqlit_tui-1.4.0/sqlit/shared/core/store.py +152 -0
  75. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets_autocomplete.py +29 -14
  76. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets_stacked_results.py +6 -2
  77. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets_tables.py +3 -2
  78. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets_text_area.py +38 -0
  79. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/conftest.py +3 -0
  80. sqlit_tui-1.4.0/tests/connections/providers/hana/test_get_columns.py +95 -0
  81. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/d1/index.js +1 -1
  82. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/d1.py +1 -1
  83. sqlit_tui-1.4.0/tests/fixtures/data.duckdb +0 -0
  84. sqlit_tui-1.4.0/tests/fixtures/impala.py +197 -0
  85. sqlit_tui-1.4.0/tests/fixtures/spanner.py +225 -0
  86. sqlit_tui-1.4.0/tests/fixtures/surrealdb.py +191 -0
  87. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/helpers.py +3 -0
  88. sqlit_tui-1.4.0/tests/integration/test_multi_statement_limits.py +329 -0
  89. sqlit_tui-1.4.0/tests/test_impala.py +87 -0
  90. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_password_prompts.py +126 -0
  91. sqlit_tui-1.4.0/tests/test_spanner.py +164 -0
  92. sqlit_tui-1.4.0/tests/test_surrealdb.py +266 -0
  93. sqlit_tui-1.4.0/tests/ui/keybindings/test_results_vim_motions.py +199 -0
  94. sqlit_tui-1.4.0/tests/ui/keybindings/test_visual_mode.py +452 -0
  95. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/mocks.py +5 -2
  96. sqlit_tui-1.4.0/tests/ui/test_autocomplete_dropdown.py +96 -0
  97. sqlit_tui-1.4.0/tests/ui/test_telescope_fresh_start.py +102 -0
  98. sqlit_tui-1.4.0/tests/unit/__init__.py +0 -0
  99. sqlit_tui-1.4.0/tests/unit/providers/__init__.py +1 -0
  100. sqlit_tui-1.4.0/tests/unit/providers/test_osquery_adapter.py +575 -0
  101. sqlit_tui-1.4.0/tests/unit/test_config_dir_resolution.py +164 -0
  102. sqlit_tui-1.4.0/tests/unit/test_connection_config_from_dict.py +207 -0
  103. sqlit_tui-1.4.0/tests/unit/test_connection_flow.py +48 -0
  104. sqlit_tui-1.4.0/tests/unit/test_password_command.py +52 -0
  105. sqlit_tui-1.4.0/tests/unit/test_process_worker_pickle_safety.py +138 -0
  106. sqlit_tui-1.4.0/tests/unit/test_sanitize_row.py +32 -0
  107. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_vim_motions.py +1 -1
  108. sqlit_tui-1.4.0/tests/unit/test_vim_visual_mode.py +238 -0
  109. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/uv.lock +1296 -2
  110. sqlit_tui-1.3.1/extras/nvim/README.md +0 -43
  111. sqlit_tui-1.3.1/extras/nvim/lua/sqlit/init.lua +0 -59
  112. sqlit_tui-1.3.1/extras/nvim/plugin/sqlit.lua +0 -3
  113. sqlit_tui-1.3.1/flake.nix +0 -106
  114. sqlit_tui-1.3.1/sqlit/_version.py +0 -34
  115. sqlit_tui-1.3.1/sqlit/domains/connections/cli/prompts.py +0 -23
  116. sqlit_tui-1.3.1/sqlit/shared/core/store.py +0 -86
  117. sqlit_tui-1.3.1/sqlit/shared/ui/screens/__init__.py +0 -1
  118. sqlit_tui-1.3.1/tests/fixtures/data.duckdb +0 -0
  119. sqlit_tui-1.3.1/tests/fixtures/data.duckdb.wal +0 -0
  120. sqlit_tui-1.3.1/tests/unit/test_connection_config_from_dict.py +0 -70
  121. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/.github/workflows/ci.yml +0 -0
  122. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/.github/workflows/release.yml +0 -0
  123. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/.gitignore +0 -0
  124. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/.pre-commit-config.yaml +0 -0
  125. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/CONTRIBUTING.md +0 -0
  126. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/LICENSE +0 -0
  127. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/assets/favorites/logo.png +0 -0
  128. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/assets/favorites/logo_sqlit.png +0 -0
  129. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/aur/.SRCINFO +0 -0
  130. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/aur/PKGBUILD +0 -0
  131. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/config/mock-ssh-missing.json +0 -0
  132. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/config/settings.template.json +0 -0
  133. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/config/sqlit-config/settings.json +0 -0
  134. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/autocomplete-01-basics.gif +0 -0
  135. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/autocomplete-02-select-from.gif +0 -0
  136. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/autocomplete-03-joins.gif +0 -0
  137. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/autocomplete-04-clauses.gif +0 -0
  138. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/d1-demo.json +0 -0
  139. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/demo-connect.gif +0 -0
  140. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/demo-d1.gif +0 -0
  141. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/demo-docker-picker.gif +0 -0
  142. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/demo-filter/demo-filter.gif +0 -0
  143. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/demo-history.gif +0 -0
  144. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/demo-providers.gif +0 -0
  145. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/demo-query.gif +0 -0
  146. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/demo-sqlite.gif +0 -0
  147. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/demos/demo-supabase-mock.gif +0 -0
  148. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/catppuccin-latte.png +0 -0
  149. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/catppuccin-mocha.png +0 -0
  150. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/dracula.png +0 -0
  151. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/everforest.png +0 -0
  152. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/flexoki.png +0 -0
  153. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/gruvbox.png +0 -0
  154. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/hackerman.png +0 -0
  155. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/kanagawa.png +0 -0
  156. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/matte-black.png +0 -0
  157. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/monokai.png +0 -0
  158. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/nord.png +0 -0
  159. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/osaka-jade.png +0 -0
  160. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/ristretto.png +0 -0
  161. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/rose-pine-dawn.png +0 -0
  162. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/rose-pine-moon.png +0 -0
  163. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/rose-pine.png +0 -0
  164. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/solarized-dark.png +0 -0
  165. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/solarized-light.png +0 -0
  166. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/sqlit-light.png +0 -0
  167. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/sqlit.png +0 -0
  168. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/textual-ansi.png +0 -0
  169. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/textual-dark.png +0 -0
  170. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/textual-light.png +0 -0
  171. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/docs/screenshots/all/tokyo-night.png +0 -0
  172. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/flake.lock +0 -0
  173. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/pyrightconfig.json +0 -0
  174. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/__init__.py +0 -0
  175. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/core/__init__.py +0 -0
  176. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/core/action_validation.py +0 -0
  177. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/core/connection_manager.py +0 -0
  178. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/core/input_context.py +0 -0
  179. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/core/key_router.py +0 -0
  180. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/core/leader_commands.py +0 -0
  181. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/core/state_base.py +0 -0
  182. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/__init__.py +0 -0
  183. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/__init__.py +0 -0
  184. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/__init__.py +0 -0
  185. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/cloud_actions.py +0 -0
  186. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/credentials.py +0 -0
  187. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/executor.py +0 -0
  188. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/install_strategy.py +0 -0
  189. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/installer.py +0 -0
  190. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/mock_adapter_core.py +0 -0
  191. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/mock_data.py +0 -0
  192. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/mock_default_adapters.py +0 -0
  193. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/mock_profiles.py +0 -0
  194. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/mock_provider.py +0 -0
  195. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/mock_settings.py +0 -0
  196. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/mocks.py +0 -0
  197. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/persist_utils.py +0 -0
  198. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/save_connection.py +0 -0
  199. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/session.py +0 -0
  200. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/tunnel.py +0 -0
  201. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/app/url_parser.py +0 -0
  202. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/cli/__init__.py +0 -0
  203. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/__init__.py +0 -0
  204. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/__init__.py +0 -0
  205. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/aws/__init__.py +0 -0
  206. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/aws/provider.py +0 -0
  207. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/azure/__init__.py +0 -0
  208. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/azure/cli.py +0 -0
  209. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/azure/discovery.py +0 -0
  210. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/azure/firewall.py +0 -0
  211. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/azure/models.py +0 -0
  212. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/azure/provider.py +0 -0
  213. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/base.py +0 -0
  214. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/gcp/__init__.py +0 -0
  215. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/gcp/provider.py +0 -0
  216. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/mock.py +0 -0
  217. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/cloud/registry.py +0 -0
  218. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/discovery/docker_detector.py +0 -0
  219. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/domain/__init__.py +0 -0
  220. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/__init__.py +0 -0
  221. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/adapter_provider.py +0 -0
  222. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/adapters/__init__.py +0 -0
  223. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/athena/__init__.py +0 -0
  224. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/athena/adapter.py +0 -0
  225. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/athena/provider.py +0 -0
  226. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/athena/schema.py +0 -0
  227. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/bigquery/__init__.py +0 -0
  228. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/bigquery/adapter.py +0 -0
  229. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/bigquery/provider.py +0 -0
  230. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/bigquery/schema.py +0 -0
  231. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/catalog.py +0 -0
  232. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/clickhouse/__init__.py +0 -0
  233. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/clickhouse/adapter.py +0 -0
  234. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/clickhouse/provider.py +0 -0
  235. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/clickhouse/schema.py +0 -0
  236. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/cockroachdb/__init__.py +0 -0
  237. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/cockroachdb/adapter.py +0 -0
  238. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/cockroachdb/provider.py +0 -0
  239. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/cockroachdb/schema.py +0 -0
  240. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/config_service.py +0 -0
  241. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/d1/__init__.py +0 -0
  242. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/d1/provider.py +0 -0
  243. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/d1/schema.py +0 -0
  244. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/db2/__init__.py +0 -0
  245. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/db2/adapter.py +0 -0
  246. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/db2/provider.py +0 -0
  247. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/db2/schema.py +0 -0
  248. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/docker.py +0 -0
  249. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/driver.py +0 -0
  250. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/duckdb/__init__.py +0 -0
  251. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/duckdb/adapter.py +0 -0
  252. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/duckdb/provider.py +0 -0
  253. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/duckdb/schema.py +0 -0
  254. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/exceptions.py +0 -0
  255. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/explorer_nodes.py +0 -0
  256. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/firebird/__init__.py +0 -0
  257. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/firebird/adapter.py +0 -0
  258. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/firebird/provider.py +0 -0
  259. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/firebird/schema.py +0 -0
  260. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/flight/__init__.py +0 -0
  261. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/flight/adapter.py +0 -0
  262. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/flight/provider.py +0 -0
  263. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/flight/schema.py +0 -0
  264. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/hana/__init__.py +0 -0
  265. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/hana/provider.py +0 -0
  266. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/hana/schema.py +0 -0
  267. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mariadb/__init__.py +0 -0
  268. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mariadb/adapter.py +0 -0
  269. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mariadb/provider.py +0 -0
  270. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mariadb/schema.py +0 -0
  271. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/metadata.py +0 -0
  272. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/model.py +0 -0
  273. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/motherduck/__init__.py +0 -0
  274. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/motherduck/adapter.py +0 -0
  275. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/motherduck/provider.py +0 -0
  276. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/motherduck/schema.py +0 -0
  277. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mssql/__init__.py +0 -0
  278. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mssql/adapter.py +0 -0
  279. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mssql/provider.py +0 -0
  280. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mssql/schema.py +0 -0
  281. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mysql/__init__.py +0 -0
  282. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mysql/adapter.py +0 -0
  283. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mysql/base.py +0 -0
  284. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mysql/provider.py +0 -0
  285. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/mysql/schema.py +0 -0
  286. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/oracle/__init__.py +0 -0
  287. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/oracle/adapter.py +0 -0
  288. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/oracle/provider.py +0 -0
  289. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/oracle/schema.py +0 -0
  290. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/oracle_legacy/__init__.py +0 -0
  291. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/oracle_legacy/adapter.py +0 -0
  292. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/oracle_legacy/provider.py +0 -0
  293. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/oracle_legacy/schema.py +0 -0
  294. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/postgresql/__init__.py +0 -0
  295. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/postgresql/adapter.py +0 -0
  296. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/postgresql/base.py +0 -0
  297. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/postgresql/provider.py +0 -0
  298. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/postgresql/schema.py +0 -0
  299. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/presto/__init__.py +0 -0
  300. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/presto/adapter.py +0 -0
  301. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/presto/provider.py +0 -0
  302. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/presto/schema.py +0 -0
  303. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/redshift/__init__.py +0 -0
  304. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/redshift/adapter.py +0 -0
  305. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/redshift/provider.py +0 -0
  306. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/redshift/schema.py +0 -0
  307. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/registry.py +0 -0
  308. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/schema_catalog.py +0 -0
  309. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/schema_helpers.py +0 -0
  310. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/snowflake/__init__.py +0 -0
  311. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/snowflake/adapter.py +0 -0
  312. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/snowflake/provider.py +0 -0
  313. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/snowflake/schema.py +0 -0
  314. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/sqlite/__init__.py +0 -0
  315. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/sqlite/adapter.py +0 -0
  316. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/sqlite/provider.py +0 -0
  317. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/sqlite/schema.py +0 -0
  318. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/supabase/__init__.py +0 -0
  319. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/supabase/adapter.py +0 -0
  320. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/supabase/provider.py +0 -0
  321. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/supabase/schema.py +0 -0
  322. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/teradata/__init__.py +0 -0
  323. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/teradata/provider.py +0 -0
  324. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/teradata/schema.py +0 -0
  325. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/tls.py +0 -0
  326. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/trino/__init__.py +0 -0
  327. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/trino/adapter.py +0 -0
  328. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/trino/provider.py +0 -0
  329. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/trino/schema.py +0 -0
  330. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/turso/__init__.py +0 -0
  331. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/turso/adapter.py +0 -0
  332. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/turso/provider.py +0 -0
  333. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/turso/schema.py +0 -0
  334. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/providers/validation.py +0 -0
  335. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/store/__init__.py +0 -0
  336. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/store/memory.py +0 -0
  337. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/__init__.py +0 -0
  338. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/connection_error_handlers.py +0 -0
  339. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/connection_focus.py +0 -0
  340. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/connection_form.py +0 -0
  341. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/connection_test_controller.py +0 -0
  342. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/driver_status.py +0 -0
  343. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/driver_status_controller.py +0 -0
  344. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/field_widgets.py +0 -0
  345. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/fields.py +0 -0
  346. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/mixins/__init__.py +0 -0
  347. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/restart_cache.py +0 -0
  348. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/__init__.py +0 -0
  349. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/azure_firewall.py +0 -0
  350. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection.py +0 -0
  351. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/__init__.py +0 -0
  352. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/cloud_nodes.py +0 -0
  353. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/__init__.py +0 -0
  354. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/aws.py +0 -0
  355. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/azure.py +0 -0
  356. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/base.py +0 -0
  357. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/gcp.py +0 -0
  358. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/utils.py +0 -0
  359. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/constants.py +0 -0
  360. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/controllers/__init__.py +0 -0
  361. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/controllers/cloud.py +0 -0
  362. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/controllers/docker.py +0 -0
  363. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/screen.py +0 -0
  364. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/shortcuts.py +0 -0
  365. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/state.py +0 -0
  366. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/tabs/__init__.py +0 -0
  367. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/tabs/cloud.py +0 -0
  368. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/tabs/connections.py +0 -0
  369. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/tabs/docker.py +0 -0
  370. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_picker/view.py +0 -0
  371. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/connection_styles.py +0 -0
  372. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/folder_input.py +0 -0
  373. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/install_progress.py +0 -0
  374. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/package_setup.py +0 -0
  375. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/screens/password_input.py +0 -0
  376. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/validation.py +0 -0
  377. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/connections/ui/validation_ui_binder.py +0 -0
  378. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/__init__.py +0 -0
  379. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/app/schema_service.py +0 -0
  380. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/domain/__init__.py +0 -0
  381. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/domain/tree_nodes.py +0 -0
  382. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/state/__init__.py +0 -0
  383. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/state/tree_filter_active.py +0 -0
  384. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/state/tree_focused.py +0 -0
  385. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/state/tree_multi_select.py +0 -0
  386. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/state/tree_on_connection.py +0 -0
  387. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/state/tree_on_database.py +0 -0
  388. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/state/tree_on_folder.py +0 -0
  389. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/state/tree_on_object.py +0 -0
  390. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/state/tree_on_table.py +0 -0
  391. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/state/tree_visual_mode.py +0 -0
  392. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/__init__.py +0 -0
  393. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/mixins/__init__.py +0 -0
  394. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/mixins/tree.py +0 -0
  395. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/mixins/tree_filter.py +0 -0
  396. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/mixins/tree_labels.py +0 -0
  397. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/mixins/tree_schema.py +0 -0
  398. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/tree/__init__.py +0 -0
  399. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/tree/builder.py +0 -0
  400. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/tree/db_switching.py +0 -0
  401. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/tree/expansion_state.py +0 -0
  402. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/tree/loaders.py +0 -0
  403. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/tree/object_info.py +0 -0
  404. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/explorer/ui/tree/schema_render.py +0 -0
  405. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/process_worker/__init__.py +0 -0
  406. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/process_worker/app/__init__.py +0 -0
  407. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/process_worker/app/process_worker_client.py +0 -0
  408. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/process_worker/app/support.py +0 -0
  409. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/process_worker/ui/__init__.py +0 -0
  410. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/process_worker/ui/mixins/__init__.py +0 -0
  411. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/process_worker/ui/mixins/process_worker_lifecycle.py +0 -0
  412. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/__init__.py +0 -0
  413. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/app/__init__.py +0 -0
  414. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/app/alerts.py +0 -0
  415. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/app/cancellable.py +0 -0
  416. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/app/multi_statement.py +0 -0
  417. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/app/query_runner.py +0 -0
  418. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/app/query_service.py +0 -0
  419. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/app/transaction.py +0 -0
  420. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/cli/__init__.py +0 -0
  421. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/cli/commands.py +0 -0
  422. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/__init__.py +0 -0
  423. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/alter_table.py +0 -0
  424. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/completion.py +0 -0
  425. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/core.py +0 -0
  426. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/create_index.py +0 -0
  427. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/create_table.py +0 -0
  428. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/create_view.py +0 -0
  429. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/delete.py +0 -0
  430. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/drop.py +0 -0
  431. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/insert.py +0 -0
  432. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/keywords.py +0 -0
  433. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/truncate.py +0 -0
  434. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/completion/update.py +0 -0
  435. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/__init__.py +0 -0
  436. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/clipboard.py +0 -0
  437. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/comments.py +0 -0
  438. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/deletion.py +0 -0
  439. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/motions/__init__.py +0 -0
  440. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/motions/basic.py +0 -0
  441. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/motions/brackets.py +0 -0
  442. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/motions/common.py +0 -0
  443. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/motions/search.py +0 -0
  444. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/motions/words.py +0 -0
  445. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/operators.py +0 -0
  446. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/text_objects.py +0 -0
  447. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/types.py +0 -0
  448. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/editing/undo_history.py +0 -0
  449. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/state/autocomplete_active.py +0 -0
  450. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/state/query_focused.py +0 -0
  451. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/state/query_insert.py +0 -0
  452. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/store/__init__.py +0 -0
  453. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/__init__.py +0 -0
  454. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/__init__.py +0 -0
  455. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/autocomplete.py +0 -0
  456. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/autocomplete_schema.py +0 -0
  457. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/autocomplete_suggestions.py +0 -0
  458. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query_constants.py +0 -0
  459. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query_editing_clipboard.py +0 -0
  460. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query_editing_comments.py +0 -0
  461. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query_editing_common.py +0 -0
  462. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query_editing_operators.py +0 -0
  463. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query_editing_selection.py +0 -0
  464. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/mixins/query_editing_undo.py +0 -0
  465. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/screens/__init__.py +0 -0
  466. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/screens/char_pending_menu.py +0 -0
  467. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/query/ui/screens/text_object_menu.py +0 -0
  468. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/__init__.py +0 -0
  469. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/formatters.py +0 -0
  470. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/state/__init__.py +0 -0
  471. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/state/results_filter_active.py +0 -0
  472. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/state/value_view_active.py +0 -0
  473. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/ui/__init__.py +0 -0
  474. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/ui/mixins/__init__.py +0 -0
  475. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/ui/mixins/results_filter.py +0 -0
  476. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/ui/screens/save_file.py +0 -0
  477. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/results/ui/screens/value_view.py +0 -0
  478. {sqlit_tui-1.3.1/sqlit/domains/results/ui/screens → sqlit_tui-1.4.0/sqlit/domains/shell}/__init__.py +0 -0
  479. {sqlit_tui-1.3.1/sqlit/domains/shell → sqlit_tui-1.4.0/sqlit/domains/shell/app}/__init__.py +0 -0
  480. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/commands/__init__.py +0 -0
  481. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/commands/alert.py +0 -0
  482. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/commands/debug.py +0 -0
  483. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/commands/router.py +0 -0
  484. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/commands/watchdog.py +0 -0
  485. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/commands/worker.py +0 -0
  486. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/idle_scheduler.py +0 -0
  487. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/omarchy.py +0 -0
  488. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/startup_flow.py +0 -0
  489. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/app/themes.py +0 -0
  490. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/state/__init__.py +0 -0
  491. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/state/leader_pending.py +0 -0
  492. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/state/main_screen.py +0 -0
  493. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/state/modal_active.py +0 -0
  494. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/state/query_executing.py +0 -0
  495. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/state/root.py +0 -0
  496. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/store/__init__.py +0 -0
  497. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/ui/__init__.py +0 -0
  498. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/ui/mixins/__init__.py +0 -0
  499. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/ui/mixins/ui_leader.py +0 -0
  500. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/ui/mixins/ui_navigation.py +0 -0
  501. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/ui/screens/__init__.py +0 -0
  502. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/ui/screens/help.py +0 -0
  503. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/domains/shell/ui/screens/leader_menu.py +0 -0
  504. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/mock_settings.py +0 -0
  505. {sqlit_tui-1.3.1/sqlit/domains/shell/app → sqlit_tui-1.4.0/sqlit/shared}/__init__.py +0 -0
  506. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/app/__init__.py +0 -0
  507. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/app/runtime.py +0 -0
  508. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/app/services.py +0 -0
  509. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/app/startup_profiler.py +0 -0
  510. {sqlit_tui-1.3.1/sqlit/shared → sqlit_tui-1.4.0/sqlit/shared/core}/__init__.py +0 -0
  511. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/core/debug_events.py +0 -0
  512. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/core/processes.py +0 -0
  513. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/core/system_probe.py +0 -0
  514. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/core/system_probe_fake.py +0 -0
  515. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/core/terminal.py +0 -0
  516. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/core/utils.py +0 -0
  517. {sqlit_tui-1.3.1/sqlit/shared/core → sqlit_tui-1.4.0/sqlit/shared/ui}/__init__.py +0 -0
  518. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/lifecycle.py +0 -0
  519. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/__init__.py +0 -0
  520. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/autocomplete.py +0 -0
  521. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/connections.py +0 -0
  522. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/core.py +0 -0
  523. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/explorer.py +0 -0
  524. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/lifecycle.py +0 -0
  525. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/metadata.py +0 -0
  526. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/mixins.py +0 -0
  527. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/query.py +0 -0
  528. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/results.py +0 -0
  529. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/screens.py +0 -0
  530. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/startup.py +0 -0
  531. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/ui_navigation.py +0 -0
  532. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/vim.py +0 -0
  533. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/protocols/widgets.py +0 -0
  534. {sqlit_tui-1.3.1/sqlit/shared/ui → sqlit_tui-1.4.0/sqlit/shared/ui/screens}/__init__.py +0 -0
  535. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/screens/confirm.py +0 -0
  536. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/screens/error.py +0 -0
  537. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/screens/file_picker.py +0 -0
  538. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/screens/loading.py +0 -0
  539. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/screens/message.py +0 -0
  540. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/spinner.py +0 -0
  541. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets.py +0 -0
  542. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets_dialogs.py +0 -0
  543. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets_filter.py +0 -0
  544. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets_flash.py +0 -0
  545. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets_footer.py +0 -0
  546. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets_json_tree.py +0 -0
  547. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/sqlit/shared/ui/widgets_value_view.py +0 -0
  548. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/.env.example +0 -0
  549. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/__init__.py +0 -0
  550. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/athena/__init__.py +0 -0
  551. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/athena/fixtures.py +0 -0
  552. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/athena/infra/.gitignore +0 -0
  553. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/athena/infra/create_view.py +0 -0
  554. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/athena/infra/main.tf +0 -0
  555. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/athena/infra/outputs.tf +0 -0
  556. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/athena/infra/variables.tf +0 -0
  557. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/athena/run_tests.sh +0 -0
  558. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/athena/test_athena.py +0 -0
  559. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/cli/test_cli_main.py +0 -0
  560. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/connections/providers/__init__.py +0 -0
  561. {sqlit_tui-1.3.1/tests/connections/providers/oracle → sqlit_tui-1.4.0/tests/connections/providers/hana}/__init__.py +0 -0
  562. {sqlit_tui-1.3.1/tests/unit → sqlit_tui-1.4.0/tests/connections/providers/oracle}/__init__.py +0 -0
  563. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/connections/providers/oracle/test_cursor_cleanup.py +0 -0
  564. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/99-fix-sshd-config.sh +0 -0
  565. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/__init__.py +0 -0
  566. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/bigquery.py +0 -0
  567. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/cli.py +0 -0
  568. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/clickhouse.py +0 -0
  569. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/cockroachdb.py +0 -0
  570. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/d1/Dockerfile +0 -0
  571. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/d1/wrangler.toml +0 -0
  572. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/db2.py +0 -0
  573. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/duckdb.py +0 -0
  574. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/firebird.py +0 -0
  575. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/flight.py +0 -0
  576. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/mariadb.py +0 -0
  577. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/mssql.py +0 -0
  578. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/mysql.py +0 -0
  579. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/mysql_charset.py +0 -0
  580. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/oracle.py +0 -0
  581. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/oracle_legacy.py +0 -0
  582. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/postgres.py +0 -0
  583. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/presto/catalog/memory.properties +0 -0
  584. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/presto.py +0 -0
  585. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/sqlite.py +0 -0
  586. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/ssh.py +0 -0
  587. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/sshd_config +0 -0
  588. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/trino/catalog/memory.properties +0 -0
  589. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/trino.py +0 -0
  590. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/turso.py +0 -0
  591. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/fixtures/utils.py +0 -0
  592. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/__init__.py +0 -0
  593. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/browsing_base.py +0 -0
  594. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/docker_detect/__init__.py +0 -0
  595. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/docker_detect/conftest.py +0 -0
  596. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/docker_detect/database_configs.py +0 -0
  597. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/docker_detect/test_all_databases.py +0 -0
  598. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/docker_detect/test_docker_detection.py +0 -0
  599. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/python_packages/README.md +0 -0
  600. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/python_packages/docker-compose.yml +0 -0
  601. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/python_packages/dockerfiles/debian.Dockerfile +0 -0
  602. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/python_packages/run_tests.sh +0 -0
  603. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/python_packages/test_package_install_flow.py +0 -0
  604. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/test_autocomplete_mysql_columns.py +0 -0
  605. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/test_database_browsing_flow.py +0 -0
  606. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/test_explorer_refresh_cursor.py +0 -0
  607. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/test_mssql_datetimeoffset.py +0 -0
  608. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/test_snowflake_fakesnow.py +0 -0
  609. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/test_stale_connection_reconnect.py +0 -0
  610. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/test_telescope_watchdog.py +0 -0
  611. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/test_tls_cli_config.py +0 -0
  612. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/integration/test_transactions.py +0 -0
  613. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/performance/__init__.py +0 -0
  614. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/performance/test_large_dataset_rendering.py +0 -0
  615. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_adapter_system_databases.py +0 -0
  616. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_apply_database_override.py +0 -0
  617. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_autocomplete_database_modes.py +0 -0
  618. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_bigquery.py +0 -0
  619. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_charset_support.py +0 -0
  620. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_clickhouse.py +0 -0
  621. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_cloud_discovery.py +0 -0
  622. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_cockroachdb.py +0 -0
  623. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_commands.py +0 -0
  624. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_credentials_connection_store.py +0 -0
  625. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_credentials_global.py +0 -0
  626. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_credentials_keyring.py +0 -0
  627. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_credentials_plaintext.py +0 -0
  628. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_cross_database_queries.py +0 -0
  629. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_d1.py +0 -0
  630. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_database_base.py +0 -0
  631. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_database_docker.py +0 -0
  632. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_db2.py +0 -0
  633. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_docker_detector.py +0 -0
  634. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_driver_resolver.py +0 -0
  635. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_duckdb.py +0 -0
  636. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_firebird.py +0 -0
  637. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_flight.py +0 -0
  638. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_install_strategy.py +0 -0
  639. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_installer_cancel.py +0 -0
  640. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_mariadb.py +0 -0
  641. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_mocks.py +0 -0
  642. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_mssql.py +0 -0
  643. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_mysql.py +0 -0
  644. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_oracle.py +0 -0
  645. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_oracle_legacy.py +0 -0
  646. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_postgresql.py +0 -0
  647. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_presto.py +0 -0
  648. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_schema_capabilities.py +0 -0
  649. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_sqlite.py +0 -0
  650. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_ssh.py +0 -0
  651. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_trino.py +0 -0
  652. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_turso.py +0 -0
  653. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/test_validation.py +0 -0
  654. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/__init__.py +0 -0
  655. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/conftest.py +0 -0
  656. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/explorer/__init__.py +0 -0
  657. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/explorer/test_cross_database_query.py +0 -0
  658. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/explorer/test_markup_escaping.py +0 -0
  659. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/explorer/test_multidb_refresh.py +0 -0
  660. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/explorer/test_refresh_cursor_restore.py +0 -0
  661. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/explorer/test_refresh_expanded_loads.py +0 -0
  662. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/explorer/test_refresh_tree.py +0 -0
  663. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/explorer/test_tree_expansion.py +0 -0
  664. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/keybindings/__init__.py +0 -0
  665. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/keybindings/conftest.py +0 -0
  666. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/keybindings/test_contextual.py +0 -0
  667. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/keybindings/test_dialogs.py +0 -0
  668. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/keybindings/test_insert_mode.py +0 -0
  669. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/keybindings/test_keymap_provider.py +0 -0
  670. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/keybindings/test_leader.py +0 -0
  671. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/keybindings/test_state_machine.py +0 -0
  672. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/keybindings/test_vim_motions.py +0 -0
  673. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/01_default_sqlite_screen.svg +0 -0
  674. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/02_edit_mode_postgresql.svg +0 -0
  675. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/03_before_cancel.svg +0 -0
  676. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/04_empty_name_after_save_attempt.svg +0 -0
  677. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/04_empty_name_before_save.svg +0 -0
  678. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/05_after_switch_to_postgresql.svg +0 -0
  679. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/05_before_switch_to_postgresql.svg +0 -0
  680. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/06_sqlite_file_path_field.svg +0 -0
  681. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/07_sqlite_filled_form.svg +0 -0
  682. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/08_postgresql_after_switch.svg +0 -0
  683. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/08_postgresql_filled_form.svg +0 -0
  684. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/09_duplicate_name_validation.svg +0 -0
  685. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/10_after_test_connection.svg +0 -0
  686. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/10_before_test_connection.svg +0 -0
  687. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/11_navigation_after_tab.svg +0 -0
  688. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/11_navigation_initial_focus.svg +0 -0
  689. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/12_navigation_after_shift_tab.svg +0 -0
  690. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/12_navigation_after_two_tabs.svg +0 -0
  691. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/snapshots/13_ssh_fields_hidden.svg +0 -0
  692. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/test_command_version.py +0 -0
  693. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/test_connect_action.py +0 -0
  694. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/test_connection_screen.py +0 -0
  695. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/test_explorer_toggle.py +0 -0
  696. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/test_json_tree.py +0 -0
  697. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/test_multi_select_actions.py +0 -0
  698. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/test_password_input.py +0 -0
  699. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/test_query_history.py +0 -0
  700. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/test_results_incremental_rendering.py +0 -0
  701. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/ui/test_tree_schema_grouping.py +0 -0
  702. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/__init__.py +0 -0
  703. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_alter_table.py +0 -0
  704. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_core.py +0 -0
  705. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_create_index.py +0 -0
  706. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_create_table.py +0 -0
  707. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_create_view.py +0 -0
  708. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_delete.py +0 -0
  709. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_drop.py +0 -0
  710. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_edge_cases_cross_returning.py +0 -0
  711. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_edge_cases_misc.py +0 -0
  712. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_edge_cases_select_window.py +0 -0
  713. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_edge_cases_union_cast.py +0 -0
  714. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_insert.py +0 -0
  715. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_select.py +0 -0
  716. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_truncate.py +0 -0
  717. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/sql_completion/test_update.py +0 -0
  718. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_auto_reconnect_after_driver_install.py +0 -0
  719. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_autocomplete_alias_multi_db.py +0 -0
  720. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_comments.py +0 -0
  721. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_connection_mixin_edit.py +0 -0
  722. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_connection_picker_refresh.py +0 -0
  723. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_docker_credential_parsing.py +0 -0
  724. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_docker_tab_filtering.py +0 -0
  725. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_executor_reset_on_connection_switch.py +0 -0
  726. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_extra_options_passthrough.py +0 -0
  727. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_flight_adapter.py +0 -0
  728. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_incremental_rendering_numeric_range.py +0 -0
  729. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_motherduck_adapter.py +0 -0
  730. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_mssql_adapter.py +0 -0
  731. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_mssql_autocommit.py +0 -0
  732. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_multi_statement.py +0 -0
  733. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_open_line.py +0 -0
  734. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_oracle_adapter.py +0 -0
  735. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_postgresql_adapter.py +0 -0
  736. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_query_alerts.py +0 -0
  737. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_query_deletion.py +0 -0
  738. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_schema_config_validator.py +0 -0
  739. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_select_all.py +0 -0
  740. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_single_statement_execution.py +0 -0
  741. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_snowflake_adapter.py +0 -0
  742. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_starred.py +0 -0
  743. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_text_object_menu.py +0 -0
  744. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_tls_adapters.py +0 -0
  745. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_transaction_executor.py +0 -0
  746. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_transaction_state.py +0 -0
  747. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_undo_history.py +0 -0
  748. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_url_parser.py +0 -0
  749. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_vim_operators.py +0 -0
  750. {sqlit_tui-1.3.1 → sqlit_tui-1.4.0}/tests/unit/test_vim_text_objects.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlit-tui
3
- Version: 1.3.1
3
+ Version: 1.4.0
4
4
  Summary: A terminal UI for SQL Server, PostgreSQL, MySQL, SQLite, Oracle, and more
5
5
  Project-URL: Homepage, https://github.com/Maxteabag/sqlit
6
6
  Project-URL: Repository, https://github.com/Maxteabag/sqlit
@@ -33,12 +33,15 @@ Requires-Dist: clickhouse-connect>=0.7.0; extra == 'all'
33
33
  Requires-Dist: duckdb>=1.1.0; extra == 'all'
34
34
  Requires-Dist: firebirdsql>=1.3.5; extra == 'all'
35
35
  Requires-Dist: google-cloud-bigquery; extra == 'all'
36
+ Requires-Dist: google-cloud-spanner>=3.0.0; extra == 'all'
36
37
  Requires-Dist: hdbcli>=2.20.0; extra == 'all'
37
38
  Requires-Dist: ibm-db>=3.2.0; extra == 'all'
39
+ Requires-Dist: impyla>=0.18.0; extra == 'all'
38
40
  Requires-Dist: libsql>=0.1.0; extra == 'all'
39
41
  Requires-Dist: mariadb>=1.1.0; extra == 'all'
40
42
  Requires-Dist: mssql-python>=1.1.0; extra == 'all'
41
43
  Requires-Dist: oracledb>=2.0.0; extra == 'all'
44
+ Requires-Dist: osquery>=3.0.0; extra == 'all'
42
45
  Requires-Dist: paramiko<4.0.0,>=2.0.0; extra == 'all'
43
46
  Requires-Dist: presto-python-client>=0.8.4; extra == 'all'
44
47
  Requires-Dist: psycopg2-binary>=2.9.0; extra == 'all'
@@ -48,6 +51,7 @@ Requires-Dist: redshift-connector; extra == 'all'
48
51
  Requires-Dist: requests>=2.32.4; extra == 'all'
49
52
  Requires-Dist: snowflake-connector-python>=3.7.0; extra == 'all'
50
53
  Requires-Dist: sshtunnel>=0.4.0; extra == 'all'
54
+ Requires-Dist: surrealdb>=1.0.0; extra == 'all'
51
55
  Requires-Dist: teradatasql>=20.0.0; extra == 'all'
52
56
  Requires-Dist: trino>=0.329.0; extra == 'all'
53
57
  Provides-Extra: athena
@@ -70,6 +74,8 @@ Provides-Extra: flight
70
74
  Requires-Dist: adbc-driver-flightsql>=1.0.0; extra == 'flight'
71
75
  Provides-Extra: hana
72
76
  Requires-Dist: hdbcli>=2.20.0; extra == 'hana'
77
+ Provides-Extra: impala
78
+ Requires-Dist: impyla>=0.18.0; extra == 'impala'
73
79
  Provides-Extra: mariadb
74
80
  Requires-Dist: mariadb>=1.1.0; extra == 'mariadb'
75
81
  Provides-Extra: mssql
@@ -78,6 +84,8 @@ Provides-Extra: mysql
78
84
  Requires-Dist: pymysql>=1.1.0; extra == 'mysql'
79
85
  Provides-Extra: oracle
80
86
  Requires-Dist: oracledb>=2.0.0; extra == 'oracle'
87
+ Provides-Extra: osquery
88
+ Requires-Dist: osquery>=3.0.0; extra == 'osquery'
81
89
  Provides-Extra: postgres
82
90
  Requires-Dist: psycopg2-binary>=2.9.0; extra == 'postgres'
83
91
  Provides-Extra: presto
@@ -86,9 +94,13 @@ Provides-Extra: redshift
86
94
  Requires-Dist: redshift-connector; extra == 'redshift'
87
95
  Provides-Extra: snowflake
88
96
  Requires-Dist: snowflake-connector-python>=3.7.0; extra == 'snowflake'
97
+ Provides-Extra: spanner
98
+ Requires-Dist: google-cloud-spanner>=3.0.0; extra == 'spanner'
89
99
  Provides-Extra: ssh
90
100
  Requires-Dist: paramiko<4.0.0,>=2.0.0; extra == 'ssh'
91
101
  Requires-Dist: sshtunnel>=0.4.0; extra == 'ssh'
102
+ Provides-Extra: surrealdb
103
+ Requires-Dist: surrealdb>=1.0.0; extra == 'surrealdb'
92
104
  Provides-Extra: teradata
93
105
  Requires-Dist: teradatasql>=20.0.0; extra == 'teradata'
94
106
  Provides-Extra: trino
@@ -124,7 +136,7 @@ Description-Content-Type: text/markdown
124
136
  ---
125
137
 
126
138
  ### Connect
127
- Supports all major databases: SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Snowflake, Supabase, CloudFlare D1, Turso, Athena, BigQuery, RedShift, IBM Db2, SAP HANA, Teradata, Trino, Presto and Apache Flight SQL.
139
+ Supports all major databases: SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Snowflake, Supabase, CloudFlare D1, Turso, Athena, BigQuery, Spanner, RedShift, IBM Db2, SAP HANA, Teradata, Trino, Presto, Apache Flight SQL, Apache Impala, SurrealDB and osquery.
128
140
 
129
141
  ![Database Providers](docs/demos/demo-providers.gif)
130
142
 
@@ -260,6 +272,10 @@ sqlit connections add athena --name "MyAthenaKeys" --athena-region-name "us-east
260
272
  sqlit connections add postgresql --name "RemoteDB" --server "db-host" --username "dbuser" --password "dbpass" \
261
273
  --ssh-enabled --ssh-host "ssh.example.com" --ssh-username "sshuser" --ssh-auth-type password --ssh-password "sshpass"
262
274
 
275
+ # Fetch password from a secrets manager (1Password, pass, Vault, etc.)
276
+ sqlit connections add postgresql --name "ProdDB" --server "prod.example.com" --username "dbuser" \
277
+ --password-command "op read 'op://Work/prod-db/password'"
278
+
263
279
  # Temporary (not saved) connection
264
280
  sqlit connect sqlite --file-path "/path/to/database.db"
265
281
 
@@ -332,13 +348,15 @@ Autocomplete triggers automatically in INSERT mode. Use `Tab` to accept.
332
348
 
333
349
  ## Configuration
334
350
 
335
- Connections and settings are stored in `~/.sqlit/`.
351
+ Connections and settings are stored in `$XDG_CONFIG_HOME/sqlit/` (default: `~/.config/sqlit/`). Override the location by setting `SQLIT_CONFIG_DIR`.
352
+
353
+ If an older install left files in `~/.sqlit/`, they are moved to the new location automatically on first run.
336
354
 
337
355
  ## FAQ
338
356
 
339
357
  ### How are sensitive credentials stored?
340
358
 
341
- Connection details are stored in `~/.sqlit/connections.json`, but passwords are stored in your OS keyring when available (macOS Keychain, Windows Credential Locker, Linux Secret Service).
359
+ Connection details are stored in `connections.json` inside the config directory, but passwords are stored in your OS keyring when available (macOS Keychain, Windows Credential Locker, Linux Secret Service).
342
360
 
343
361
  ### How does sqlit compare to Harlequin, Lazysql, etc.?
344
362
 
@@ -380,7 +398,12 @@ Most of the time you can just run `sqlit` and connect. If a Python driver is mis
380
398
  | Snowflake | `snowflake-connector-python` | `pipx inject sqlit-tui snowflake-connector-python` | `python -m pip install snowflake-connector-python` |
381
399
  | Firebird | `firebirdsql` | `pipx inject sqlit-tui firebirdsql` | `python -m pip install firebirdsql` |
382
400
  | Athena | `pyathena` | `pipx inject sqlit-tui pyathena` | `python -m pip install pyathena` |
401
+ | BigQuery | `google-cloud-bigquery` | `pipx inject sqlit-tui google-cloud-bigquery` | `python -m pip install google-cloud-bigquery` |
402
+ | Spanner | `google-cloud-spanner` | `pipx inject sqlit-tui google-cloud-spanner` | `python -m pip install google-cloud-spanner` |
383
403
  | Apache Arrow Flight SQL | `adbc-driver-flightsql` | `pipx inject sqlit-tui adbc-driver-flightsql` | `python -m pip install adbc-driver-flightsql` |
404
+ | Apache Impala | `impyla` | `pipx inject sqlit-tui impyla` | `python -m pip install impyla` |
405
+ | SurrealDB | `surrealdb` | `pipx inject sqlit-tui surrealdb` | `python -m pip install surrealdb` |
406
+ | osquery | `osquery` | `pipx inject sqlit-tui osquery` | `python -m pip install osquery` |
384
407
 
385
408
  ### SSH Tunnel Support
386
409
 
@@ -25,7 +25,7 @@
25
25
  ---
26
26
 
27
27
  ### Connect
28
- Supports all major databases: SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Snowflake, Supabase, CloudFlare D1, Turso, Athena, BigQuery, RedShift, IBM Db2, SAP HANA, Teradata, Trino, Presto and Apache Flight SQL.
28
+ Supports all major databases: SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Snowflake, Supabase, CloudFlare D1, Turso, Athena, BigQuery, Spanner, RedShift, IBM Db2, SAP HANA, Teradata, Trino, Presto, Apache Flight SQL, Apache Impala, SurrealDB and osquery.
29
29
 
30
30
  ![Database Providers](docs/demos/demo-providers.gif)
31
31
 
@@ -161,6 +161,10 @@ sqlit connections add athena --name "MyAthenaKeys" --athena-region-name "us-east
161
161
  sqlit connections add postgresql --name "RemoteDB" --server "db-host" --username "dbuser" --password "dbpass" \
162
162
  --ssh-enabled --ssh-host "ssh.example.com" --ssh-username "sshuser" --ssh-auth-type password --ssh-password "sshpass"
163
163
 
164
+ # Fetch password from a secrets manager (1Password, pass, Vault, etc.)
165
+ sqlit connections add postgresql --name "ProdDB" --server "prod.example.com" --username "dbuser" \
166
+ --password-command "op read 'op://Work/prod-db/password'"
167
+
164
168
  # Temporary (not saved) connection
165
169
  sqlit connect sqlite --file-path "/path/to/database.db"
166
170
 
@@ -233,13 +237,15 @@ Autocomplete triggers automatically in INSERT mode. Use `Tab` to accept.
233
237
 
234
238
  ## Configuration
235
239
 
236
- Connections and settings are stored in `~/.sqlit/`.
240
+ Connections and settings are stored in `$XDG_CONFIG_HOME/sqlit/` (default: `~/.config/sqlit/`). Override the location by setting `SQLIT_CONFIG_DIR`.
241
+
242
+ If an older install left files in `~/.sqlit/`, they are moved to the new location automatically on first run.
237
243
 
238
244
  ## FAQ
239
245
 
240
246
  ### How are sensitive credentials stored?
241
247
 
242
- Connection details are stored in `~/.sqlit/connections.json`, but passwords are stored in your OS keyring when available (macOS Keychain, Windows Credential Locker, Linux Secret Service).
248
+ Connection details are stored in `connections.json` inside the config directory, but passwords are stored in your OS keyring when available (macOS Keychain, Windows Credential Locker, Linux Secret Service).
243
249
 
244
250
  ### How does sqlit compare to Harlequin, Lazysql, etc.?
245
251
 
@@ -281,7 +287,12 @@ Most of the time you can just run `sqlit` and connect. If a Python driver is mis
281
287
  | Snowflake | `snowflake-connector-python` | `pipx inject sqlit-tui snowflake-connector-python` | `python -m pip install snowflake-connector-python` |
282
288
  | Firebird | `firebirdsql` | `pipx inject sqlit-tui firebirdsql` | `python -m pip install firebirdsql` |
283
289
  | Athena | `pyathena` | `pipx inject sqlit-tui pyathena` | `python -m pip install pyathena` |
290
+ | BigQuery | `google-cloud-bigquery` | `pipx inject sqlit-tui google-cloud-bigquery` | `python -m pip install google-cloud-bigquery` |
291
+ | Spanner | `google-cloud-spanner` | `pipx inject sqlit-tui google-cloud-spanner` | `python -m pip install google-cloud-spanner` |
284
292
  | Apache Arrow Flight SQL | `adbc-driver-flightsql` | `pipx inject sqlit-tui adbc-driver-flightsql` | `python -m pip install adbc-driver-flightsql` |
293
+ | Apache Impala | `impyla` | `pipx inject sqlit-tui impyla` | `python -m pip install impyla` |
294
+ | SurrealDB | `surrealdb` | `pipx inject sqlit-tui surrealdb` | `python -m pip install surrealdb` |
295
+ | osquery | `osquery` | `pipx inject sqlit-tui osquery` | `python -m pip install osquery` |
285
296
 
286
297
  ### SSH Tunnel Support
287
298
 
@@ -0,0 +1,138 @@
1
+ {
2
+ description = "A terminal UI for SQL databases";
3
+
4
+ inputs = {
5
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
+ flake-utils.url = "github:numtide/flake-utils";
7
+ };
8
+
9
+ outputs = { self, nixpkgs, flake-utils }:
10
+ flake-utils.lib.eachDefaultSystem (system:
11
+ let
12
+ pkgs = nixpkgs.legacyPackages.${system};
13
+ lib = pkgs.lib;
14
+ pyPkgs = pkgs.python3.pkgs;
15
+
16
+ ref =
17
+ if self ? sourceInfo && self.sourceInfo ? ref
18
+ then self.sourceInfo.ref
19
+ else "";
20
+ tag =
21
+ if lib.hasPrefix "refs/tags/v" ref
22
+ then lib.removePrefix "refs/tags/v" ref
23
+ else if lib.hasPrefix "refs/tags/" ref
24
+ then lib.removePrefix "refs/tags/" ref
25
+ else if lib.hasPrefix "v" ref
26
+ then lib.removePrefix "v" ref
27
+ else "";
28
+ shortRev = if self ? shortRev then self.shortRev else "dirty";
29
+ version = if tag != "" then tag else "0.0.0+${shortRev}";
30
+
31
+ # Extras mirror project.optional-dependencies in pyproject.toml,
32
+ # limited to drivers packaged in nixpkgs. Others (mssql-python,
33
+ # oracledb, mariadb, ibm_db, hdbcli, teradatasql, trino,
34
+ # presto-python-client, redshift-connector, clickhouse-connect,
35
+ # libsql, firebirdsql, pyathena, adbc-driver-flightsql) aren't
36
+ # here; install with `pipx inject` or a custom derivation.
37
+ nixpkgsExtras = {
38
+ ssh = [ pyPkgs.sshtunnel pyPkgs.paramiko ];
39
+ postgres = [ pyPkgs.psycopg2 ];
40
+ cockroachdb = [ pyPkgs.psycopg2 ];
41
+ mysql = [ pyPkgs.pymysql ];
42
+ duckdb = [ pyPkgs.duckdb ];
43
+ bigquery = [ pyPkgs.google-cloud-bigquery ];
44
+ snowflake = [ pyPkgs.snowflake-connector-python ];
45
+ d1 = [ pyPkgs.requests ];
46
+ };
47
+
48
+ resolveExtras = names:
49
+ lib.concatLists (map (n:
50
+ nixpkgsExtras.${n} or (throw
51
+ "Unknown sqlit extra '${n}'. Available: ${
52
+ lib.concatStringsSep ", " (builtins.attrNames nixpkgsExtras)
53
+ }")
54
+ ) names);
55
+
56
+ # Build sqlit, optionally with a set of driver extras from nixpkgs.
57
+ # Example: makeSqlit { extras = [ "postgres" "ssh" ]; }
58
+ makeSqlit = { extras ? [] }:
59
+ pyPkgs.buildPythonApplication {
60
+ pname = "sqlit";
61
+ inherit version;
62
+ pyproject = true;
63
+
64
+ src = self;
65
+
66
+ build-system = [
67
+ pyPkgs.hatchling
68
+ pyPkgs."hatch-vcs"
69
+ pyPkgs."setuptools-scm"
70
+ ];
71
+
72
+ nativeBuildInputs = [
73
+ pyPkgs.pythonRelaxDepsHook
74
+ ];
75
+
76
+ pythonRelaxDeps = [
77
+ "textual-fastdatatable"
78
+ ];
79
+
80
+ SETUPTOOLS_SCM_PRETEND_VERSION = version;
81
+
82
+ dependencies = [
83
+ pyPkgs.docker
84
+ pyPkgs.keyring
85
+ pyPkgs.pyperclip
86
+ pyPkgs.sqlparse
87
+ pyPkgs.textual
88
+ pyPkgs."textual-fastdatatable"
89
+ ] ++ (resolveExtras extras);
90
+
91
+ pythonImportsCheck = [ "sqlit" ];
92
+
93
+ meta = with lib; {
94
+ description = "A terminal UI for SQL databases";
95
+ homepage = "https://github.com/Maxteabag/sqlit";
96
+ license = licenses.mit;
97
+ mainProgram = "sqlit";
98
+ };
99
+ };
100
+
101
+ sqlit = makeSqlit { extras = builtins.attrNames nixpkgsExtras; };
102
+ in {
103
+ packages = {
104
+ inherit sqlit;
105
+ default = sqlit;
106
+ };
107
+
108
+ lib = { inherit makeSqlit; };
109
+
110
+ apps.default = {
111
+ type = "app";
112
+ program = "${sqlit}/bin/sqlit";
113
+ };
114
+
115
+ checks = {
116
+ inherit sqlit;
117
+ };
118
+
119
+ devShells.default = pkgs.mkShell {
120
+ packages = [
121
+ pkgs.python3
122
+ pkgs.hatch
123
+ pyPkgs.pytest
124
+ pyPkgs.pytest-timeout
125
+ pyPkgs.pytest-asyncio
126
+ pyPkgs.pytest-cov
127
+ pyPkgs.pytest-benchmark
128
+ pkgs.ruff
129
+ pyPkgs.mypy
130
+ pkgs.pre-commit
131
+ pyPkgs.build
132
+ pyPkgs.faker
133
+ pyPkgs.ipython
134
+ ];
135
+ inputsFrom = [ sqlit ];
136
+ };
137
+ });
138
+ }
@@ -175,6 +175,101 @@ services:
175
175
  retries: 10
176
176
  start_period: 10s
177
177
 
178
+ # Apache Impala ships no single-container image. The official quickstart runs
179
+ # Hive Metastore + statestored + catalogd + impalad together, all pinned to
180
+ # apache/impala:4.5.0-* with hive-site.xml mounted from impala_quickstart_conf/.
181
+ # Based on https://github.com/apache/impala/blob/master/docker/quickstart.yml
182
+ impala-hms:
183
+ image: apache/impala:4.5.0-impala_quickstart_hms
184
+ container_name: sqlit-test-impala-hms
185
+ command: ["hms"]
186
+ volumes:
187
+ - impala-warehouse:/var/lib/hive
188
+ - impala-warehouse:/user/hive/warehouse
189
+ - ./impala_quickstart_conf:/opt/hive/conf:ro
190
+ # hive-site.xml refers to the metastore as `thrift://quickstart-hive-metastore:9083`
191
+ # (matching the upstream quickstart). Alias so catalogd/impalad can resolve it.
192
+ networks:
193
+ impala-network:
194
+ aliases:
195
+ - quickstart-hive-metastore
196
+ profiles:
197
+ - enterprise
198
+
199
+ impala-statestored:
200
+ image: apache/impala:4.5.0-statestored
201
+ container_name: sqlit-test-impala-statestored
202
+ command: ["-redirect_stdout_stderr=false", "-logtostderr", "-v=1"]
203
+ volumes:
204
+ - ./impala_quickstart_conf:/opt/impala/conf:ro
205
+ # Impala hard-codes peer hostnames `statestored` and `catalogd` when the
206
+ # services register — alias so the other containers can reach it there.
207
+ networks:
208
+ impala-network:
209
+ aliases:
210
+ - statestored
211
+ profiles:
212
+ - enterprise
213
+
214
+ impala-catalogd:
215
+ image: apache/impala:4.5.0-catalogd
216
+ container_name: sqlit-test-impala-catalogd
217
+ depends_on:
218
+ - impala-statestored
219
+ - impala-hms
220
+ command:
221
+ - "-redirect_stdout_stderr=false"
222
+ - "-logtostderr"
223
+ - "-v=1"
224
+ - "-hms_event_polling_interval_s=1"
225
+ - "-invalidate_tables_timeout_s=999999"
226
+ volumes:
227
+ - impala-warehouse:/user/hive/warehouse
228
+ - ./impala_quickstart_conf:/opt/impala/conf:ro
229
+ networks:
230
+ impala-network:
231
+ aliases:
232
+ - catalogd
233
+ profiles:
234
+ - enterprise
235
+
236
+ impala:
237
+ image: apache/impala:4.5.0-impalad_coord_exec
238
+ container_name: sqlit-test-impala
239
+ depends_on:
240
+ - impala-statestored
241
+ - impala-catalogd
242
+ command:
243
+ - "-v=1"
244
+ - "-redirect_stdout_stderr=false"
245
+ - "-logtostderr"
246
+ - "-mt_dop_auto_fallback=true"
247
+ - "-default_query_options=mt_dop=4,default_file_format=parquet,default_transactional_type=insert_only"
248
+ - "-mem_limit=4gb"
249
+ environment:
250
+ - JAVA_TOOL_OPTIONS=-Xmx1g
251
+ ports:
252
+ - "${IMPALA_PORT:-21050}:21050"
253
+ volumes:
254
+ - impala-warehouse:/user/hive/warehouse
255
+ - ./impala_quickstart_conf:/opt/impala/conf:ro
256
+ networks:
257
+ - impala-network
258
+ healthcheck:
259
+ # /bin/sh in this image is dash, which doesn't support bash's /dev/tcp.
260
+ # The Impala image ships Python, so use that for a tiny TCP probe.
261
+ test:
262
+ - "CMD"
263
+ - "python"
264
+ - "-c"
265
+ - "import socket,sys; s=socket.socket(); s.settimeout(2); s.connect(('localhost',21050)); sys.exit(0)"
266
+ interval: 10s
267
+ timeout: 5s
268
+ retries: 30
269
+ start_period: 90s
270
+ profiles:
271
+ - enterprise
272
+
178
273
  mariadb:
179
274
  image: mariadb:11
180
275
  container_name: sqlit-test-mariadb
@@ -220,6 +315,20 @@ services:
220
315
  retries: 10
221
316
  start_period: 10s
222
317
 
318
+ surrealdb:
319
+ image: surrealdb/surrealdb:latest
320
+ container_name: sqlit-test-surrealdb
321
+ command: start --user root --pass root --bind 0.0.0.0:8000 memory
322
+ ports:
323
+ - "${SURREALDB_PORT:-8000}:8000"
324
+ healthcheck:
325
+ test: ["CMD", "/surreal", "is-ready", "--endpoint", "http://localhost:8000"]
326
+ interval: 5s
327
+ timeout: 5s
328
+ retries: 10
329
+ start_period: 10s
330
+
331
+
223
332
  firebird:
224
333
  image: firebirdsql/firebird:5.0.3-noble
225
334
  container_name: sqlit-test-firebird
@@ -333,3 +442,12 @@ services:
333
442
  timeout: 5s
334
443
  retries: 10
335
444
  start_period: 10s
445
+
446
+ volumes:
447
+ impala-warehouse:
448
+
449
+ networks:
450
+ impala-network:
451
+ # Underscore-free FQDN: Java's URL parser rejects hostnames with underscores,
452
+ # which is why we can't let compose auto-prefix the network name.
453
+ name: impalanet
@@ -0,0 +1,74 @@
1
+ <?xml version="1.0"?>
2
+ <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
3
+ <!--
4
+ Licensed to the Apache Software Foundation (ASF) under one or more
5
+ contributor license agreements. See the NOTICE file distributed with
6
+ this work for additional information regarding copyright ownership.
7
+ The ASF licenses this file to You under the Apache License, Version 2.0
8
+ (the "License"); you may not use this file except in compliance with
9
+ the License. You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -->
19
+ <!--
20
+ Hive configuration for Impala quickstart docker cluster.
21
+ -->
22
+ <configuration>
23
+ <property>
24
+ <!-- Required for automatic metadata sync. -->
25
+ <name>hive.metastore.dml.events</name>
26
+ <value>true</value>
27
+ </property>
28
+ <property>
29
+ <!-- User impala is not authorized to consume notifications by default, disable
30
+ authentication to work around this. -->
31
+ <name>hive.metastore.event.db.notification.api.auth</name>
32
+ <value>false</value>
33
+ </property>
34
+ <property>
35
+ <name>hive.metastore.uris</name>
36
+ <value>thrift://quickstart-hive-metastore:9083</value>
37
+ </property>
38
+ <!-- Managed and external tablespaces must live on the Docker volumes that we
39
+ configure for the quickstart cluster. -->
40
+ <property>
41
+ <name>hive.metastore.warehouse.dir</name>
42
+ <value>/user/hive/warehouse/managed</value>
43
+ </property>
44
+ <property>
45
+ <name>hive.metastore.warehouse.external.dir</name>
46
+ <value>/user/hive/warehouse/external</value>
47
+ </property>
48
+ <property>
49
+ <!-- Required to enable Hive transactions -->
50
+ <name>hive.support.concurrency</name>
51
+ <value>true</value>
52
+ </property>
53
+ <property>
54
+ <!-- Required to enable Hive transactions -->
55
+ <name>hive.txn.manager</name>
56
+ <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
57
+ </property>
58
+ <property>
59
+ <!-- Use embedded Derby database -->
60
+ <name>javax.jdo.option.ConnectionDriverName</name>
61
+ <value>org.apache.derby.jdbc.EmbeddedDriver</value>
62
+ </property>
63
+ <property>
64
+ <!-- Use embedded Derby database -->
65
+ <name>javax.jdo.option.ConnectionURL</name>
66
+ <value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value>
67
+ </property>
68
+ <!-- Hive stats autogathering negatively affects latency of DDL operations, etc and
69
+ is not particularly useful for Impala -->
70
+ <property>
71
+ <name>hive.stats.autogather</name>
72
+ <value>false</value>
73
+ </property>
74
+ </configuration>
@@ -48,6 +48,7 @@ all = [
48
48
  "trino>=0.329.0",
49
49
  "presto-python-client>=0.8.4",
50
50
  "google-cloud-bigquery",
51
+ "google-cloud-spanner>=3.0.0",
51
52
  "duckdb>=1.1.0", # min avoids known CVEs
52
53
  "clickhouse-connect>=0.7.0",
53
54
  "requests>=2.32.4", # min avoids known CVEs
@@ -59,6 +60,9 @@ all = [
59
60
  "redshift-connector",
60
61
  "pyathena>=3.22.0",
61
62
  "adbc-driver-flightsql>=1.0.0",
63
+ "impyla>=0.18.0",
64
+ "osquery>=3.0.0",
65
+ "surrealdb>=1.0.0",
62
66
  ]
63
67
  postgres = ["psycopg2-binary>=2.9.0"]
64
68
  cockroachdb = ["psycopg2-binary>=2.9.0"]
@@ -72,6 +76,7 @@ teradata = ["teradatasql>=20.0.0"]
72
76
  trino = ["trino>=0.329.0"]
73
77
  presto = ["presto-python-client>=0.8.4"]
74
78
  bigquery = ["google-cloud-bigquery"]
79
+ spanner = ["google-cloud-spanner>=3.0.0"]
75
80
  redshift = ["redshift-connector"]
76
81
  duckdb = ["duckdb>=1.1.0"] # min avoids known CVEs
77
82
  clickhouse = ["clickhouse-connect>=0.7.0"]
@@ -81,6 +86,9 @@ firebird = ["firebirdsql>=1.3.5"]
81
86
  snowflake = ["snowflake-connector-python>=3.7.0"]
82
87
  athena = ["pyathena>=3.22.0"]
83
88
  flight = ["adbc-driver-flightsql>=1.0.0"]
89
+ impala = ["impyla>=0.18.0"]
90
+ osquery = ["osquery>=3.0.0"]
91
+ surrealdb = ["surrealdb>=1.0.0"]
84
92
  ssh = [
85
93
  "sshtunnel>=0.4.0",
86
94
  "paramiko>=2.0.0,<4.0.0",
@@ -187,6 +195,7 @@ markers = [
187
195
  "firebird: Firebird database tests",
188
196
  "clickhouse: ClickHouse database tests",
189
197
  "flight: Apache Arrow Flight SQL database tests",
198
+ "spanner: Google Cloud Spanner database tests",
190
199
  "asyncio: async tests",
191
200
  "integration: integration tests (may require external services)",
192
201
  ]
@@ -241,7 +250,22 @@ module = [
241
250
  "adbc_driver_flightsql",
242
251
  "adbc_driver_flightsql.dbapi",
243
252
  "adbc_driver_manager",
244
- "textual_fastdatatable"
253
+ "textual_fastdatatable",
254
+ "impala",
255
+ "impala.dbapi",
256
+ "osquery",
257
+ "surrealdb",
258
+ "google.cloud",
259
+ "google.cloud.bigquery",
260
+ "google.cloud.bigquery.dbapi",
261
+ "google.cloud.spanner",
262
+ "google.cloud.spanner_dbapi",
263
+ "google.api_core",
264
+ "google.api_core.client_options",
265
+ "google.auth",
266
+ "google.auth.credentials",
267
+ "google.oauth2",
268
+ "google.oauth2.service_account",
245
269
  ]
246
270
  ignore_missing_imports = true
247
271
 
@@ -0,0 +1,24 @@
1
+ # file generated by vcs-versioning
2
+ # don't change, don't track in version control
3
+ from __future__ import annotations
4
+
5
+ __all__ = [
6
+ "__version__",
7
+ "__version_tuple__",
8
+ "version",
9
+ "version_tuple",
10
+ "__commit_id__",
11
+ "commit_id",
12
+ ]
13
+
14
+ version: str
15
+ __version__: str
16
+ __version_tuple__: tuple[int | str, ...]
17
+ version_tuple: tuple[int | str, ...]
18
+ commit_id: str | None
19
+ __commit_id__: str | None
20
+
21
+ __version__ = version = '1.4.0'
22
+ __version_tuple__ = version_tuple = (1, 4, 0)
23
+
24
+ __commit_id__ = commit_id = None
@@ -372,7 +372,7 @@ def main() -> int:
372
372
  parser.add_argument(
373
373
  "--settings",
374
374
  metavar="PATH",
375
- help="Path to settings JSON file (overrides ~/.sqlit/settings.json)",
375
+ help="Path to settings JSON file (overrides the one in the sqlit config directory)",
376
376
  )
377
377
  parser.add_argument(
378
378
  "--theme",
@@ -511,6 +511,8 @@ def main() -> int:
511
511
  description=f"{schema.display_name} connection options",
512
512
  )
513
513
  add_schema_arguments(provider_parser, schema, include_name=True, name_required=True)
514
+ provider_parser.add_argument("--password-command", dest="password_command", help="Shell command to retrieve the database password")
515
+ provider_parser.add_argument("--ssh-password-command", dest="ssh_password_command", help="Shell command to retrieve the SSH password")
514
516
 
515
517
  edit_parser = conn_subparsers.add_parser("edit", help="Edit an existing connection")
516
518
  edit_parser.add_argument("connection_name", help="Name of connection to edit")
@@ -528,6 +530,8 @@ def main() -> int:
528
530
  help="Authentication type (SQL Server only)",
529
531
  )
530
532
  edit_parser.add_argument("--file-path", help="Database file path (SQLite only)")
533
+ edit_parser.add_argument("--password-command", dest="password_command", help="Shell command to retrieve the database password")
534
+ edit_parser.add_argument("--ssh-password-command", dest="ssh_password_command", help="Shell command to retrieve the SSH password")
531
535
 
532
536
  delete_parser = conn_subparsers.add_parser("delete", help="Delete a connection")
533
537
  delete_parser.add_argument("connection_name", help="Name of connection to delete")
@@ -542,6 +546,8 @@ def main() -> int:
542
546
  description=f"{schema.display_name} connection options",
543
547
  )
544
548
  add_schema_arguments(provider_parser, schema, include_name=True, name_required=False)
549
+ provider_parser.add_argument("--password-command", dest="password_command", help="Shell command to retrieve the database password")
550
+ provider_parser.add_argument("--ssh-password-command", dest="ssh_password_command", help="Shell command to retrieve the SSH password")
545
551
 
546
552
  query_parser = subparsers.add_parser("query", help="Execute a SQL query")
547
553
  query_parser.add_argument("--connection", "-c", required=True, help="Connection name to use")
@@ -21,6 +21,10 @@ def get_binding_contexts(ctx: InputContext) -> set[str]:
21
21
  contexts.add("query")
22
22
  if ctx.vim_mode == VimMode.INSERT:
23
23
  contexts.add("query_insert")
24
+ elif ctx.vim_mode == VimMode.VISUAL:
25
+ contexts.add("query_visual")
26
+ elif ctx.vim_mode == VimMode.VISUAL_LINE:
27
+ contexts.add("query_visual_line")
24
28
  else:
25
29
  contexts.add("query_normal")
26
30
  if ctx.autocomplete_visible: