sqlide 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. sqlide/__init__.py +3 -0
  2. sqlide/__main__.py +5 -0
  3. sqlide/app.py +46 -0
  4. sqlide/cli.py +64 -0
  5. sqlide/clipboard.py +65 -0
  6. sqlide/config/__init__.py +1 -0
  7. sqlide/config/_toml.py +41 -0
  8. sqlide/config/connections.py +76 -0
  9. sqlide/config/keymap.py +25 -0
  10. sqlide/config/paths.py +48 -0
  11. sqlide/config/secrets.py +82 -0
  12. sqlide/config/settings.py +32 -0
  13. sqlide/consoles.py +100 -0
  14. sqlide/db/__init__.py +1 -0
  15. sqlide/db/completion.py +127 -0
  16. sqlide/db/factory.py +37 -0
  17. sqlide/db/metadata.py +174 -0
  18. sqlide/db/result.py +52 -0
  19. sqlide/db/session.py +339 -0
  20. sqlide/db/types.py +84 -0
  21. sqlide/doctor.py +60 -0
  22. sqlide/drivers/__init__.py +1 -0
  23. sqlide/drivers/catalog.toml +103 -0
  24. sqlide/drivers/cli.py +74 -0
  25. sqlide/drivers/custom.py +69 -0
  26. sqlide/drivers/loader.py +75 -0
  27. sqlide/drivers/maven.py +108 -0
  28. sqlide/drivers/registry.py +117 -0
  29. sqlide/export/__init__.py +12 -0
  30. sqlide/export/base.py +86 -0
  31. sqlide/export/csv_.py +40 -0
  32. sqlide/export/html.py +44 -0
  33. sqlide/export/json_.py +47 -0
  34. sqlide/export/markdown.py +27 -0
  35. sqlide/export/service.py +34 -0
  36. sqlide/export/sql_insert.py +37 -0
  37. sqlide/export/xlsx.py +109 -0
  38. sqlide/grid/__init__.py +1 -0
  39. sqlide/grid/copyfmt.py +97 -0
  40. sqlide/grid/formatting.py +43 -0
  41. sqlide/grid/model.py +109 -0
  42. sqlide/history/__init__.py +5 -0
  43. sqlide/history/store.py +117 -0
  44. sqlide/jvm/__init__.py +1 -0
  45. sqlide/jvm/locate.py +98 -0
  46. sqlide/jvm/runtime.py +44 -0
  47. sqlide/sql/__init__.py +1 -0
  48. sqlide/sql/context.py +195 -0
  49. sqlide/sql/dialects.py +93 -0
  50. sqlide/sql/format.py +50 -0
  51. sqlide/sql/keywords.py +143 -0
  52. sqlide/sql/lexer.py +148 -0
  53. sqlide/sql/snippets.py +44 -0
  54. sqlide/sql/splitter.py +325 -0
  55. sqlide/ui/__init__.py +1 -0
  56. sqlide/ui/app.tcss +67 -0
  57. sqlide/ui/commands.py +59 -0
  58. sqlide/ui/keymap.py +32 -0
  59. sqlide/ui/screens/__init__.py +0 -0
  60. sqlide/ui/screens/connection_editor.py +113 -0
  61. sqlide/ui/screens/dialogs.py +110 -0
  62. sqlide/ui/screens/driver_manager.py +195 -0
  63. sqlide/ui/screens/export_dialog.py +158 -0
  64. sqlide/ui/screens/grid_dialogs.py +92 -0
  65. sqlide/ui/screens/history.py +130 -0
  66. sqlide/ui/screens/main.py +383 -0
  67. sqlide/ui/screens/settings.py +77 -0
  68. sqlide/ui/widgets/__init__.py +0 -0
  69. sqlide/ui/widgets/completion_popup.py +81 -0
  70. sqlide/ui/widgets/connections_list.py +54 -0
  71. sqlide/ui/widgets/console_export.py +124 -0
  72. sqlide/ui/widgets/console_tab.py +335 -0
  73. sqlide/ui/widgets/console_tabs.py +117 -0
  74. sqlide/ui/widgets/result_grid.py +435 -0
  75. sqlide/ui/widgets/result_panel.py +73 -0
  76. sqlide/ui/widgets/result_view.py +50 -0
  77. sqlide/ui/widgets/schema_tree.py +145 -0
  78. sqlide/ui/widgets/sql_editor.py +310 -0
  79. sqlide/ui/widgets/status_bar.py +32 -0
  80. sqlide/workspace.py +97 -0
  81. sqlide-0.1.0.dist-info/METADATA +151 -0
  82. sqlide-0.1.0.dist-info/RECORD +85 -0
  83. sqlide-0.1.0.dist-info/WHEEL +4 -0
  84. sqlide-0.1.0.dist-info/entry_points.txt +2 -0
  85. sqlide-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,151 @@
