thoth-dbmanager 0.4.13__tar.gz → 0.5.1__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.
- {thoth_dbmanager-0.4.13/thoth_dbmanager.egg-info → thoth_dbmanager-0.5.1}/PKG-INFO +228 -27
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/README.md +220 -6
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/pyproject.toml +9 -16
- thoth_dbmanager-0.5.1/tests/test_lsh_interactive.py +298 -0
- thoth_dbmanager-0.5.1/thoth_dbmanager/ThothDbManager.py +252 -0
- thoth_dbmanager-0.5.1/thoth_dbmanager/__init__.py +75 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/adapters/__init__.py +0 -6
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/core/factory.py +0 -16
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/dynamic_imports.py +0 -9
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/helpers/multi_db_generator.py +1 -1
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/plugins/__init__.py +0 -6
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/plugins/sqlite.py +7 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1/thoth_dbmanager.egg-info}/PKG-INFO +228 -27
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager.egg-info/SOURCES.txt +2 -19
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager.egg-info/requires.txt +6 -20
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager.egg-info/top_level.txt +0 -1
- thoth_dbmanager-0.4.13/tests/test_integration_new_architecture.py +0 -363
- thoth_dbmanager-0.4.13/tests/test_lsh_query.py +0 -63
- thoth_dbmanager-0.4.13/tests/test_new_architecture.py +0 -471
- thoth_dbmanager-0.4.13/tests/test_parameter_validation.py +0 -68
- thoth_dbmanager-0.4.13/tests/test_thoth_informix_manager.py +0 -41
- thoth_dbmanager-0.4.13/tests/test_thoth_mariadb_manager.py +0 -39
- thoth_dbmanager-0.4.13/tests/test_thoth_mysql_manager.py +0 -39
- thoth_dbmanager-0.4.13/tests/test_thoth_oracle_manager.py +0 -39
- thoth_dbmanager-0.4.13/tests/test_thoth_pg_manager.py +0 -292
- thoth_dbmanager-0.4.13/tests/test_thoth_sqlite_manager.py +0 -390
- thoth_dbmanager-0.4.13/tests/test_thoth_sqlserver_manager.py +0 -39
- thoth_dbmanager-0.4.13/tests/test_thoth_supabase_manager.py +0 -376
- thoth_dbmanager-0.4.13/thoth_dbmanager/ThothDbManager.py +0 -460
- thoth_dbmanager-0.4.13/thoth_dbmanager/__init__.py +0 -130
- thoth_dbmanager-0.4.13/thoth_dbmanager/adapters/mysql.py +0 -165
- thoth_dbmanager-0.4.13/thoth_dbmanager/adapters/oracle.py +0 -554
- thoth_dbmanager-0.4.13/thoth_dbmanager/adapters/supabase.py +0 -249
- thoth_dbmanager-0.4.13/thoth_dbmanager/plugins/mysql.py +0 -408
- thoth_dbmanager-0.4.13/thoth_dbmanager/plugins/oracle.py +0 -150
- thoth_dbmanager-0.4.13/thoth_dbmanager/plugins/supabase.py +0 -224
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/LICENSE +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/MANIFEST.in +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/setup.cfg +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/tests/test_thoth_db_manager_base.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/adapters/mariadb.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/adapters/postgresql.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/adapters/sqlite.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/adapters/sqlserver.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/core/__init__.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/core/interfaces.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/core/registry.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/documents.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/helpers/__init__.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/helpers/preprocess_values.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/helpers/schema.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/helpers/search.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/lsh/__init__.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/lsh/core.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/lsh/factory.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/lsh/manager.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/lsh/storage.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/plugins/mariadb.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/plugins/postgresql.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/plugins/sqlserver.py +0 -0
- {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager.egg-info/dependency_links.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: thoth_dbmanager
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.5.1
|
4
4
|
Summary: A Python library for managing SQL databases with support for multiple database types, LSH-based similarity search, and a modern plugin architecture.
|
5
5
|
Author-email: Marco Pancotti <mp@tylconsulting.it>
|
6
6
|
Project-URL: Homepage, https://github.com/mptyl/thoth_dbmanager
|
@@ -9,7 +9,6 @@ Project-URL: Documentation, https://github.com/mptyl/thoth_dbmanager#readme
|
|
9
9
|
Project-URL: Source Code, https://github.com/mptyl/thoth_dbmanager
|
10
10
|
Keywords: database,sql,lsh,similarity-search,orm
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
12
|
-
Classifier: Programming Language :: Python :: 3.8
|
13
12
|
Classifier: Programming Language :: Python :: 3.9
|
14
13
|
Classifier: Programming Language :: Python :: 3.10
|
15
14
|
Classifier: Programming Language :: Python :: 3.11
|
@@ -20,7 +19,7 @@ Classifier: Intended Audience :: Developers
|
|
20
19
|
Classifier: Topic :: Database
|
21
20
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
22
21
|
Classifier: Development Status :: 4 - Beta
|
23
|
-
Requires-Python: >=3.
|
22
|
+
Requires-Python: >=3.9
|
24
23
|
Description-Content-Type: text/markdown
|
25
24
|
License-File: LICENSE
|
26
25
|
Requires-Dist: datasketch>=1.5.0
|
@@ -31,30 +30,15 @@ Requires-Dist: pandas>=1.3.0
|
|
31
30
|
Requires-Dist: requests>=2.25.0
|
32
31
|
Provides-Extra: postgresql
|
33
32
|
Requires-Dist: psycopg2-binary>=2.9.0; extra == "postgresql"
|
34
|
-
Provides-Extra: mysql
|
35
|
-
Requires-Dist: mysql-connector-python>=8.0.0; extra == "mysql"
|
36
33
|
Provides-Extra: mariadb
|
37
34
|
Requires-Dist: mariadb>=1.1.0; extra == "mariadb"
|
38
35
|
Provides-Extra: sqlserver
|
39
36
|
Requires-Dist: pyodbc>=4.0.0; extra == "sqlserver"
|
40
|
-
Requires-Dist: pymssql>=2.3.0; extra == "sqlserver"
|
41
|
-
Provides-Extra: oracle
|
42
|
-
Requires-Dist: cx_Oracle>=8.3.0; extra == "oracle"
|
43
|
-
Requires-Dist: oracledb>=3.0.0; extra == "oracle"
|
44
|
-
Provides-Extra: supabase
|
45
|
-
Requires-Dist: supabase>=2.0.0; extra == "supabase"
|
46
|
-
Requires-Dist: postgrest-py>=0.10.0; extra == "supabase"
|
47
|
-
Requires-Dist: gotrue>=1.0.0; extra == "supabase"
|
48
37
|
Provides-Extra: sqlite
|
49
38
|
Provides-Extra: all
|
50
39
|
Requires-Dist: psycopg2-binary>=2.9.0; extra == "all"
|
51
|
-
Requires-Dist: mysql-connector-python>=8.0.0; extra == "all"
|
52
40
|
Requires-Dist: mariadb>=1.1.0; extra == "all"
|
53
41
|
Requires-Dist: pyodbc>=4.0.0; extra == "all"
|
54
|
-
Requires-Dist: pymssql>=2.3.0; extra == "all"
|
55
|
-
Requires-Dist: cx_Oracle>=8.3.0; extra == "all"
|
56
|
-
Requires-Dist: oracledb>=3.0.0; extra == "all"
|
57
|
-
Requires-Dist: supabase>=2.0.0; extra == "all"
|
58
42
|
Provides-Extra: dev
|
59
43
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
60
44
|
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
@@ -69,9 +53,12 @@ Requires-Dist: docker>=6.0.0; extra == "dev"
|
|
69
53
|
Provides-Extra: test-postgresql
|
70
54
|
Requires-Dist: pytest>=7.0.0; extra == "test-postgresql"
|
71
55
|
Requires-Dist: psycopg2-binary>=2.9.0; extra == "test-postgresql"
|
72
|
-
Provides-Extra: test-
|
73
|
-
Requires-Dist: pytest>=7.0.0; extra == "test-
|
74
|
-
Requires-Dist:
|
56
|
+
Provides-Extra: test-mariadb
|
57
|
+
Requires-Dist: pytest>=7.0.0; extra == "test-mariadb"
|
58
|
+
Requires-Dist: mariadb>=1.1.0; extra == "test-mariadb"
|
59
|
+
Provides-Extra: test-sqlserver
|
60
|
+
Requires-Dist: pytest>=7.0.0; extra == "test-sqlserver"
|
61
|
+
Requires-Dist: pyodbc>=4.0.0; extra == "test-sqlserver"
|
75
62
|
Dynamic: license-file
|
76
63
|
|
77
64
|
# Thoth Database Manager
|
@@ -84,12 +71,83 @@ A Python library for managing SQL databases with support for multiple database t
|
|
84
71
|
- **Plugin Architecture**: Extensible design for adding new database types
|
85
72
|
- **LSH Search**: Locality-Sensitive Hashing for finding similar values across database columns
|
86
73
|
- **Type Safety**: Pydantic-based document models for structured data
|
87
|
-
- **
|
74
|
+
- **Modern API**: Clean, plugin-based interface for all database operations
|
88
75
|
|
89
76
|
## Installation
|
90
77
|
|
78
|
+
### Basic Installation
|
79
|
+
|
80
|
+
```bash
|
81
|
+
uv add thoth-dbmanager
|
82
|
+
```
|
83
|
+
|
84
|
+
### Installation with Database Support
|
85
|
+
|
86
|
+
To use specific databases, you'll need to install the corresponding database drivers. You can install them individually or use our convenience extras:
|
87
|
+
|
88
|
+
#### Install with All Database Support
|
89
|
+
|
90
|
+
```bash
|
91
|
+
uv add thoth-dbmanager[all]
|
92
|
+
```
|
93
|
+
|
94
|
+
#### Install with Specific Database Support
|
95
|
+
|
96
|
+
**PostgreSQL:**
|
97
|
+
|
98
|
+
```bash
|
99
|
+
uv add thoth-dbmanager[postgresql]
|
100
|
+
# or manually: uv add psycopg2-binary
|
101
|
+
```
|
102
|
+
|
103
|
+
**MySQL:**
|
104
|
+
|
105
|
+
```bash
|
106
|
+
uv add thoth-dbmanager[mysql]
|
107
|
+
# or manually: uv add mysql-connector-python
|
108
|
+
```
|
109
|
+
|
110
|
+
**MariaDB:**
|
111
|
+
|
112
|
+
```bash
|
113
|
+
uv add thoth-dbmanager[mariadb]
|
114
|
+
# or manually: uv add mariadb
|
115
|
+
```
|
116
|
+
|
117
|
+
**SQL Server:**
|
118
|
+
|
119
|
+
```bash
|
120
|
+
uv add thoth-dbmanager[sqlserver]
|
121
|
+
# or manually: uv add pyodbc
|
122
|
+
```
|
123
|
+
|
124
|
+
**Oracle:**
|
125
|
+
|
126
|
+
```bash
|
127
|
+
uv add thoth-dbmanager[oracle]
|
128
|
+
# or manually: uv add cx_Oracle
|
129
|
+
```
|
130
|
+
|
131
|
+
**Informix:**
|
132
|
+
|
133
|
+
```bash
|
134
|
+
uv add thoth-dbmanager[informix]
|
135
|
+
# or manually: uv add IfxPy
|
136
|
+
```
|
137
|
+
|
138
|
+
**Supabase:**
|
139
|
+
|
91
140
|
```bash
|
92
|
-
|
141
|
+
uv add thoth-dbmanager[supabase]
|
142
|
+
# or manually: uv add supabase gotrue
|
143
|
+
```
|
144
|
+
|
145
|
+
**SQLite** is supported out of the box (no additional drivers needed).
|
146
|
+
|
147
|
+
#### Development Installation
|
148
|
+
|
149
|
+
```bash
|
150
|
+
uv add thoth-dbmanager[dev]
|
93
151
|
```
|
94
152
|
|
95
153
|
## Quick Start
|
@@ -278,9 +336,17 @@ if hasattr(manager, 'get_columns_as_documents'):
|
|
278
336
|
print(f"Primary Key: {doc.is_pk}")
|
279
337
|
```
|
280
338
|
|
281
|
-
##
|
339
|
+
## Database Connection Examples
|
282
340
|
|
283
341
|
### PostgreSQL
|
342
|
+
|
343
|
+
**Installation:**
|
344
|
+
|
345
|
+
```bash
|
346
|
+
uv add thoth-dbmanager[postgresql]
|
347
|
+
```
|
348
|
+
|
349
|
+
**Usage:**
|
284
350
|
```python
|
285
351
|
manager = ThothDbManager.get_instance(
|
286
352
|
db_type="postgresql",
|
@@ -294,7 +360,63 @@ manager = ThothDbManager.get_instance(
|
|
294
360
|
)
|
295
361
|
```
|
296
362
|
|
363
|
+
### MySQL
|
364
|
+
|
365
|
+
**Installation:**
|
366
|
+
|
367
|
+
```bash
|
368
|
+
uv add thoth-dbmanager[mysql]
|
369
|
+
```
|
370
|
+
|
371
|
+
**Usage:**
|
372
|
+
|
373
|
+
```python
|
374
|
+
manager = ThothDbManager.get_instance(
|
375
|
+
db_type="mysql",
|
376
|
+
db_root_path="./data",
|
377
|
+
db_mode="production",
|
378
|
+
host="localhost",
|
379
|
+
port=3306,
|
380
|
+
database="myapp",
|
381
|
+
user="dbuser",
|
382
|
+
password="dbpass"
|
383
|
+
)
|
384
|
+
```
|
385
|
+
|
386
|
+
### MariaDB
|
387
|
+
|
388
|
+
**Installation:**
|
389
|
+
|
390
|
+
```bash
|
391
|
+
uv add thoth-dbmanager[mariadb]
|
392
|
+
```
|
393
|
+
|
394
|
+
**Usage:**
|
395
|
+
|
396
|
+
```python
|
397
|
+
manager = ThothDbManager.get_instance(
|
398
|
+
db_type="mariadb",
|
399
|
+
db_root_path="./data",
|
400
|
+
db_mode="production",
|
401
|
+
host="localhost",
|
402
|
+
port=3306,
|
403
|
+
database="myapp",
|
404
|
+
user="dbuser",
|
405
|
+
password="dbpass"
|
406
|
+
)
|
407
|
+
```
|
408
|
+
|
297
409
|
### SQLite
|
410
|
+
|
411
|
+
**Installation:**
|
412
|
+
|
413
|
+
```bash
|
414
|
+
# No additional drivers needed - SQLite is included with Python
|
415
|
+
uv add thoth-dbmanager
|
416
|
+
```
|
417
|
+
|
418
|
+
**Usage:**
|
419
|
+
|
298
420
|
```python
|
299
421
|
manager = ThothDbManager.get_instance(
|
300
422
|
db_type="sqlite",
|
@@ -304,20 +426,99 @@ manager = ThothDbManager.get_instance(
|
|
304
426
|
)
|
305
427
|
```
|
306
428
|
|
307
|
-
###
|
429
|
+
### SQL Server
|
430
|
+
|
431
|
+
**Installation:**
|
432
|
+
|
433
|
+
```bash
|
434
|
+
uv add thoth-dbmanager[sqlserver]
|
435
|
+
```
|
436
|
+
|
437
|
+
**Usage:**
|
438
|
+
|
439
|
+
```python
|
440
|
+
manager = ThothDbManager.get_instance(
|
441
|
+
db_type="sqlserver",
|
442
|
+
db_root_path="./data",
|
443
|
+
db_mode="production",
|
444
|
+
server="localhost",
|
445
|
+
database="myapp",
|
446
|
+
user="dbuser",
|
447
|
+
password="dbpass"
|
448
|
+
)
|
449
|
+
```
|
450
|
+
|
451
|
+
### Oracle
|
452
|
+
|
453
|
+
**Installation:**
|
454
|
+
|
455
|
+
```bash
|
456
|
+
uv add thoth-dbmanager[oracle]
|
457
|
+
```
|
458
|
+
|
459
|
+
**Usage:**
|
460
|
+
|
308
461
|
```python
|
309
462
|
manager = ThothDbManager.get_instance(
|
310
|
-
db_type="
|
463
|
+
db_type="oracle",
|
311
464
|
db_root_path="./data",
|
312
465
|
db_mode="production",
|
313
466
|
host="localhost",
|
314
|
-
port=
|
467
|
+
port=1521,
|
468
|
+
service_name="ORCL",
|
469
|
+
user="dbuser",
|
470
|
+
password="dbpass"
|
471
|
+
)
|
472
|
+
```
|
473
|
+
|
474
|
+
### Informix
|
475
|
+
|
476
|
+
**Installation:**
|
477
|
+
|
478
|
+
```bash
|
479
|
+
uv add thoth-dbmanager[informix]
|
480
|
+
```
|
481
|
+
|
482
|
+
**Usage:**
|
483
|
+
|
484
|
+
```python
|
485
|
+
manager = ThothDbManager.get_instance(
|
486
|
+
db_type="informix",
|
487
|
+
db_root_path="./data",
|
488
|
+
db_mode="production",
|
489
|
+
server="informix_server",
|
315
490
|
database="myapp",
|
491
|
+
host="localhost",
|
316
492
|
user="dbuser",
|
317
493
|
password="dbpass"
|
318
494
|
)
|
319
495
|
```
|
320
496
|
|
497
|
+
### Supabase
|
498
|
+
|
499
|
+
**Installation:**
|
500
|
+
|
501
|
+
```bash
|
502
|
+
uv add thoth-dbmanager[supabase]
|
503
|
+
```
|
504
|
+
|
505
|
+
**Usage:**
|
506
|
+
|
507
|
+
```python
|
508
|
+
manager = ThothDbManager.get_instance(
|
509
|
+
db_type="supabase",
|
510
|
+
db_root_path="./data",
|
511
|
+
db_mode="production",
|
512
|
+
host="db.example.supabase.co",
|
513
|
+
port=5432,
|
514
|
+
database="postgres",
|
515
|
+
user="postgres",
|
516
|
+
password="your_password",
|
517
|
+
project_url="https://your-project.supabase.co",
|
518
|
+
api_key="your_supabase_api_key"
|
519
|
+
)
|
520
|
+
```
|
521
|
+
|
321
522
|
## Error Handling
|
322
523
|
|
323
524
|
The library provides clear error messages for common issues:
|
@@ -8,12 +8,83 @@ A Python library for managing SQL databases with support for multiple database t
|
|
8
8
|
- **Plugin Architecture**: Extensible design for adding new database types
|
9
9
|
- **LSH Search**: Locality-Sensitive Hashing for finding similar values across database columns
|
10
10
|
- **Type Safety**: Pydantic-based document models for structured data
|
11
|
-
- **
|
11
|
+
- **Modern API**: Clean, plugin-based interface for all database operations
|
12
12
|
|
13
13
|
## Installation
|
14
14
|
|
15
|
+
### Basic Installation
|
16
|
+
|
17
|
+
```bash
|
18
|
+
uv add thoth-dbmanager
|
19
|
+
```
|
20
|
+
|
21
|
+
### Installation with Database Support
|
22
|
+
|
23
|
+
To use specific databases, you'll need to install the corresponding database drivers. You can install them individually or use our convenience extras:
|
24
|
+
|
25
|
+
#### Install with All Database Support
|
26
|
+
|
27
|
+
```bash
|
28
|
+
uv add thoth-dbmanager[all]
|
29
|
+
```
|
30
|
+
|
31
|
+
#### Install with Specific Database Support
|
32
|
+
|
33
|
+
**PostgreSQL:**
|
34
|
+
|
35
|
+
```bash
|
36
|
+
uv add thoth-dbmanager[postgresql]
|
37
|
+
# or manually: uv add psycopg2-binary
|
38
|
+
```
|
39
|
+
|
40
|
+
**MySQL:**
|
41
|
+
|
42
|
+
```bash
|
43
|
+
uv add thoth-dbmanager[mysql]
|
44
|
+
# or manually: uv add mysql-connector-python
|
45
|
+
```
|
46
|
+
|
47
|
+
**MariaDB:**
|
48
|
+
|
49
|
+
```bash
|
50
|
+
uv add thoth-dbmanager[mariadb]
|
51
|
+
# or manually: uv add mariadb
|
52
|
+
```
|
53
|
+
|
54
|
+
**SQL Server:**
|
55
|
+
|
56
|
+
```bash
|
57
|
+
uv add thoth-dbmanager[sqlserver]
|
58
|
+
# or manually: uv add pyodbc
|
59
|
+
```
|
60
|
+
|
61
|
+
**Oracle:**
|
62
|
+
|
63
|
+
```bash
|
64
|
+
uv add thoth-dbmanager[oracle]
|
65
|
+
# or manually: uv add cx_Oracle
|
66
|
+
```
|
67
|
+
|
68
|
+
**Informix:**
|
69
|
+
|
70
|
+
```bash
|
71
|
+
uv add thoth-dbmanager[informix]
|
72
|
+
# or manually: uv add IfxPy
|
73
|
+
```
|
74
|
+
|
75
|
+
**Supabase:**
|
76
|
+
|
15
77
|
```bash
|
16
|
-
|
78
|
+
uv add thoth-dbmanager[supabase]
|
79
|
+
# or manually: uv add supabase gotrue
|
80
|
+
```
|
81
|
+
|
82
|
+
**SQLite** is supported out of the box (no additional drivers needed).
|
83
|
+
|
84
|
+
#### Development Installation
|
85
|
+
|
86
|
+
```bash
|
87
|
+
uv add thoth-dbmanager[dev]
|
17
88
|
```
|
18
89
|
|
19
90
|
## Quick Start
|
@@ -202,9 +273,17 @@ if hasattr(manager, 'get_columns_as_documents'):
|
|
202
273
|
print(f"Primary Key: {doc.is_pk}")
|
203
274
|
```
|
204
275
|
|
205
|
-
##
|
276
|
+
## Database Connection Examples
|
206
277
|
|
207
278
|
### PostgreSQL
|
279
|
+
|
280
|
+
**Installation:**
|
281
|
+
|
282
|
+
```bash
|
283
|
+
uv add thoth-dbmanager[postgresql]
|
284
|
+
```
|
285
|
+
|
286
|
+
**Usage:**
|
208
287
|
```python
|
209
288
|
manager = ThothDbManager.get_instance(
|
210
289
|
db_type="postgresql",
|
@@ -218,7 +297,63 @@ manager = ThothDbManager.get_instance(
|
|
218
297
|
)
|
219
298
|
```
|
220
299
|
|
300
|
+
### MySQL
|
301
|
+
|
302
|
+
**Installation:**
|
303
|
+
|
304
|
+
```bash
|
305
|
+
uv add thoth-dbmanager[mysql]
|
306
|
+
```
|
307
|
+
|
308
|
+
**Usage:**
|
309
|
+
|
310
|
+
```python
|
311
|
+
manager = ThothDbManager.get_instance(
|
312
|
+
db_type="mysql",
|
313
|
+
db_root_path="./data",
|
314
|
+
db_mode="production",
|
315
|
+
host="localhost",
|
316
|
+
port=3306,
|
317
|
+
database="myapp",
|
318
|
+
user="dbuser",
|
319
|
+
password="dbpass"
|
320
|
+
)
|
321
|
+
```
|
322
|
+
|
323
|
+
### MariaDB
|
324
|
+
|
325
|
+
**Installation:**
|
326
|
+
|
327
|
+
```bash
|
328
|
+
uv add thoth-dbmanager[mariadb]
|
329
|
+
```
|
330
|
+
|
331
|
+
**Usage:**
|
332
|
+
|
333
|
+
```python
|
334
|
+
manager = ThothDbManager.get_instance(
|
335
|
+
db_type="mariadb",
|
336
|
+
db_root_path="./data",
|
337
|
+
db_mode="production",
|
338
|
+
host="localhost",
|
339
|
+
port=3306,
|
340
|
+
database="myapp",
|
341
|
+
user="dbuser",
|
342
|
+
password="dbpass"
|
343
|
+
)
|
344
|
+
```
|
345
|
+
|
221
346
|
### SQLite
|
347
|
+
|
348
|
+
**Installation:**
|
349
|
+
|
350
|
+
```bash
|
351
|
+
# No additional drivers needed - SQLite is included with Python
|
352
|
+
uv add thoth-dbmanager
|
353
|
+
```
|
354
|
+
|
355
|
+
**Usage:**
|
356
|
+
|
222
357
|
```python
|
223
358
|
manager = ThothDbManager.get_instance(
|
224
359
|
db_type="sqlite",
|
@@ -228,20 +363,99 @@ manager = ThothDbManager.get_instance(
|
|
228
363
|
)
|
229
364
|
```
|
230
365
|
|
231
|
-
###
|
366
|
+
### SQL Server
|
367
|
+
|
368
|
+
**Installation:**
|
369
|
+
|
370
|
+
```bash
|
371
|
+
uv add thoth-dbmanager[sqlserver]
|
372
|
+
```
|
373
|
+
|
374
|
+
**Usage:**
|
375
|
+
|
376
|
+
```python
|
377
|
+
manager = ThothDbManager.get_instance(
|
378
|
+
db_type="sqlserver",
|
379
|
+
db_root_path="./data",
|
380
|
+
db_mode="production",
|
381
|
+
server="localhost",
|
382
|
+
database="myapp",
|
383
|
+
user="dbuser",
|
384
|
+
password="dbpass"
|
385
|
+
)
|
386
|
+
```
|
387
|
+
|
388
|
+
### Oracle
|
389
|
+
|
390
|
+
**Installation:**
|
391
|
+
|
392
|
+
```bash
|
393
|
+
uv add thoth-dbmanager[oracle]
|
394
|
+
```
|
395
|
+
|
396
|
+
**Usage:**
|
397
|
+
|
232
398
|
```python
|
233
399
|
manager = ThothDbManager.get_instance(
|
234
|
-
db_type="
|
400
|
+
db_type="oracle",
|
235
401
|
db_root_path="./data",
|
236
402
|
db_mode="production",
|
237
403
|
host="localhost",
|
238
|
-
port=
|
404
|
+
port=1521,
|
405
|
+
service_name="ORCL",
|
406
|
+
user="dbuser",
|
407
|
+
password="dbpass"
|
408
|
+
)
|
409
|
+
```
|
410
|
+
|
411
|
+
### Informix
|
412
|
+
|
413
|
+
**Installation:**
|
414
|
+
|
415
|
+
```bash
|
416
|
+
uv add thoth-dbmanager[informix]
|
417
|
+
```
|
418
|
+
|
419
|
+
**Usage:**
|
420
|
+
|
421
|
+
```python
|
422
|
+
manager = ThothDbManager.get_instance(
|
423
|
+
db_type="informix",
|
424
|
+
db_root_path="./data",
|
425
|
+
db_mode="production",
|
426
|
+
server="informix_server",
|
239
427
|
database="myapp",
|
428
|
+
host="localhost",
|
240
429
|
user="dbuser",
|
241
430
|
password="dbpass"
|
242
431
|
)
|
243
432
|
```
|
244
433
|
|
434
|
+
### Supabase
|
435
|
+
|
436
|
+
**Installation:**
|
437
|
+
|
438
|
+
```bash
|
439
|
+
uv add thoth-dbmanager[supabase]
|
440
|
+
```
|
441
|
+
|
442
|
+
**Usage:**
|
443
|
+
|
444
|
+
```python
|
445
|
+
manager = ThothDbManager.get_instance(
|
446
|
+
db_type="supabase",
|
447
|
+
db_root_path="./data",
|
448
|
+
db_mode="production",
|
449
|
+
host="db.example.supabase.co",
|
450
|
+
port=5432,
|
451
|
+
database="postgres",
|
452
|
+
user="postgres",
|
453
|
+
password="your_password",
|
454
|
+
project_url="https://your-project.supabase.co",
|
455
|
+
api_key="your_supabase_api_key"
|
456
|
+
)
|
457
|
+
```
|
458
|
+
|
245
459
|
## Error Handling
|
246
460
|
|
247
461
|
The library provides clear error messages for common issues:
|
@@ -1,20 +1,20 @@
|
|
1
1
|
[build-system]
|
2
|
-
requires = ["setuptools>=61.0"]
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
3
3
|
build-backend = "setuptools.build_meta"
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "thoth_dbmanager"
|
7
|
-
version = "0.
|
7
|
+
version = "0.5.1"
|
8
8
|
authors = [
|
9
9
|
{ name="Marco Pancotti", email="mp@tylconsulting.it" },
|
10
10
|
]
|
11
11
|
description = "A Python library for managing SQL databases with support for multiple database types, LSH-based similarity search, and a modern plugin architecture."
|
12
12
|
readme = "README.md"
|
13
13
|
keywords = ["database", "sql", "lsh", "similarity-search", "orm"]
|
14
|
-
requires-python = ">=3.
|
14
|
+
requires-python = ">=3.9"
|
15
15
|
classifiers = [
|
16
16
|
"Programming Language :: Python :: 3",
|
17
|
-
|
17
|
+
|
18
18
|
"Programming Language :: Python :: 3.9",
|
19
19
|
"Programming Language :: Python :: 3.10",
|
20
20
|
"Programming Language :: Python :: 3.11",
|
@@ -36,23 +36,15 @@ dependencies = [
|
|
36
36
|
]
|
37
37
|
[project.optional-dependencies]
|
38
38
|
postgresql = ["psycopg2-binary>=2.9.0"]
|
39
|
-
mysql = ["mysql-connector-python>=8.0.0"]
|
40
39
|
mariadb = ["mariadb>=1.1.0"]
|
41
|
-
sqlserver = ["pyodbc>=4.0.0"
|
42
|
-
oracle = ["cx_Oracle>=8.3.0", "oracledb>=3.0.0"]
|
43
|
-
supabase = ["supabase>=2.0.0", "postgrest-py>=0.10.0", "gotrue>=1.0.0"]
|
40
|
+
sqlserver = ["pyodbc>=4.0.0"]
|
44
41
|
sqlite = []
|
45
42
|
|
46
43
|
# Convenience groups
|
47
44
|
all = [
|
48
45
|
"psycopg2-binary>=2.9.0",
|
49
|
-
"mysql-connector-python>=8.0.0",
|
50
46
|
"mariadb>=1.1.0",
|
51
47
|
"pyodbc>=4.0.0",
|
52
|
-
"pymssql>=2.3.0",
|
53
|
-
"cx_Oracle>=8.3.0",
|
54
|
-
"oracledb>=3.0.0",
|
55
|
-
"supabase>=2.0.0",
|
56
48
|
]
|
57
49
|
|
58
50
|
# Development dependencies
|
@@ -71,7 +63,8 @@ dev = [
|
|
71
63
|
|
72
64
|
# Testing with specific databases
|
73
65
|
test-postgresql = ["pytest>=7.0.0", "psycopg2-binary>=2.9.0"]
|
74
|
-
test-
|
66
|
+
test-mariadb = ["pytest>=7.0.0", "mariadb>=1.1.0"]
|
67
|
+
test-sqlserver = ["pytest>=7.0.0", "pyodbc>=4.0.0"]
|
75
68
|
|
76
69
|
[project.urls]
|
77
70
|
"Homepage" = "https://github.com/mptyl/thoth_dbmanager"
|
@@ -81,8 +74,8 @@ test-mysql = ["pytest>=7.0.0", "mysql-connector-python>=8.0.0"]
|
|
81
74
|
|
82
75
|
[tool.setuptools.packages.find]
|
83
76
|
where = ["."]
|
84
|
-
include = ["
|
85
|
-
exclude = ["tests*", "test_*", "*.tests", "*.tests.*", "data*"
|
77
|
+
include = ["thoth_dbmanager*"]
|
78
|
+
exclude = ["tests*", "test_*", "*.tests", "*.tests.*", "data*"]
|
86
79
|
|
87
80
|
[tool.setuptools.package-data]
|
88
81
|
"*" = ["*.md", "*.txt", "*.yml", "*.yaml"]
|