altcodepro-polydb-python 2.3.9__py3-none-any.whl → 2.3.10__py3-none-any.whl
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.9.dist-info → altcodepro_polydb_python-2.3.10.dist-info}/METADATA +11 -1
- altcodepro_polydb_python-2.3.10.dist-info/RECORD +61 -0
- polydb/adapters/AzureBlobStorageAdapter.py +92 -90
- polydb/adapters/AzureFileStorageAdapter.py +74 -74
- polydb/adapters/AzureQueueAdapter.py +9 -5
- polydb/adapters/AzureTableStorageAdapter.py +5 -5
- polydb/adapters/BlockchainBlobAdapter.py +1 -1
- polydb/adapters/BlockchainFileAdapter.py +217 -0
- polydb/adapters/BlockchainKVAdapter.py +4 -3
- polydb/adapters/BlockchainQueueAdapter.py +3 -2
- polydb/adapters/DynamoDBAdapter.py +12 -3
- polydb/adapters/EFSAdapter.py +45 -19
- polydb/adapters/FirestoreAdapter.py +15 -13
- polydb/adapters/GCPFilestoreAdapter.py +77 -0
- polydb/adapters/GCPPubSubAdapter.py +4 -4
- polydb/adapters/GCPStorageAdapter.py +78 -117
- polydb/adapters/PostgreSQLAdapter.py +2 -1
- polydb/adapters/S3Adapter.py +5 -2
- polydb/adapters/S3CompatibleAdapter.py +87 -57
- polydb/adapters/SQSAdapter.py +5 -2
- polydb/adapters/VercelFileAdapter.py +29 -0
- polydb/audit/__init__.py +1 -1
- polydb/base/SharedFilesAdapter.py +5 -5
- polydb/cloudDatabaseFactory.py +37 -66
- polydb/databaseFactory.py +23 -7
- altcodepro_polydb_python-2.3.9.dist-info/RECORD +0 -58
- {altcodepro_polydb_python-2.3.9.dist-info → altcodepro_polydb_python-2.3.10.dist-info}/WHEEL +0 -0
- {altcodepro_polydb_python-2.3.9.dist-info → altcodepro_polydb_python-2.3.10.dist-info}/licenses/LICENSE +0 -0
- {altcodepro_polydb_python-2.3.9.dist-info → altcodepro_polydb_python-2.3.10.dist-info}/top_level.txt +0 -0
polydb/cloudDatabaseFactory.py
CHANGED
|
@@ -4,6 +4,8 @@ import os
|
|
|
4
4
|
import threading
|
|
5
5
|
from typing import Dict, List, Optional
|
|
6
6
|
|
|
7
|
+
from .base import SharedFilesAdapter
|
|
8
|
+
|
|
7
9
|
from .adapters.AzureFileStorageAdapter import AzureFileStorageAdapter
|
|
8
10
|
from .adapters.EFSAdapter import EFSAdapter
|
|
9
11
|
from .adapters.PostgreSQLAdapter import PostgreSQLAdapter
|
|
@@ -44,7 +46,6 @@ from .adapters.VercelQueueAdapter import VercelQueueAdapter
|
|
|
44
46
|
from .adapters.BlockchainQueueAdapter import BlockchainQueueAdapter
|
|
45
47
|
from .adapters.SQSAdapter import SQSAdapter
|
|
46
48
|
|
|
47
|
-
|
|
48
49
|
# ============================================================
|
|
49
50
|
# FACTORY
|
|
50
51
|
# ============================================================
|
|
@@ -106,7 +107,9 @@ class CloudDatabaseFactory:
|
|
|
106
107
|
# OBJECT STORAGE
|
|
107
108
|
# --------------------------------------------------------
|
|
108
109
|
def get_object_storage(
|
|
109
|
-
self,
|
|
110
|
+
self,
|
|
111
|
+
name: str = "azure",
|
|
112
|
+
container_name: Optional[str] = None,
|
|
110
113
|
) -> (
|
|
111
114
|
AzureBlobStorageAdapter
|
|
112
115
|
| S3CompatibleAdapter
|
|
@@ -115,13 +118,12 @@ class CloudDatabaseFactory:
|
|
|
115
118
|
| BlockchainBlobAdapter
|
|
116
119
|
):
|
|
117
120
|
with self._lock:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
if not cfg:
|
|
123
|
-
cfg = StorageConfig(provider=self.provider, name=name)
|
|
121
|
+
# cache per (name, container) so different containers don't collide
|
|
122
|
+
cache_key = f"object::{name}::{container_name or ''}"
|
|
123
|
+
if cache_key in self.instances:
|
|
124
|
+
return self.instances[cache_key]
|
|
124
125
|
|
|
126
|
+
cfg = self.configs.get(name) or StorageConfig(provider=self.provider, name=name)
|
|
125
127
|
provider = cfg.provider
|
|
126
128
|
|
|
127
129
|
# ---------------- AZURE ----------------
|
|
@@ -130,11 +132,12 @@ class CloudDatabaseFactory:
|
|
|
130
132
|
|
|
131
133
|
connection_string = None
|
|
132
134
|
container = None
|
|
133
|
-
|
|
134
135
|
if isinstance(cfg, AzureStorageConfig):
|
|
135
136
|
connection_string = cfg.connection_string
|
|
136
137
|
container = cfg.container
|
|
137
138
|
|
|
139
|
+
container = container_name or container # per-call overrides config/env
|
|
140
|
+
|
|
138
141
|
instance = AzureBlobStorageAdapter(
|
|
139
142
|
connection_string=connection_string or "",
|
|
140
143
|
container_name=container or "",
|
|
@@ -157,7 +160,7 @@ class CloudDatabaseFactory:
|
|
|
157
160
|
bucket = cfg.bucket
|
|
158
161
|
project_id = cfg.project_id
|
|
159
162
|
endpoint = cfg.endpoint
|
|
160
|
-
|
|
163
|
+
bucket = container_name or bucket # container_name doubles as bucket override
|
|
161
164
|
instance = GCPStorageAdapter(
|
|
162
165
|
project_id=project_id, endpoint=endpoint, bucket_name=bucket
|
|
163
166
|
)
|
|
@@ -168,21 +171,16 @@ class CloudDatabaseFactory:
|
|
|
168
171
|
|
|
169
172
|
token = None
|
|
170
173
|
timeout = 10
|
|
171
|
-
|
|
172
174
|
if isinstance(cfg, VercelStorageConfig):
|
|
173
175
|
token = cfg.token
|
|
174
176
|
timeout = cfg.timeout
|
|
175
|
-
|
|
176
177
|
instance = VercelBlobAdapter(token=token or "", timeout=timeout)
|
|
177
178
|
|
|
178
179
|
# ---------------- BLOCKCHAIN ----------------
|
|
179
180
|
elif provider == CloudProvider.BLOCKCHAIN:
|
|
180
181
|
from .adapters.BlockchainBlobAdapter import BlockchainBlobAdapter
|
|
181
182
|
|
|
182
|
-
ipfs_url = None
|
|
183
|
-
if isinstance(cfg, BlockchainStorageConfig):
|
|
184
|
-
ipfs_url = cfg.ipfs_url
|
|
185
|
-
|
|
183
|
+
ipfs_url = cfg.ipfs_url if isinstance(cfg, BlockchainStorageConfig) else None
|
|
186
184
|
instance = BlockchainBlobAdapter(ipfs_url=ipfs_url)
|
|
187
185
|
|
|
188
186
|
# ---------------- DEFAULT ----------------
|
|
@@ -192,7 +190,7 @@ class CloudDatabaseFactory:
|
|
|
192
190
|
self.logger.warning(f"Fallback to S3-compatible for provider={provider}")
|
|
193
191
|
instance = S3CompatibleAdapter()
|
|
194
192
|
|
|
195
|
-
self.instances[
|
|
193
|
+
self.instances[cache_key] = instance
|
|
196
194
|
return instance
|
|
197
195
|
|
|
198
196
|
# --------------------------------------------------------
|
|
@@ -440,82 +438,55 @@ class CloudDatabaseFactory:
|
|
|
440
438
|
self.instances["queue"] = instance
|
|
441
439
|
return instance
|
|
442
440
|
|
|
443
|
-
def get_files(
|
|
444
|
-
self, name: str = "files"
|
|
445
|
-
) -> (
|
|
446
|
-
AzureFileStorageAdapter
|
|
447
|
-
| EFSAdapter
|
|
448
|
-
| GCPStorageAdapter
|
|
449
|
-
| AzureBlobStorageAdapter
|
|
450
|
-
| S3CompatibleAdapter
|
|
451
|
-
| VercelBlobAdapter
|
|
452
|
-
| BlockchainBlobAdapter
|
|
453
|
-
):
|
|
441
|
+
def get_files(self, name: str = "files"):
|
|
454
442
|
with self._lock:
|
|
455
443
|
if name in self.instances:
|
|
456
444
|
return self.instances[name]
|
|
457
445
|
|
|
458
|
-
cfg = self.configs.get(name)
|
|
459
|
-
if not cfg:
|
|
460
|
-
cfg = StorageConfig(provider=self.provider, name=name)
|
|
446
|
+
cfg = self.configs.get(name) or StorageConfig(provider=self.provider, name=name)
|
|
461
447
|
|
|
462
|
-
# ---------------- AZURE FILE STORAGE ----------------
|
|
463
448
|
if cfg.provider == CloudProvider.AZURE:
|
|
464
449
|
from .adapters.AzureFileStorageAdapter import AzureFileStorageAdapter
|
|
465
450
|
|
|
466
451
|
connection_string = ""
|
|
467
452
|
share_name = ""
|
|
468
|
-
|
|
469
453
|
if isinstance(cfg, AzureFileConfig):
|
|
470
454
|
connection_string = cfg.connection_string or ""
|
|
471
455
|
share_name = cfg.share_name or ""
|
|
472
|
-
|
|
473
456
|
instance = AzureFileStorageAdapter(
|
|
474
|
-
connection_string=connection_string,
|
|
475
|
-
share_name=share_name,
|
|
457
|
+
connection_string=connection_string, share_name=share_name
|
|
476
458
|
)
|
|
477
459
|
|
|
478
|
-
# ---------------- AWS EFS ----------------
|
|
479
460
|
elif cfg.provider == CloudProvider.AWS:
|
|
480
461
|
from .adapters.EFSAdapter import EFSAdapter
|
|
481
462
|
|
|
482
|
-
mount_point = None
|
|
483
|
-
|
|
484
|
-
mount_point = cfg.mount_path
|
|
485
|
-
|
|
486
|
-
instance = EFSAdapter(
|
|
487
|
-
mount_point=mount_point or os.getenv("EFS_MOUNT_POINT", "/mnt/efs")
|
|
488
|
-
)
|
|
463
|
+
mount_point = cfg.mount_path if isinstance(cfg, EFSFileConfig) else None
|
|
464
|
+
instance = EFSAdapter(mount_point=mount_point or "")
|
|
489
465
|
|
|
490
|
-
# ---------------- GCP STORAGE (FILES VIA BUCKET) ----------------
|
|
491
466
|
elif cfg.provider == CloudProvider.GCP:
|
|
492
|
-
from .adapters.
|
|
467
|
+
from .adapters.GCPFilestoreAdapter import FilestoreAdapter
|
|
493
468
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
bucket = None
|
|
469
|
+
mount_point = getattr(cfg, "mount_path", None)
|
|
470
|
+
instance = FilestoreAdapter(mount_point=mount_point or "")
|
|
497
471
|
|
|
498
|
-
if isinstance(cfg, GCPFileConfig):
|
|
499
|
-
bucket = cfg.bucket
|
|
500
|
-
|
|
501
|
-
instance = GCPStorageAdapter(
|
|
502
|
-
project_id=project_id,
|
|
503
|
-
endpoint=endpoint,
|
|
504
|
-
bucket_name=bucket,
|
|
505
|
-
)
|
|
506
|
-
|
|
507
|
-
# ---------------- VERCEL (fallback to blob) ----------------
|
|
508
472
|
elif cfg.provider == CloudProvider.VERCEL:
|
|
509
|
-
|
|
510
|
-
instance = self.get_object_storage(name)
|
|
473
|
+
from .adapters.VercelFileAdapter import VercelFileAdapter
|
|
511
474
|
|
|
512
|
-
|
|
513
|
-
elif cfg.provider == CloudProvider.BLOCKCHAIN:
|
|
514
|
-
raise NotImplementedError("File storage not supported for blockchain")
|
|
475
|
+
instance = VercelFileAdapter()
|
|
515
476
|
|
|
516
|
-
|
|
477
|
+
elif cfg.provider == CloudProvider.BLOCKCHAIN:
|
|
478
|
+
from .adapters.BlockchainFileAdapter import BlockchainFileAdapter
|
|
479
|
+
|
|
480
|
+
instance = BlockchainFileAdapter(
|
|
481
|
+
chain=getattr(cfg, "chain", None),
|
|
482
|
+
rpc_url=getattr(cfg, "rpc_url", None),
|
|
483
|
+
private_key=getattr(cfg, "private_key", None),
|
|
484
|
+
contract_address=getattr(cfg, "contract_address", None),
|
|
485
|
+
contract_abi=getattr(cfg, "contract_abi", None),
|
|
486
|
+
ipfs_url=getattr(cfg, "ipfs_url", None),
|
|
487
|
+
)
|
|
517
488
|
else:
|
|
518
|
-
raise NotImplementedError(f"File storage not supported for {
|
|
489
|
+
raise NotImplementedError(f"File storage not supported for {cfg.provider.value}")
|
|
519
490
|
|
|
520
491
|
self.instances[name] = instance
|
|
521
492
|
return instance
|
polydb/databaseFactory.py
CHANGED
|
@@ -554,6 +554,7 @@ class DatabaseFactory:
|
|
|
554
554
|
after_plain = None
|
|
555
555
|
success = False
|
|
556
556
|
error: Optional[str] = None
|
|
557
|
+
|
|
557
558
|
def _op() -> JsonDict:
|
|
558
559
|
nonlocal after_plain, success
|
|
559
560
|
if self._is_sql(meta, engine_override):
|
|
@@ -866,8 +867,11 @@ class DatabaseFactory:
|
|
|
866
867
|
media_type: Optional[str] = None,
|
|
867
868
|
metadata: Optional[Dict[str, Any]] = None,
|
|
868
869
|
storage_name: str = "azure",
|
|
870
|
+
container_name: Optional[str] = None,
|
|
869
871
|
) -> str:
|
|
870
|
-
storage = self._engines[0].cloud_factory.get_object_storage(
|
|
872
|
+
storage = self._engines[0].cloud_factory.get_object_storage(
|
|
873
|
+
storage_name, container_name=container_name
|
|
874
|
+
)
|
|
871
875
|
return storage.put(
|
|
872
876
|
key=key,
|
|
873
877
|
data=data,
|
|
@@ -877,16 +881,28 @@ class DatabaseFactory:
|
|
|
877
881
|
metadata=metadata or {},
|
|
878
882
|
)
|
|
879
883
|
|
|
880
|
-
def download_blob(
|
|
881
|
-
|
|
884
|
+
def download_blob(
|
|
885
|
+
self, key: str, *, storage_name: str = "azure", container_name: Optional[str] = None
|
|
886
|
+
) -> Optional[bytes]:
|
|
887
|
+
storage = self._engines[0].cloud_factory.get_object_storage(
|
|
888
|
+
storage_name, container_name=container_name
|
|
889
|
+
)
|
|
882
890
|
return storage.get(key)
|
|
883
891
|
|
|
884
|
-
def delete_blob(
|
|
885
|
-
|
|
892
|
+
def delete_blob(
|
|
893
|
+
self, key: str, *, storage_name: str = "azure", container_name: Optional[str] = None
|
|
894
|
+
) -> bool:
|
|
895
|
+
storage = self._engines[0].cloud_factory.get_object_storage(
|
|
896
|
+
storage_name, container_name=container_name
|
|
897
|
+
)
|
|
886
898
|
return storage.delete(key)
|
|
887
899
|
|
|
888
|
-
def list_blob(
|
|
889
|
-
|
|
900
|
+
def list_blob(
|
|
901
|
+
self, prefix: str = "", *, storage_name: str = "azure", container_name: Optional[str] = None
|
|
902
|
+
) -> List[str]:
|
|
903
|
+
storage = self._engines[0].cloud_factory.get_object_storage(
|
|
904
|
+
storage_name, container_name=container_name
|
|
905
|
+
)
|
|
890
906
|
return storage.list(prefix)
|
|
891
907
|
|
|
892
908
|
# ══════════════════════════════════════════════════════════════════════
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
altcodepro_polydb_python-2.3.9.dist-info/licenses/LICENSE,sha256=9X8GLocsBwy-5aR5JGOt2SAMDDPs9Qv-YnqmHBHOXrw,1067
|
|
2
|
-
polydb/PolyDB.py,sha256=p9eDdvBGosE4fNSSAbtq3tHObdKZ-C2V2Q_ia39Ackk,23397
|
|
3
|
-
polydb/__init__.py,sha256=UhUzfSvmMgKbV2tSME1ooIyfshIBi7_WyU4xl1tWWiA,1454
|
|
4
|
-
polydb/advanced_query.py,sha256=cxMB-EB-qT3bWXJlhmjnMCUtrzogORWyoEfS50Dy7go,4280
|
|
5
|
-
polydb/batch.py,sha256=_DjWZa1ZXYSk6MLKqFe0eT7SYVRZtYNqZb9bI8Y2sao,4566
|
|
6
|
-
polydb/cache.py,sha256=JBXF1XEK-fY80ar8SDE893Z1Z116YtXAEG0PaJ0Nkcw,7658
|
|
7
|
-
polydb/cloudDatabaseFactory.py,sha256=E5tFJBNJuwwdJ4sqjr3IgUTpUWpXoa-UarIv8pLB7lY,18121
|
|
8
|
-
polydb/databaseFactory.py,sha256=LtRxQ5R6A4XegqSsHI26lbtTsmrzpVLvKIqn57BAjIg,40447
|
|
9
|
-
polydb/decorators.py,sha256=Rzk8Bj8wHi8YFtc06HEYT5r_Vqqn7TGaCtR5qvHdY-E,420
|
|
10
|
-
polydb/errors.py,sha256=rcFeBH0cenjJ86v0cmDc2Yjj4R019pLCBcTeSC4qps4,1428
|
|
11
|
-
polydb/json_safe.py,sha256=R5PrqAGirqjYKPyy-8KH-lSXjLH0FPr2TSGozy4eheU,149
|
|
12
|
-
polydb/models.py,sha256=9uu_BaJ95194n-vnd0Rx9KLc6aPS-mxn10P4W5grUcI,8155
|
|
13
|
-
polydb/monitoring.py,sha256=UMm3ybyRJjAQi-prXXMLl9zuHhnhMnYBzMD3XWK66y8,9571
|
|
14
|
-
polydb/multitenancy.py,sha256=9kyY98RpKg8xDy9ejB_MyV_YzF7eZd4uxashw5S8vlg,6408
|
|
15
|
-
polydb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
polydb/query.py,sha256=L13FL8A06HxT0F_LGlY9IBh-62j1VWZrv2Tu_wS-Ed0,6348
|
|
17
|
-
polydb/registry.py,sha256=RD_elvFXcmhTdCyZDm2f3ej0elxqhArnSJ2aO9k5VCU,2352
|
|
18
|
-
polydb/retry.py,sha256=etsj8MGo1WMvlcZMzWmFELAsWCRs-XPEuJe6K76QgbM,2548
|
|
19
|
-
polydb/schema.py,sha256=VrOayX6V6AD2Qh3-lm4ZVPTpI24e4V52IYheZf2rNQ4,5812
|
|
20
|
-
polydb/security.py,sha256=-bXdRjFmvq4X6ie6FrZMcO9ZbgjWFkNySSbRwFt1X1Q,16281
|
|
21
|
-
polydb/types.py,sha256=XB_85Un8_aWt4dSfpjIGotHbK3KBY2WurQGXr9EOxWY,2992
|
|
22
|
-
polydb/utils.py,sha256=G_ki5zKr5rGPgpFQM1CTq6twQd5OytaHKfet267MftM,1662
|
|
23
|
-
polydb/validation.py,sha256=a1o1d02k3c6PWQwkBbw_0nEmIgrdB5RR8OcpNQMn4cA,4810
|
|
24
|
-
polydb/adapters/AzureBlobStorageAdapter.py,sha256=iNscCIeoWy4YJo3IbI7gNam-NUT7t45ayrlPnYfqlCQ,6409
|
|
25
|
-
polydb/adapters/AzureFileStorageAdapter.py,sha256=OuZY5P-FTQ36954obJN65oSMqmW3d-7QBmXxVGX0lds,6086
|
|
26
|
-
polydb/adapters/AzureQueueAdapter.py,sha256=5tslwI0DgvMeb20w57aVSSSKiuCJEKrYjN0kGuFcdUI,5276
|
|
27
|
-
polydb/adapters/AzureTableStorageAdapter.py,sha256=FEND2V8-V-CGoTj0hWz8C7FIsA17wr-tTkXidcyjqbM,23345
|
|
28
|
-
polydb/adapters/BlockchainBlobAdapter.py,sha256=BXSDT6rDGGE04qM2-dVNAeWk-VcF82JGHAdUJeYHCbI,3320
|
|
29
|
-
polydb/adapters/BlockchainKVAdapter.py,sha256=5Egic8QyulgYcy9O12iWKq2EDyVEvnXp_ereYgIvbHk,4546
|
|
30
|
-
polydb/adapters/BlockchainQueueAdapter.py,sha256=K01klT8Eu8c-y1G9Sg2r0PIjay_at9x27kCTTEHPkNY,4179
|
|
31
|
-
polydb/adapters/DynamoDBAdapter.py,sha256=MSgIk43WT5z0fbBpZJ_5uLq0CfZS2YRfwX06-b_sl3o,18235
|
|
32
|
-
polydb/adapters/EFSAdapter.py,sha256=z6ZarHlG_3HMHEk3yVXdJT2vlc8xleML1vEhxizMbdk,1723
|
|
33
|
-
polydb/adapters/FirestoreAdapter.py,sha256=cvDOlxrEI8u81kWkjhazqb2rG4Q4I8Ftoho_cbx9nZQ,13947
|
|
34
|
-
polydb/adapters/GCPPubSubAdapter.py,sha256=YFkQkTBezjoV56FsIVoNjQ0cqIo3uYzUF_fMf7CCV4M,8759
|
|
35
|
-
polydb/adapters/GCPStorageAdapter.py,sha256=B8i9k2rCuH8NJ-wU4RpijbiCx_O_EbUeQXyhcjNdgHU,7758
|
|
36
|
-
polydb/adapters/MongoDBAdapter.py,sha256=vX3SAHDLbTnHABGesES9N-gYSQqPqdqFLJgd7pYWZzw,7471
|
|
37
|
-
polydb/adapters/PostgreSQLAdapter.py,sha256=n6fGqD86nOG86FWjMAz_QpDQEvjGr5PcVrF4iOxWjDg,24858
|
|
38
|
-
polydb/adapters/S3Adapter.py,sha256=2TqdtTGYKApMFbj6ssbH5JMMM4JUxWzCDdgVJSa_o-w,7547
|
|
39
|
-
polydb/adapters/S3CompatibleAdapter.py,sha256=k_25W3hUjTJ-3v1dcMev-jY3oypT8s3tPz3lRdp5Gb0,5642
|
|
40
|
-
polydb/adapters/SQSAdapter.py,sha256=qQeMIlvJAkpY0M7Pf1E5sdZxnrLKx_cuoheIj_irNSc,5759
|
|
41
|
-
polydb/adapters/VercelBlobAdapter.py,sha256=Hu1u8vE-3rvJMBDotnPKeRoVaH1Vl9PdM1hBKphgj2w,6983
|
|
42
|
-
polydb/adapters/VercelKVAdapter.py,sha256=QZxRkuYzVNWFCEFaJPSph8YEAut-YtlXPqbCt0JlROI,8647
|
|
43
|
-
polydb/adapters/VercelQueueAdapter.py,sha256=cWtPaMIWCako0HHr_rzAE6vMLugSR6zBXqp3VP9MXwY,2375
|
|
44
|
-
polydb/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
-
polydb/audit/AuditStorage.py,sha256=A5HLhkWG8kef_caUuWakJf4fSK_r03NN4JLbbK7N55c,4949
|
|
46
|
-
polydb/audit/__init__.py,sha256=m_GE7gjLw00zfHX-1SpkF7QZpRE72HO699ZzKzqD3kc,244
|
|
47
|
-
polydb/audit/context.py,sha256=-A1FMtmr-2snVAHpTrVT80u-D_MCaqX6AoV4Ku2bz_o,1955
|
|
48
|
-
polydb/audit/manager.py,sha256=KzaaOf5bDfr4M-CkCAZBG_U_4xIBCKDLRAf3hsm-DAk,1236
|
|
49
|
-
polydb/audit/models.py,sha256=BgkSEQRbjbourxyGcEeJYIYzozwTM-pqTiSOM_BhWHs,2256
|
|
50
|
-
polydb/base/NoSQLKVAdapter.py,sha256=oa3MT7Z6E5zsF6mDeqjaMfefScKXJgne79LkB7dN8ZA,11557
|
|
51
|
-
polydb/base/ObjectStorageAdapter.py,sha256=mNdJnhoB3VqSCQvmcoel5PohrVQw7Nrajdd5suGBOvQ,2242
|
|
52
|
-
polydb/base/QueueAdapter.py,sha256=jFgyG-SUK4nhRNxm2NbzUbwnA9b_5iAC-ikLSUpXRwk,799
|
|
53
|
-
polydb/base/SharedFilesAdapter.py,sha256=hvmdNNhNxpN46Ob9RLAi8l46GB6JolYyZWnAMuaJ86g,708
|
|
54
|
-
polydb/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
-
altcodepro_polydb_python-2.3.9.dist-info/METADATA,sha256=CG1nVTpRxMSaQLlZRDzAf9eYTmyD9Lmuqkvoy4kVw3M,11910
|
|
56
|
-
altcodepro_polydb_python-2.3.9.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
57
|
-
altcodepro_polydb_python-2.3.9.dist-info/top_level.txt,sha256=WgLFWJoYjUhwvyPxJFl6jYLrVFuBJDX3OABf4ocwk_E,7
|
|
58
|
-
altcodepro_polydb_python-2.3.9.dist-info/RECORD,,
|
{altcodepro_polydb_python-2.3.9.dist-info → altcodepro_polydb_python-2.3.10.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
{altcodepro_polydb_python-2.3.9.dist-info → altcodepro_polydb_python-2.3.10.dist-info}/top_level.txt
RENAMED
|
File without changes
|