thoth-dbmanager 0.4.3__tar.gz → 0.4.6__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 (58) hide show
  1. {thoth_dbmanager-0.4.3/thoth_dbmanager.egg-info → thoth_dbmanager-0.4.6}/PKG-INFO +1 -2
  2. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/pyproject.toml +1 -2
  3. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/ThothDbManager.py +1 -0
  4. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/plugins/mariadb.py +24 -1
  5. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/plugins/mysql.py +24 -1
  6. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/plugins/postgresql.py +28 -2
  7. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/plugins/sqlite.py +28 -2
  8. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6/thoth_dbmanager.egg-info}/PKG-INFO +1 -2
  9. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/LICENSE +0 -0
  10. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/MANIFEST.in +0 -0
  11. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/README.md +0 -0
  12. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/setup.cfg +0 -0
  13. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_integration_new_architecture.py +0 -0
  14. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_lsh_query.py +0 -0
  15. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_new_architecture.py +0 -0
  16. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_parameter_validation.py +0 -0
  17. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_thoth_db_manager_base.py +0 -0
  18. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_thoth_informix_manager.py +0 -0
  19. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_thoth_mariadb_manager.py +0 -0
  20. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_thoth_mysql_manager.py +0 -0
  21. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_thoth_oracle_manager.py +0 -0
  22. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_thoth_pg_manager.py +0 -0
  23. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_thoth_sqlite_manager.py +0 -0
  24. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_thoth_sqlserver_manager.py +0 -0
  25. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/tests/test_thoth_supabase_manager.py +0 -0
  26. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/__init__.py +0 -0
  27. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/adapters/__init__.py +0 -0
  28. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/adapters/mariadb.py +0 -0
  29. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/adapters/mysql.py +0 -0
  30. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/adapters/oracle.py +0 -0
  31. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/adapters/postgresql.py +0 -0
  32. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/adapters/sqlite.py +0 -0
  33. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/adapters/sqlserver.py +0 -0
  34. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/adapters/supabase.py +0 -0
  35. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/core/__init__.py +0 -0
  36. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/core/factory.py +0 -0
  37. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/core/interfaces.py +0 -0
  38. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/core/registry.py +0 -0
  39. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/documents.py +0 -0
  40. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/dynamic_imports.py +0 -0
  41. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/helpers/__init__.py +0 -0
  42. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/helpers/multi_db_generator.py +0 -0
  43. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/helpers/preprocess_values.py +0 -0
  44. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/helpers/schema.py +0 -0
  45. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/helpers/search.py +0 -0
  46. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/lsh/__init__.py +0 -0
  47. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/lsh/core.py +0 -0
  48. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/lsh/factory.py +0 -0
  49. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/lsh/manager.py +0 -0
  50. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/lsh/storage.py +0 -0
  51. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/plugins/__init__.py +0 -0
  52. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/plugins/oracle.py +0 -0
  53. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/plugins/sqlserver.py +0 -0
  54. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager/plugins/supabase.py +0 -0
  55. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager.egg-info/SOURCES.txt +0 -0
  56. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager.egg-info/dependency_links.txt +0 -0
  57. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager.egg-info/requires.txt +0 -0
  58. {thoth_dbmanager-0.4.3 → thoth_dbmanager-0.4.6}/thoth_dbmanager.egg-info/top_level.txt +0 -0
@@ -1,9 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: thoth_dbmanager
3
- Version: 0.4.3
3
+ Version: 0.4.6
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
- License: MIT
7
6
  Project-URL: Homepage, https://github.com/mptyl/thoth_dbmanager
8
7
  Project-URL: Bug Tracker, https://github.com/mptyl/thoth_dbmanager/issues
9
8
  Project-URL: Documentation, https://github.com/mptyl/thoth_dbmanager#readme
@@ -4,13 +4,12 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "thoth_dbmanager"
7
- version = "0.4.3"
7
+ version = "0.4.6"
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
- license = {text = "MIT"}
14
13
  keywords = ["database", "sql", "lsh", "similarity-search", "orm"]
