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.
Files changed (61) hide show
  1. {thoth_dbmanager-0.4.13/thoth_dbmanager.egg-info → thoth_dbmanager-0.5.1}/PKG-INFO +228 -27
  2. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/README.md +220 -6
  3. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/pyproject.toml +9 -16
  4. thoth_dbmanager-0.5.1/tests/test_lsh_interactive.py +298 -0
  5. thoth_dbmanager-0.5.1/thoth_dbmanager/ThothDbManager.py +252 -0
  6. thoth_dbmanager-0.5.1/thoth_dbmanager/__init__.py +75 -0
  7. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/adapters/__init__.py +0 -6
  8. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/core/factory.py +0 -16
  9. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/dynamic_imports.py +0 -9
  10. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/helpers/multi_db_generator.py +1 -1
  11. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/plugins/__init__.py +0 -6
  12. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/plugins/sqlite.py +7 -0
  13. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1/thoth_dbmanager.egg-info}/PKG-INFO +228 -27
  14. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager.egg-info/SOURCES.txt +2 -19
  15. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager.egg-info/requires.txt +6 -20
  16. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager.egg-info/top_level.txt +0 -1
  17. thoth_dbmanager-0.4.13/tests/test_integration_new_architecture.py +0 -363
  18. thoth_dbmanager-0.4.13/tests/test_lsh_query.py +0 -63
  19. thoth_dbmanager-0.4.13/tests/test_new_architecture.py +0 -471
  20. thoth_dbmanager-0.4.13/tests/test_parameter_validation.py +0 -68
  21. thoth_dbmanager-0.4.13/tests/test_thoth_informix_manager.py +0 -41
  22. thoth_dbmanager-0.4.13/tests/test_thoth_mariadb_manager.py +0 -39
  23. thoth_dbmanager-0.4.13/tests/test_thoth_mysql_manager.py +0 -39
  24. thoth_dbmanager-0.4.13/tests/test_thoth_oracle_manager.py +0 -39
  25. thoth_dbmanager-0.4.13/tests/test_thoth_pg_manager.py +0 -292
  26. thoth_dbmanager-0.4.13/tests/test_thoth_sqlite_manager.py +0 -390
  27. thoth_dbmanager-0.4.13/tests/test_thoth_sqlserver_manager.py +0 -39
  28. thoth_dbmanager-0.4.13/tests/test_thoth_supabase_manager.py +0 -376
  29. thoth_dbmanager-0.4.13/thoth_dbmanager/ThothDbManager.py +0 -460
  30. thoth_dbmanager-0.4.13/thoth_dbmanager/__init__.py +0 -130
  31. thoth_dbmanager-0.4.13/thoth_dbmanager/adapters/mysql.py +0 -165
  32. thoth_dbmanager-0.4.13/thoth_dbmanager/adapters/oracle.py +0 -554
  33. thoth_dbmanager-0.4.13/thoth_dbmanager/adapters/supabase.py +0 -249
  34. thoth_dbmanager-0.4.13/thoth_dbmanager/plugins/mysql.py +0 -408
  35. thoth_dbmanager-0.4.13/thoth_dbmanager/plugins/oracle.py +0 -150
  36. thoth_dbmanager-0.4.13/thoth_dbmanager/plugins/supabase.py +0 -224
  37. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/LICENSE +0 -0
  38. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/MANIFEST.in +0 -0
  39. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/setup.cfg +0 -0
  40. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/tests/test_thoth_db_manager_base.py +0 -0
  41. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/adapters/mariadb.py +0 -0
  42. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/adapters/postgresql.py +0 -0
  43. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/adapters/sqlite.py +0 -0
  44. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/adapters/sqlserver.py +0 -0
  45. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/core/__init__.py +0 -0
  46. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/core/interfaces.py +0 -0
  47. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/core/registry.py +0 -0
  48. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/documents.py +0 -0
  49. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/helpers/__init__.py +0 -0
  50. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/helpers/preprocess_values.py +0 -0
  51. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/helpers/schema.py +0 -0
  52. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/helpers/search.py +0 -0
  53. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/lsh/__init__.py +0 -0
  54. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/lsh/core.py +0 -0
  55. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/lsh/factory.py +0 -0
  56. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/lsh/manager.py +0 -0
  57. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/lsh/storage.py +0 -0
  58. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/plugins/mariadb.py +0 -0
  59. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/plugins/postgresql.py +0 -0
  60. {thoth_dbmanager-0.4.13 → thoth_dbmanager-0.5.1}/thoth_dbmanager/plugins/sqlserver.py +0 -0
  61. {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.4.13
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.8
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-mysql
73
- Requires-Dist: pytest>=7.0.0; extra == "test-mysql"
74
- Requires-Dist: mysql-connector-python>=8.0.0; extra == "test-mysql"
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
- - **Backward Compatibility**: Maintains compatibility with existing code
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
- pip install thoth-dbmanager
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
- ## Configuration Examples
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
- ### MySQL/MariaDB
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="mysql", # or "mariadb"
463
+ db_type="oracle",
311
464
  db_root_path="./data",
312
465
  db_mode="production",
313
466
  host="localhost",
314
- port=3306,
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
- - **Backward Compatibility**: Maintains compatibility with existing code
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
- pip install thoth-dbmanager
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
- ## Configuration Examples
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
- ### MySQL/MariaDB
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="mysql", # or "mariadb"
400
+ db_type="oracle",
235
401
  db_root_path="./data",
236
402
  db_mode="production",
237
403
  host="localhost",
238
- port=3306,
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.4.13"
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.8"
14
+ requires-python = ">=3.9"
15
15
  classifiers = [
16
16
  "Programming Language :: Python :: 3",
17
- "Programming Language :: Python :: 3.8",
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", "pymssql>=2.3.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-mysql = ["pytest>=7.0.0", "mysql-connector-python>=8.0.0"]
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 = ["dbmanager*", "thoth_dbmanager*"]
85
- exclude = ["tests*", "test_*", "*.tests", "*.tests.*", "data*", "lsh-test*"]
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"]