altcodepro-polydb-python 2.3.1__tar.gz → 2.3.3__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.
- {altcodepro_polydb_python-2.3.1/src/altcodepro_polydb_python.egg-info → altcodepro_polydb_python-2.3.3}/PKG-INFO +1 -1
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/pyproject.toml +1 -1
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3/src/altcodepro_polydb_python.egg-info}/PKG-INFO +1 -1
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/AzureTableStorageAdapter.py +82 -12
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/LICENSE +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/MANIFEST.in +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/README.md +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/example_usage.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/requirements-aws.txt +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/requirements-azure.txt +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/requirements-dev.txt +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/requirements-gcp.txt +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/requirements-generic.txt +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/requirements.txt +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/setup.cfg +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/setup.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/altcodepro_polydb_python.egg-info/SOURCES.txt +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/altcodepro_polydb_python.egg-info/dependency_links.txt +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/altcodepro_polydb_python.egg-info/requires.txt +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/altcodepro_polydb_python.egg-info/top_level.txt +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/PolyDB.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/__init__.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/AzureBlobStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/AzureFileStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/AzureQueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/BlockchainBlobAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/BlockchainKVAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/BlockchainQueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/DynamoDBAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/EFSAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/FirestoreAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/GCPPubSubAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/GCPStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/MongoDBAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/PostgreSQLAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/S3Adapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/S3CompatibleAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/SQSAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/VercelBlobAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/VercelKVAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/VercelQueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/__init__.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/advanced_query.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/audit/AuditStorage.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/audit/__init__.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/audit/context.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/audit/manager.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/audit/models.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/base/NoSQLKVAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/base/ObjectStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/base/QueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/base/SharedFilesAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/base/__init__.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/batch.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/cache.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/cloudDatabaseFactory.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/databaseFactory.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/decorators.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/errors.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/json_safe.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/models.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/monitoring.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/multitenancy.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/py.typed +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/query.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/registry.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/retry.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/schema.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/security.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/types.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/utils.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/validation.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_aws.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_azure.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_blockchain.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_cloud_factory.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_gcp.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_mongodb.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_multi_engine.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_postgresql.py +0 -0
- {altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_vercel.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: altcodepro-polydb-python
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.3
|
|
4
4
|
Summary: Production-ready multi-cloud database abstraction layer with connection pooling, retry logic, and thread safety
|
|
5
5
|
Author: AltCodePro
|
|
6
6
|
Project-URL: Homepage, https://github.com/altcodepro/polydb-python
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "altcodepro-polydb-python"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.3"
|
|
8
8
|
description = "Production-ready multi-cloud database abstraction layer with connection pooling, retry logic, and thread safety"
|
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: altcodepro-polydb-python
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.3
|
|
4
4
|
Summary: Production-ready multi-cloud database abstraction layer with connection pooling, retry logic, and thread safety
|
|
5
5
|
Author: AltCodePro
|
|
6
6
|
Project-URL: Homepage, https://github.com/altcodepro/polydb-python
|
|
@@ -19,7 +19,9 @@ from ..errors import NoSQLError, ConnectionError
|
|
|
19
19
|
from ..retry import retry
|
|
20
20
|
from ..types import JsonDict
|
|
21
21
|
from ..models import PartitionConfig
|
|
22
|
+
import logging
|
|
22
23
|
|
|
24
|
+
logger = logging.getLogger(__name__)
|
|
23
25
|
|
|
24
26
|
_BYTES_PREFIX = "@@polydb_bytes@@:"
|
|
25
27
|
_JSON_PREFIX = "@@polydb_json@@:"
|
|
@@ -281,11 +283,22 @@ class AzureTableStorageAdapter(NoSQLKVAdapter):
|
|
|
281
283
|
|
|
282
284
|
return out
|
|
283
285
|
|
|
286
|
+
def _sanitize_blob_part(self, value: str) -> str:
|
|
287
|
+
# Blob-safe: lowercase, alphanumeric + dash only
|
|
288
|
+
s = str(value).lower()
|
|
289
|
+
s = re.sub(r"[^a-z0-9\-]", "-", s)
|
|
290
|
+
s = re.sub(r"-+", "-", s)
|
|
291
|
+
return s.strip("-")[:100]
|
|
292
|
+
|
|
284
293
|
def _entity_size_bytes(self, entity: JsonDict) -> int:
|
|
285
294
|
return len(json.dumps(entity, default=json_safe).encode("utf-8"))
|
|
286
295
|
|
|
287
296
|
def _blob_key(self, pk: str, rk: str, checksum: str) -> str:
|
|
288
|
-
|
|
297
|
+
safe_pk = self._sanitize_blob_part(pk)
|
|
298
|
+
safe_rk = self._sanitize_blob_part(rk)
|
|
299
|
+
|
|
300
|
+
# Flat structure (avoid deep paths)
|
|
301
|
+
return f"{safe_pk}-{safe_rk}-{checksum}.json"
|
|
289
302
|
|
|
290
303
|
def _blob_upload(self, blob_key: str, data_bytes: bytes):
|
|
291
304
|
if not self._blob_service:
|
|
@@ -323,14 +336,53 @@ class AzureTableStorageAdapter(NoSQLKVAdapter):
|
|
|
323
336
|
|
|
324
337
|
entity = self._pack_entity(model, safe_pk, safe_rk, data)
|
|
325
338
|
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
339
|
+
# ---------------------------------------------------
|
|
340
|
+
# SIZE ESTIMATION (Azure uses UTF-16 for strings)
|
|
341
|
+
# ---------------------------------------------------
|
|
342
|
+
MAX_PROPERTY_CHARS = 30 * 1024 # ~30K chars safe under 32K limit
|
|
343
|
+
MAX_ENTITY_SIZE = 40 * 1024 # conservative total entity threshold
|
|
344
|
+
|
|
345
|
+
def _is_large_string(val: Any) -> bool:
|
|
346
|
+
return isinstance(val, str) and len(val) > MAX_PROPERTY_CHARS
|
|
347
|
+
|
|
348
|
+
# Check if any property exceeds safe char limit
|
|
349
|
+
has_large_property = False
|
|
350
|
+
large_key = None
|
|
351
|
+
|
|
352
|
+
for key, value in entity.items():
|
|
353
|
+
if _is_large_string(value):
|
|
354
|
+
has_large_property = True
|
|
355
|
+
large_key = key
|
|
356
|
+
logger.warning(
|
|
357
|
+
f"LARGE PROPERTY DETECTED: {key} length={len(value)} chars → forcing blob overflow"
|
|
358
|
+
)
|
|
359
|
+
break
|
|
360
|
+
|
|
361
|
+
# Check full entity size
|
|
362
|
+
entity_json = json.dumps(entity, default=json_safe)
|
|
363
|
+
entity_size = len(entity_json.encode("utf-8"))
|
|
364
|
+
|
|
365
|
+
force_blob = has_large_property or entity_size > MAX_ENTITY_SIZE
|
|
366
|
+
|
|
367
|
+
if force_blob:
|
|
368
|
+
logger.info(
|
|
369
|
+
f"Entity exceeds safe limits → using blob storage "
|
|
370
|
+
f"(size={entity_size//1024} KB, large_key={large_key})"
|
|
371
|
+
)
|
|
372
|
+
|
|
373
|
+
# ---------------------------------------------------
|
|
374
|
+
# STORE FULL ENTITY IN BLOB
|
|
375
|
+
# ---------------------------------------------------
|
|
376
|
+
full_payload_bytes = entity_json.encode("utf-8")
|
|
329
377
|
checksum = hashlib.md5(full_payload_bytes).hexdigest()
|
|
330
378
|
blob_key = self._blob_key(safe_pk, safe_rk, checksum)
|
|
379
|
+
|
|
331
380
|
self._blob_upload(blob_key, full_payload_bytes)
|
|
332
381
|
|
|
333
|
-
|
|
382
|
+
# ---------------------------------------------------
|
|
383
|
+
# STORE REFERENCE IN TABLE
|
|
384
|
+
# ---------------------------------------------------
|
|
385
|
+
reference_entity = {
|
|
334
386
|
"PartitionKey": safe_pk,
|
|
335
387
|
"RowKey": safe_rk,
|
|
336
388
|
_MODEL_FIELD: model.__qualname__,
|
|
@@ -341,31 +393,49 @@ class AzureTableStorageAdapter(NoSQLKVAdapter):
|
|
|
341
393
|
"__keymap__": entity.get("__keymap__", "{}"),
|
|
342
394
|
}
|
|
343
395
|
|
|
344
|
-
#
|
|
345
|
-
kept = 0
|
|
396
|
+
# Keep only small searchable fields
|
|
346
397
|
for k, v in entity.items():
|
|
347
398
|
if k in ("PartitionKey", "RowKey", "__keymap__", _MODEL_FIELD):
|
|
348
399
|
continue
|
|
349
400
|
if k.startswith("_"):
|
|
350
401
|
continue
|
|
351
|
-
|
|
402
|
+
|
|
403
|
+
if isinstance(v, (str, bool, int, float)):
|
|
404
|
+
if isinstance(v, str) and len(v) > 2000:
|
|
405
|
+
continue
|
|
406
|
+
reference_entity[k] = v
|
|
407
|
+
|
|
408
|
+
elif isinstance(v, datetime):
|
|
352
409
|
reference_entity[k] = v
|
|
353
|
-
kept += 1
|
|
354
|
-
if kept >= 50:
|
|
355
|
-
break
|
|
356
410
|
|
|
357
411
|
self._table_client.upsert_entity(reference_entity)
|
|
412
|
+
|
|
413
|
+
logger.info(f"Stored in blob: {blob_key} ({len(full_payload_bytes)//1024} KB)")
|
|
414
|
+
|
|
358
415
|
return {
|
|
359
416
|
"PartitionKey": safe_pk,
|
|
360
417
|
"RowKey": safe_rk,
|
|
361
418
|
"_overflow": True,
|
|
419
|
+
"_blob_key": blob_key,
|
|
362
420
|
"id": safe_rk,
|
|
363
421
|
}
|
|
364
422
|
|
|
423
|
+
# ---------------------------------------------------
|
|
424
|
+
# NORMAL TABLE STORAGE
|
|
425
|
+
# ---------------------------------------------------
|
|
365
426
|
self._table_client.upsert_entity(entity)
|
|
366
|
-
|
|
427
|
+
|
|
428
|
+
return {
|
|
429
|
+
"PartitionKey": safe_pk,
|
|
430
|
+
"RowKey": safe_rk,
|
|
431
|
+
"id": safe_rk,
|
|
432
|
+
}
|
|
367
433
|
|
|
368
434
|
except Exception as e:
|
|
435
|
+
# Do NOT retry deterministic size errors
|
|
436
|
+
if "PropertyValueTooLarge" in str(e):
|
|
437
|
+
raise NoSQLError("Azure Table limit exceeded → must use blob overflow") from e
|
|
438
|
+
|
|
369
439
|
raise NoSQLError(f"Azure Table put failed: {str(e)}")
|
|
370
440
|
|
|
371
441
|
@retry(max_attempts=3, delay=1.0, exceptions=(NoSQLError,))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/EFSAdapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/S3Adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/SQSAdapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/adapters/__init__.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/advanced_query.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/audit/AuditStorage.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/audit/__init__.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/audit/context.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/audit/manager.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/audit/models.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/base/NoSQLKVAdapter.py
RENAMED
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/base/QueueAdapter.py
RENAMED
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/base/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/cloudDatabaseFactory.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/databaseFactory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/src/polydb/multitenancy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_cloud_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.1 → altcodepro_polydb_python-2.3.3}/tests/test_multi_engine.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|