15
14
  requires-python = ">=3.8"
16
15
  classifiers = [
@@ -346,6 +346,7 @@ class ThothDbManagerAdapter(ThothDbManager):
346
346
  self.db_type = plugin.supported_db_types[0] if plugin.supported_db_types else "unknown"
347
347
  self.db_id = getattr(plugin, 'db_id', None)
348
348
  self.db_directory_path = getattr(plugin, 'db_directory_path', None)
349
+ self.schema = getattr(plugin, 'schema', "")
349
350
 
350
351
  # Engine and connection (delegated to adapter)
351
352
  self.engine = getattr(plugin.adapter, 'engine', None) if plugin.adapter else None
@@ -377,7 +377,30 @@ class MariaDBPlugin(DbPlugin):
377
377
  """Lazy load LSH manager for backward compatibility."""
378
378
  if self._lsh_manager is None and self.db_directory_path:
379
379
  from ..lsh.manager import LshManager
380
- self._lsh_manager = LshManager(self.db_directory_path)
380
+ # Try multiple possible paths for LSH data
381
+ possible_paths = [
382
+ self.db_directory_path, # Original path
383
+ Path(self.db_root_path) / "data" / f"{self.db_mode}_databases" / self.db_id, # Data subdirectory
384
+ ]
385
+
386
+ lsh_manager = None
387
+ for path in possible_paths:
388
+ try:
389
+ temp_manager = LshManager(path)
390
+ if temp_manager.is_available():
391
+ lsh_manager = temp_manager
392
+ logger.info(f"Found LSH data at: {path}")
393
+ break
394
+ except Exception as e:
395
+ logger.debug(f"LSH not found at {path}: {e}")
396
+ continue
397
+
398
+ if lsh_manager is None:
399
+ # Create manager with original path as fallback
400
+ lsh_manager = LshManager(self.db_directory_path)
401
+ logger.warning(f"No LSH data found, using default path: {self.db_directory_path}")
402
+
403
+ self._lsh_manager = lsh_manager
381
404
  return self._lsh_manager
382
405
 
383
406
  # LSH integration methods for backward compatibility
@@ -349,7 +349,30 @@ class MySQLPlugin(DbPlugin):
349
349
  """Lazy load LSH manager for backward compatibility."""
350
350
  if self._lsh_manager is None and self.db_directory_path:
351
351
  from ..lsh.manager import LshManager
352
- self._lsh_manager = LshManager(self.db_directory_path)
352
+ # Try multiple possible paths for LSH data
353
+ possible_paths = [
354
+ self.db_directory_path, # Original path
355
+ Path(self.db_root_path) / "data" / f"{self.db_mode}_databases" / self.db_id, # Data subdirectory
356
+ ]
357
+
358
+ lsh_manager = None
359
+ for path in possible_paths:
360
+ try:
361
+ temp_manager = LshManager(path)
362
+ if temp_manager.is_available():
363
+ lsh_manager = temp_manager
364
+ logger.info(f"Found LSH data at: {path}")
365
+ break
366
+ except Exception as e:
367
+ logger.debug(f"LSH not found at {path}: {e}")
368
+ continue
369
+
370
+ if lsh_manager is None:
371
+ # Create manager with original path as fallback
372
+ lsh_manager = LshManager(self.db_directory_path)
373
+ logger.warning(f"No LSH data found, using default path: {self.db_directory_path}")
374
+
375
+ self._lsh_manager = lsh_manager
353
376
  return self._lsh_manager
354
377
 
355
378
  # LSH integration methods for backward compatibility
@@ -27,7 +27,10 @@ class PostgreSQLPlugin(DbPlugin):
27
27
  super().__init__(db_root_path, db_mode, **kwargs)
28
28
  self.db_id = None
29
29
  self.db_directory_path = None
30
-
30
+
31
+ # PostgreSQL default schema is 'public', but can be overridden
32
+ self.schema = kwargs.get('schema', 'public')
33
+
31
34
  # LSH manager integration (for backward compatibility)
32
35
  self._lsh_manager = None
33
36
 
@@ -90,7 +93,30 @@ class PostgreSQLPlugin(DbPlugin):
90
93
  """Lazy load LSH manager for backward compatibility"""
91
94
  if self._lsh_manager is None and self.db_directory_path:
92
95
  from ..lsh.manager import LshManager
93
- self._lsh_manager = LshManager(self.db_directory_path)
96
+ # Try multiple possible paths for LSH data
97
+ possible_paths = [
98
+ self.db_directory_path, # Original path
99
+ Path(self.db_root_path) / "data" / f"{self.db_mode}_databases" / self.db_id, # Data subdirectory
100
+ ]
101
+
102
+ lsh_manager = None
103
+ for path in possible_paths:
104
+ try:
105
+ temp_manager = LshManager(path)
106
+ if temp_manager.is_available():
107
+ lsh_manager = temp_manager
108
+ logger.info(f"Found LSH data at: {path}")
109
+ break
110
+ except Exception as e:
111
+ logger.debug(f"LSH not found at {path}: {e}")
112
+ continue
113
+
114
+ if lsh_manager is None:
115
+ # Create manager with original path as fallback
116
+ lsh_manager = LshManager(self.db_directory_path)
117
+ logger.warning(f"No LSH data found, using default path: {self.db_directory_path}")
118
+
119
+ self._lsh_manager = lsh_manager
94
120
  return self._lsh_manager
95
121
 
96
122
  # LSH integration methods for backward compatibility
@@ -28,7 +28,10 @@ class SQLitePlugin(DbPlugin):
28
28
  self.db_id = None
29
29
  self.db_directory_path = None
30
30
  self.database_path = None
31
-
31
+
32
+ # SQLite doesn't have named schemas like PostgreSQL, so we use empty string
33
+ self.schema = ""
34
+
32
35
  # LSH manager integration (for backward compatibility)
33
36
  self._lsh_manager = None
34
37
 
@@ -114,7 +117,30 @@ class SQLitePlugin(DbPlugin):
114
117
  """Lazy load LSH manager for backward compatibility"""
115
118
  if self._lsh_manager is None and self.db_directory_path:
116
119
  from ..lsh.manager import LshManager
117
- self._lsh_manager = LshManager(self.db_directory_path)
120
+ # Try multiple possible paths for LSH data
121
+ possible_paths = [
122
+ self.db_directory_path, # Original path
123
+ Path(self.db_root_path) / "data" / f"{self.db_mode}_databases" / self.db_id, # Data subdirectory
124
+ ]
125
+
126
+ lsh_manager = None
127
+ for path in possible_paths:
128
+ try:
129
+ temp_manager = LshManager(path)
130
+ if temp_manager.is_available():
131
+ lsh_manager = temp_manager
132
+ logger.info(f"Found LSH data at: {path}")
133
+ break
134
+ except Exception as e:
135
+ logger.debug(f"LSH not found at {path}: {e}")
136
+ continue
137
+
138
+ if lsh_manager is None:
139
+ # Create manager with original path as fallback
140
+ lsh_manager = LshManager(self.db_directory_path)
141
+ logger.warning(f"No LSH data found, using default path: {self.db_directory_path}")
142
+
143
+ self._lsh_manager = lsh_manager
118
144
  return self._lsh_manager
119
145
 
120
146
  # LSH integration methods for backward compatibility
@@ -1,9 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: thoth_dbmanager
3
- Version: 0.4.3
3
+ Version: 0.4.6
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
- License: MIT
7
6
  Project-URL: Homepage, https://github.com/mptyl/thoth_dbmanager
8
7
  Project-URL: Bug Tracker, https://github.com/mptyl/thoth_dbmanager/issues
9
8
  Project-URL: Documentation, https://github.com/mptyl/thoth_dbmanager#readme
File without changes