1
+ Metadata-Version: 2.5
2
+ Name: sqlide
3
+ Version: 0.1.0
4
+ Summary: Terminal SQL IDE (DataGrip-like) over JDBC
5
+ Project-URL: Homepage, https://github.com/XFaIT/sqlide
6
+ Project-URL: Repository, https://github.com/XFaIT/sqlide
7
+ Project-URL: Issues, https://github.com/XFaIT/sqlide/issues
8
+ Author: XFaIT
9
+ License: MIT
10
+ License-File: LICENSE
11
+ Keywords: database,datagrip,jdbc,sql,terminal,tui
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: MacOS
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Database :: Front-Ends
19
+ Requires-Python: >=3.12
20
+ Requires-Dist: httpx>=0.27
21
+ Requires-Dist: jpype1>=1.5
22
+ Requires-Dist: openpyxl>=3.1
23
+ Requires-Dist: platformdirs>=4
24
+ Requires-Dist: sqlglot>=25
25
+ Requires-Dist: textual[syntax]>=0.80
26
+ Requires-Dist: tomli-w>=1.0
27
+ Description-Content-Type: text/markdown
28
+
29
+ # sqlide
30
+
31
+ A DataGrip-style SQL IDE that runs in your terminal. Connect to any database over JDBC,
32
+ write SQL in an editor that outlines the statement about to run, and browse results in
33
+ sortable, copyable tables that export to CSV, XLSX and more.
34
+
35
+ Works on Linux, macOS and WSL.
36
+
37
+ ## Features
38
+
39
+ - **Any JDBC database.** PostgreSQL and ClickHouse work out of the box; MySQL, MariaDB,
40
+ Oracle, SQL Server, H2, SQLite and DuckDB are one keypress away. Add your own driver from
41
+ jar files or Maven coordinates, as in DataGrip. Drivers are downloaded from Maven Central
42
+ (checksum verified) and each one gets its own class loader.
43
+ - **Framed statement.** The statement under the cursor is outlined in the gutter; `F5`
44
+ runs it, a selection runs the selection, `Shift+F5` runs the whole file. Dialect-aware
45
+ splitting: `$$` quotes, nested comments, Oracle `/`, SQL Server `GO`, procedural blocks.
46
+ - **Result grid.** Sort by several columns, filter, select a rectangle, view long values,
47
+ load more rows on demand. Copy as TSV, CSV, Markdown, JSON or `INSERT` statements.
48
+ - **Export.** CSV, TSV, JSON, JSON Lines, Markdown, SQL inserts, HTML, XLSX. Export the loaded
49
+ rows or re-run the query and stream the full result to disk, with progress and cancel.
50
+ - **Schema tree and autocomplete.** Lazy metadata, `SELECT *` on Enter, alias-aware column
51
+ completion, keywords and functions per dialect.
52
+ - **Consoles and files.** Tabs with their own connection; consoles autosave and come back
53
+ after a restart; open and save `.sql` files (`sqlide a.sql b.sql`).
54
+ - **History, formatting, transactions.** Searchable query history, SQL formatting,
55
+ Auto/Manual commit with Commit/Rollback.
56
+ - **Rebindable keys, themes, command palette** (`Ctrl+P`). No AI features.
57
+
58
+ ## Install
59
+
60
+ Requirements: Python 3.12+ and a Java 11+ runtime (`brew install openjdk`,
61
+ `apt install openjdk-21-jre`, ...). Check with `sqlide doctor`.
62
+
63
+ ```sh
64
+ uv tool install sqlide # or: pipx install sqlide
65
+ sqlide
66
+ ```
67
+
68
+ Homebrew formula: see [packaging/homebrew](packaging/homebrew/README.md).
69
+
70
+ ## Quick start
71
+
72
+ ```sh
73
+ sqlide driver install postgres # or just connect: sqlide offers to download it
74
+ sqlide # Ctrl+N: new connection, Enter on it: connect
75
+ ```
76
+
77
+ Passwords are never written to disk. sqlide asks when you connect and keeps the password
78
+ in memory until you quit. A connection can instead read it from an environment variable
79
+ (`password_ref = "${env:PGPASSWORD}"`) or from a command such as a keychain CLI
80
+ (`password_cmd = "security find-generic-password -s mydb -w"`).
81
+
82
+ ## Keys
83
+
84
+ `sqlide keys` prints every rebindable action with its default key. Override in
85
+ `~/.config/sqlide/keymap.toml`:
86
+
87
+ ```toml
88
+ [keys]
89
+ "editor.run" = "f4"
90
+ ```
91
+
92
+ | Action | Keys |
93
+ |---|---|
94
+ | Run statement / selection | `F5`, `Ctrl+J`, `Ctrl+Enter`\* |
95
+ | Run all | `Shift+F5` |
96
+ | Cancel query | `Ctrl+F2` |
97
+ | Autocomplete | `Ctrl+Space` (opens by itself after a dot) |
98
+ | Format / comment | `F7` or `Ctrl+Alt+L` / `Ctrl+/` or `Alt+/` |
99
+ | New connection / console / close tab | `Ctrl+N` / `Ctrl+T` / `Alt+W` |
100
+ | Open / save file | `Ctrl+O` / `Ctrl+S` |
101
+ | History | `Alt+E` |
102
+ | Switch tab | `Alt+←` `Alt+→` |
103
+ | Focus connections / schema / editor / results | `Alt+C` / `Alt+D` / `Alt+Q` / `Alt+R` (or `F6` / `Shift+F6` to cycle) |
104
+ | Tx: toggle / commit / rollback | `F8` / `F9` / `F10` |
105
+ | Grid: sort / copy / copy as / filter / export | `s` / `Ctrl+C` / `y` / `/` / `e` |
106
+ | Command palette | `Ctrl+P` |
107
+ | Quit | `Ctrl+Q` |
108
+
109
+ \* Most terminals send `Ctrl+Enter` as plain `Enter`; it only works where the terminal
110
+ speaks the kitty keyboard protocol. `Alt+Enter` is not used on purpose: it toggles
111
+ full screen in Windows Terminal.
112
+
113
+ ## Files
114
+
115
+ | What | Where (Linux and WSL; macOS uses the platform equivalents) |
116
+ |---|---|
117
+ | Settings, connections, custom drivers, keymap | `~/.config/sqlide/` |
118
+ | Downloaded drivers, history, consoles | `~/.local/share/sqlide/` |
119
+
120
+ Override with `SQLIDE_CONFIG_DIR` and `SQLIDE_DATA_DIR`.
121
+
122
+ ## Notes
123
+
124
+ - Schema reads (tree, autocomplete) use a second connection, so they work while a query runs.
125
+ For in-memory databases (H2 `mem:`, SQLite `:memory:`, DuckDB) a second connection would see
126
+ a different database, so the query connection is shared and reads wait for a running query.
127
+ - Autocomplete reads cached metadata. DDL you run in the editor refreshes it; changes made by
128
+ other clients need `F5` in the schema tree. In manual-commit mode new objects appear after
129
+ Commit.
130
+ - MySQL `DELIMITER x` lines are understood (they are not sent to the server). On SQL Server,
131
+ `CREATE PROCEDURE/FUNCTION/TRIGGER` without `BEGIN..END` runs up to the next `GO`, as T-SQL does.
132
+ - `Alt+1`..`Alt+4` only work in terminals with the kitty keyboard protocol; most terminals
133
+ deliver them as Mac characters, so use the letter keys or `F6`.
134
+ - Tested on Linux and WSL against PostgreSQL, MySQL, MariaDB, ClickHouse, SQL Server, Oracle and
135
+ H2. macOS is covered by CI. On Windows, run it inside WSL (native Windows is not supported).
136
+
137
+ ## Development
138
+
139
+ ```sh
140
+ uv sync
141
+ uv run pytest # unit, H2 integration, Textual pilot tests
142
+ uv run pytest -m docker # also PostgreSQL in Docker
143
+ uv run ruff check && uv run pyright
144
+ ```
145
+
146
+ The code is split into blocks that depend only downwards: `ui → db, sql, grid, export,
147
+ history, config → jvm, drivers`. The core never imports the UI.
148
+
149
+ ## License
150
+
151
+ MIT
@@ -0,0 +1,85 @@
1
+ sqlide/__init__.py,sha256=bS5uJmdnv-G6pgsALLDgflgSRagr7r1MDlnTQCFzqVw,65
2
+ sqlide/__main__.py,sha256=Yv08EcPhINeTLXU-RtRGdXzivukzUiDkjGguvjbQnI4,58
3
+ sqlide/app.py,sha256=oMhwvl6xv84iWYlUDSYZ9CmjSywzWDKT24lUlUNlT8U,1690
4
+ sqlide/cli.py,sha256=TfmpA0Z42V4w1jHhqTAYuw4vrSzoZBPFc82TcHeu-vw,1834
5
+ sqlide/clipboard.py,sha256=DTJ3HvowHAZOKW2woCHmNtvmGAaTqzg7X6hmvGDMrBo,2131
6
+ sqlide/consoles.py,sha256=-hBFjLxWqja8AdsFQq6-ZBibRJz9MlExLoSQorUuP5k,3456
7
+ sqlide/doctor.py,sha256=pfgHZOhqlGHDOqOuGFcWtxli1vsexfugjVSB2gMGbUo,1616
8
+ sqlide/workspace.py,sha256=k8o_Ix8Kl1Bu1dY8WLQgzmYw_9QWaICfr9Uf2Vb2ApY,3711
9
+ sqlide/config/__init__.py,sha256=bGgzsLS8j51YeQlmRfb4QgoRsYd7N6sbueoaQYyORGg,84
10
+ sqlide/config/_toml.py,sha256=AS08g9XBKdZH8EJptrvkoJ_NZb8deDmyVWqffZMYpks,1188
11
+ sqlide/config/connections.py,sha256=bcHO5hkyOIssGc-o--zv95gJcKWPVi7-YhzhytbhG2E,2561
12
+ sqlide/config/keymap.py,sha256=xt_-nP3CcV-d0i46ykIk547BOIORTniFvegDGWU-GUs,737
13
+ sqlide/config/paths.py,sha256=xFvF-CEWYHRSO0QYKSHmWpcCE1iHVFiStZmNccB4vg0,999
14
+ sqlide/config/secrets.py,sha256=irt7sF6rNmGmI1a42WCSTiUzc7AyHkCDcXBPWxogDxQ,2667
15
+ sqlide/config/settings.py,sha256=WMlN-7G7oFZscJmbB-ml6ozJ0Bjq9IPKhWJidw9sckA,1033
16
+ sqlide/db/__init__.py,sha256=RGLCR6ugndC1Tqbs4SbvsT1ugUOj4SgjgkmMzoXckUM,74
17
+ sqlide/db/completion.py,sha256=eM4LtdZJHBZFGJUAwd7U1e1e36b5wxGkKimuf-C_WDY,4502
18
+ sqlide/db/factory.py,sha256=OrVb9g2BJRD_Btj_5ii88slENYw91JoR3V-BjkOseG0,1250
19
+ sqlide/db/metadata.py,sha256=zSe-4AnGKOdDm55jHXMaeoYeVa9u-Y5yH-XTDioPu9U,6002
20
+ sqlide/db/result.py,sha256=G0SYYFe5MWMuJSQTzygrLyFIOVo-QWkbSHE3_rxN-0Y,1316
21
+ sqlide/db/session.py,sha256=BueP3mYP3ek2CsmeIfa4Xd40D-3gL-Kn0zPlldgnZP0,12336
22
+ sqlide/db/types.py,sha256=cgMcmgqW3RWlnEG6kNVIR6yRGlYMvOQJZXCktQWTcys,2856
23
+ sqlide/drivers/__init__.py,sha256=8n__zNkh_AAk9vBkEfCV8MmapqeqBSGYb3da-T9945w,77
24
+ sqlide/drivers/catalog.toml,sha256=BuRfdY1tEG7ETRrRuT58PtLX0S5nMnvDu_vih5aemhI,2532
25
+ sqlide/drivers/cli.py,sha256=I0lQjtmLVz-jR1gWdxYNVEePfP3fmsWLxjeGxHEeAtA,2714
26
+ sqlide/drivers/custom.py,sha256=1IBRR2W25KPfVtfl1xDhNkDE6BRfeccGTEJfEKP6kF8,2366
27
+ sqlide/drivers/loader.py,sha256=xpAIuGEaEk20569wp8R3ImBKEZsmU1vwrlqppwPVStk,2696
28
+ sqlide/drivers/maven.py,sha256=Av0rnc9EcJGqARj76wbqJb3JvsK2gdWGJAKM2Sn_GGE,4233
29
+ sqlide/drivers/registry.py,sha256=LCBJscRUa5oVxuzlZ-RdJOTkoJbhbD8c0GLnQ6dx6wY,4449
30
+ sqlide/export/__init__.py,sha256=idSLdEEIxKhwRio0Y43U-RD4V-kZi0bKVVCHmXw0tj8,377
31
+ sqlide/export/base.py,sha256=zH80UnRc6_38ePDFlD7WdriHwNa-br6JtQlpoIxbn4U,2529
32
+ sqlide/export/csv_.py,sha256=acZ6Y05r469mrKdFNeA3UDxHGwVy3yWpqHWndHMbM80,1163
33
+ sqlide/export/html.py,sha256=jJStDDCh1spPrawSiZ91RzGOHKy_x0CbFQ5DELdsJBU,1430
34
+ sqlide/export/json_.py,sha256=vcla2vs_kM-rXZD4i4hProQOoq4io9Z8z8HvOCIkIA4,1477
35
+ sqlide/export/markdown.py,sha256=0HOao-sUKs7UzLo7BCitnI7g6BwSUi5XSNkVXXwTRyQ,876
36
+ sqlide/export/service.py,sha256=eMfDJsEnmNUvdy3fegIACTpM-H7HsXao0DtuiHTYKi4,1043
37
+ sqlide/export/sql_insert.py,sha256=N-ztrv74lDFBdibFdcRCVNDVe5gZJPb-JasdpTabV7U,1196
38
+ sqlide/export/xlsx.py,sha256=ig2uL4KmueJdOv0d7_Fr3UbfqR527iiPMSjXwR3GPkk,3844
39
+ sqlide/grid/__init__.py,sha256=j_fmSaeGWr1TV3OC2wTZzmx3oxjKLCcz4pOCGN4XMM8,74
40
+ sqlide/grid/copyfmt.py,sha256=Qc7NLzWRJ3XfxJZuzUI68I7np-PX_doF3zlaCZFhKLQ,2932
41
+ sqlide/grid/formatting.py,sha256=DTIndZILfegPr58IqG9VQOq-pTqEQATiilDhMy3lU3Q,1243
42
+ sqlide/grid/model.py,sha256=L_o6ygATjl44qtHLF8-E_biNMrTYOaON2q7pP9zka84,4037
43
+ sqlide/history/__init__.py,sha256=PI6JdMxlXlpRsSpmiFjQUYY2lOxiNF3NHnev80XtFoc,165
44
+ sqlide/history/store.py,sha256=KGL3somblrpMpdeYI0KlHLjqHEwqt4CkFHfqWZtQKhk,3425
45
+ sqlide/jvm/__init__.py,sha256=-8n8yky2vYbXDAzBboZ8fNd3551LlfnggVnHU8fm91U,78
46
+ sqlide/jvm/locate.py,sha256=wbZLfzTnR_v7mhQU0sOM9YOBw7liYuzppNYID6Q7tf0,3056
47
+ sqlide/jvm/runtime.py,sha256=EsuTiM77zgTfgHXDXQJIO5Hk1SqhISmsyZTyIDtioZE,1339
48
+ sqlide/sql/__init__.py,sha256=gGxPiBDTVv8Fidtl79KOIvhoo4VhREs0PK1o2Yiirj0,74
49
+ sqlide/sql/context.py,sha256=J1Tqf2NCuMfEVUMoiQSsq4MLTspmwMYBZpI3CsyQjGc,6559
50
+ sqlide/sql/dialects.py,sha256=2B8I_U2X_oTIitTg8VCW2WcKuH6ky8Hi5g8E4MaLIq8,3519
51
+ sqlide/sql/format.py,sha256=nqH_Wtm3PfalGUe6hT79aagFPaztEAGx0KzLz-jbLls,1711
52
+ sqlide/sql/keywords.py,sha256=5iZ23_Zj3XE4dVyUQFFibXTqaiwHLAfaSQq_dKHwQTw,2766
53
+ sqlide/sql/lexer.py,sha256=I3N5JKKdZB683eNZ3n2zXbFfyRS4a1Dgqroa3e3hw-c,4439
54
+ sqlide/sql/snippets.py,sha256=3z1RA-AqAaWmNNK8WESZ7cjY3sMVe_oDygUj7DVMnMU,1716
55
+ sqlide/sql/splitter.py,sha256=68RBppvPmdJ7rGbw1FFZVkk_SfhR5XATkf6VMkFkxwA,11195
56
+ sqlide/ui/__init__.py,sha256=ch30s3b2RD_biCvR9HNmnH-mGtFyZ_f99uh8NYu3bFs,83
57
+ sqlide/ui/app.tcss,sha256=ApOPe6hOB749x95DlJkcireciCUc5HyAfrbSt8kCQrs,1985
58
+ sqlide/ui/commands.py,sha256=EcwCL7svMqJz1aAvPU8ygkxzIrMp0YjkHGK0S1uzGSw,2501
59
+ sqlide/ui/keymap.py,sha256=Fw8r9xPeSuGbbCHgHJ1uhx_IMDaVrMWEVd9c8mM5gv4,919
60
+ sqlide/ui/screens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
+ sqlide/ui/screens/connection_editor.py,sha256=FwTjyJESy42S3twH9AuFxVaAJmOqFQIaENzsr5WWqiU,4573
62
+ sqlide/ui/screens/dialogs.py,sha256=3XZzKhRjoOFPt2KfkdBsQc_B3R8e5X7lftRQt_TaXV4,3834
63
+ sqlide/ui/screens/driver_manager.py,sha256=byF9LF3KYnpZq4wlPbsxhi6EwxYzGIcds_NlCgr2jsg,7469
64
+ sqlide/ui/screens/export_dialog.py,sha256=ENj71-zSr8XPo46WdHfsxlJo2BJdoGgAeNG6G4nOmjk,6018
65
+ sqlide/ui/screens/grid_dialogs.py,sha256=nSAgvGO3Iu477zOc3n2GV_u1PdqlhCgXpkxuZ194M9w,2949
66
+ sqlide/ui/screens/history.py,sha256=6Ajk71ueVdBAOdrpHcrDuiWE_2PNjScDk1GfCq6y4c4,4718
67
+ sqlide/ui/screens/main.py,sha256=Jg3Dh_h-Y0vjW5DgKuQBZE1Ez5zuhIU-8AD6P97lYo0,15293
68
+ sqlide/ui/screens/settings.py,sha256=w2HivKIn9PYk1pkPs2sG1MiiPSt_ulq4kpJyTM2g8Rw,2919
69
+ sqlide/ui/widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
+ sqlide/ui/widgets/completion_popup.py,sha256=rMK7sq90pt44QB9dKKm1XnS_FM3dPGyWBAFPiCaWVRs,2242
71
+ sqlide/ui/widgets/connections_list.py,sha256=jWIce4MxJcroIQ8W7wKWoV69ks1RAZ6cljq_wO7gUI8,1730
72
+ sqlide/ui/widgets/console_export.py,sha256=kFa_LAbdhMjRvXe63kQ98Qy_1k_5v5KGrhs4BnBeKQw,5058
73
+ sqlide/ui/widgets/console_tab.py,sha256=FgJhKND13nthMaaJdSmqbUGzOKktvtso2aIAesCSbJw,13377
74
+ sqlide/ui/widgets/console_tabs.py,sha256=7C9hrQYibYmk7r5O36cxpzqBeVRCgXXzmXqLf0oe7D0,4431
75
+ sqlide/ui/widgets/result_grid.py,sha256=X9GNqzBzyUsgW92jZQbV9FAA2g267-Cem-IafIKYFYg,16660
76
+ sqlide/ui/widgets/result_panel.py,sha256=ZFXk8QG3e6Br0lXXzvlfJsCVBHnp8FVwjBXImJ81x-c,2386
77
+ sqlide/ui/widgets/result_view.py,sha256=qHMybkYV9gRrPf3_s7NfrazAJHZo1qmcfOBMTOLxYGs,1546
78
+ sqlide/ui/widgets/schema_tree.py,sha256=hso2OlAM2Con9jGbRftSQsR5eTVTHsDPXoD5ok1Kdrg,5544
79
+ sqlide/ui/widgets/sql_editor.py,sha256=3f_m-Rz5RWlfT5Y1dw6yXb5q376bFKwcQAeU3XO5Gkw,11624
80
+ sqlide/ui/widgets/status_bar.py,sha256=8V0WO4Cmo4ApQwKmsPGEo2i7_WKZl0sj8uFR_mCPRCM,896
81
+ sqlide-0.1.0.dist-info/METADATA,sha256=dKN4qHkh49FBz695C4Kzv-IWlCBJozypXS9WBhfbkWE,6347
82
+ sqlide-0.1.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
83
+ sqlide-0.1.0.dist-info/entry_points.txt,sha256=XLcG9sNOP-UdwzRDL2ImiskvaN4ci5DTCs1iuQkXekA,43
84
+ sqlide-0.1.0.dist-info/licenses/LICENSE,sha256=47qKZVDt7YpKkDjkzhXBTAJDNPFJHDOceQ_NnVh-jCI,1062
85
+ sqlide-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.32.4
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ sqlide = sqlide.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 XFaIT
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.