altcodepro-polydb-python 2.3.21__tar.gz → 2.3.23__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.21/src/altcodepro_polydb_python.egg-info → altcodepro_polydb_python-2.3.23}/PKG-INFO +1 -1
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/pyproject.toml +1 -1
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23/src/altcodepro_polydb_python.egg-info}/PKG-INFO +1 -1
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/PostgreSQLAdapter.py +4 -2
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/databaseFactory.py +20 -5
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/LICENSE +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/MANIFEST.in +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/README.md +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/requirements-aws.txt +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/requirements-azure.txt +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/requirements-dev.txt +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/requirements-gcp.txt +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/requirements-generic.txt +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/requirements.txt +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/setup.cfg +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/setup.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/altcodepro_polydb_python.egg-info/SOURCES.txt +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/altcodepro_polydb_python.egg-info/dependency_links.txt +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/altcodepro_polydb_python.egg-info/requires.txt +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/altcodepro_polydb_python.egg-info/top_level.txt +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/PolyDB.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/__init__.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/AzureBlobStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/AzureFileStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/AzureQueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/AzureTableStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/BlockchainBlobAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/BlockchainFileAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/BlockchainKVAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/BlockchainQueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/DynamoDBAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/EFSAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/FirestoreAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/GCPFilestoreAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/GCPPubSubAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/GCPStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/MongoDBAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/S3Adapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/S3CompatibleAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/SQSAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/VercelBlobAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/VercelFileAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/VercelKVAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/VercelQueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/__init__.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/advanced_query.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/audit/AuditStorage.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/audit/__init__.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/audit/context.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/audit/manager.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/audit/models.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/base/NoSQLKVAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/base/ObjectStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/base/QueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/base/SharedFilesAdapter.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/base/__init__.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/batch.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/cache.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/cloudDatabaseFactory.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/decorators.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/errors.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/json_safe.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/models.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/monitoring.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/multitenancy.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/observability/__init__.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/observability/logging.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/py.typed +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/query.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/registry.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/retry.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/schema.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/security.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/services/__init__.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/services/compliance_service.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/services/security_service.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/types.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/utils.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/validation.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_atomic_decrement.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_aws.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_azure.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_blockchain.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_cloud_factory.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_gcp.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_mongodb.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_multi_engine.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_observability.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_postgresql.py +0 -0
- {altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/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.23
|
|
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.23"
|
|
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.23
|
|
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
|
|
@@ -129,8 +129,10 @@ class PostgreSQLAdapter:
|
|
|
129
129
|
try:
|
|
130
130
|
conn = self._pool.getconn() # type: ignore
|
|
131
131
|
|
|
132
|
-
if
|
|
133
|
-
|
|
132
|
+
# Only ping if the connection is in an error state (closed/broken),
|
|
133
|
+
# not on every call. TCP keepalives handle staleness detection.
|
|
134
|
+
if conn.closed:
|
|
135
|
+
self.logger.warning("Closed connection detected from pool, closing and retrying")
|
|
134
136
|
self._pool.putconn(conn, close=True) # type: ignore
|
|
135
137
|
conn = self._pool.getconn() # type: ignore
|
|
136
138
|
self._drain_transaction(conn)
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/databaseFactory.py
RENAMED
|
@@ -426,7 +426,10 @@ class DatabaseFactory:
|
|
|
426
426
|
after_plain = self.encryption.decrypt_fields(result, encrypted_fields)
|
|
427
427
|
success = True
|
|
428
428
|
if self._enable_cache and self._cache:
|
|
429
|
-
|
|
429
|
+
try:
|
|
430
|
+
self._cache.invalidate(name)
|
|
431
|
+
except Exception as _ce:
|
|
432
|
+
logger.warning("Cache invalidate failed (non-fatal): %s", _ce)
|
|
430
433
|
return after_plain
|
|
431
434
|
|
|
432
435
|
try:
|
|
@@ -484,7 +487,10 @@ class DatabaseFactory:
|
|
|
484
487
|
raw = [self.encryption.decrypt_fields(r, encrypted_fields) for r in raw]
|
|
485
488
|
if self._cache and use_external_cache and not no_cache:
|
|
486
489
|
ttl = cache_ttl or getattr(meta, "cache_ttl", 300)
|
|
487
|
-
|
|
490
|
+
try:
|
|
491
|
+
self._cache.set(name, query or {}, raw, ttl)
|
|
492
|
+
except Exception as _ce:
|
|
493
|
+
logger.warning("Cache set failed (non-fatal): %s", _ce)
|
|
488
494
|
return raw
|
|
489
495
|
|
|
490
496
|
# Check external cache first
|
|
@@ -591,7 +597,10 @@ class DatabaseFactory:
|
|
|
591
597
|
after_plain = self.encryption.decrypt_fields(result, encrypted_fields)
|
|
592
598
|
success = True
|
|
593
599
|
if self._enable_cache and self._cache:
|
|
594
|
-
|
|
600
|
+
try:
|
|
601
|
+
self._cache.invalidate(name)
|
|
602
|
+
except Exception as _ce:
|
|
603
|
+
logger.warning("Cache invalidate failed (non-fatal): %s", _ce)
|
|
595
604
|
return after_plain
|
|
596
605
|
|
|
597
606
|
try:
|
|
@@ -648,7 +657,10 @@ class DatabaseFactory:
|
|
|
648
657
|
after_plain = self.encryption.decrypt_fields(result, encrypted_fields)
|
|
649
658
|
success = True
|
|
650
659
|
if self._enable_cache and self._cache:
|
|
651
|
-
|
|
660
|
+
try:
|
|
661
|
+
self._cache.invalidate(name)
|
|
662
|
+
except Exception as _ce:
|
|
663
|
+
logger.warning("Cache invalidate failed (non-fatal): %s", _ce)
|
|
652
664
|
return after_plain
|
|
653
665
|
|
|
654
666
|
try:
|
|
@@ -715,7 +727,10 @@ class DatabaseFactory:
|
|
|
715
727
|
result = adapters.nosql.delete(cls, entity_id, etag=etag)
|
|
716
728
|
success = True
|
|
717
729
|
if self._enable_cache and self._cache:
|
|
718
|
-
|
|
730
|
+
try:
|
|
731
|
+
self._cache.invalidate(name)
|
|
732
|
+
except Exception as _ce:
|
|
733
|
+
logger.warning("Cache invalidate failed (non-fatal): %s", _ce)
|
|
719
734
|
return result
|
|
720
735
|
|
|
721
736
|
try:
|
|
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.21 → altcodepro_polydb_python-2.3.23}/requirements-generic.txt
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
|
|
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.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/S3Adapter.py
RENAMED
|
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.21 → altcodepro_polydb_python-2.3.23}/src/polydb/adapters/__init__.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/advanced_query.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/audit/AuditStorage.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/audit/__init__.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/audit/context.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/audit/manager.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/audit/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/base/QueueAdapter.py
RENAMED
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/base/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/decorators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/monitoring.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/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
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/src/polydb/validation.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_atomic_decrement.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_blockchain.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_cloud_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_multi_engine.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_observability.py
RENAMED
|
File without changes
|
{altcodepro_polydb_python-2.3.21 → altcodepro_polydb_python-2.3.23}/tests/test_postgresql.py
RENAMED
|
File without changes
|
|
File without changes
|