pangea-sdk 6.2.0b1__py3-none-any.whl → 6.2.0b2__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.
- pangea/__init__.py +9 -1
- pangea/asyncio/__init__.py +1 -0
- pangea/asyncio/file_uploader.py +4 -2
- pangea/asyncio/request.py +51 -21
- pangea/asyncio/services/__init__.py +2 -0
- pangea/asyncio/services/ai_guard.py +91 -2
- pangea/asyncio/services/audit.py +14 -8
- pangea/asyncio/services/authn.py +33 -23
- pangea/asyncio/services/authz.py +6 -6
- pangea/asyncio/services/base.py +4 -0
- pangea/asyncio/services/file_scan.py +8 -2
- pangea/asyncio/services/intel.py +6 -2
- pangea/asyncio/services/prompt_guard.py +112 -2
- pangea/asyncio/services/redact.py +7 -3
- pangea/asyncio/services/sanitize.py +5 -1
- pangea/asyncio/services/share.py +5 -1
- pangea/asyncio/services/vault.py +19 -15
- pangea/audit_logger.py +3 -1
- pangea/deep_verify.py +13 -13
- pangea/deprecated.py +1 -1
- pangea/dump_audit.py +2 -3
- pangea/exceptions.py +8 -5
- pangea/file_uploader.py +4 -0
- pangea/request.py +58 -41
- pangea/response.py +15 -12
- pangea/services/__init__.py +2 -0
- pangea/services/ai_guard.py +497 -16
- pangea/services/audit/audit.py +15 -13
- pangea/services/audit/models.py +4 -0
- pangea/services/audit/signing.py +1 -1
- pangea/services/audit/util.py +10 -10
- pangea/services/authn/authn.py +33 -23
- pangea/services/authn/models.py +3 -0
- pangea/services/authz.py +10 -6
- pangea/services/base.py +5 -1
- pangea/services/embargo.py +6 -0
- pangea/services/file_scan.py +8 -2
- pangea/services/intel.py +4 -0
- pangea/services/management.py +8 -8
- pangea/services/prompt_guard.py +193 -2
- pangea/services/redact.py +7 -3
- pangea/services/sanitize.py +5 -1
- pangea/services/share/share.py +13 -7
- pangea/services/vault/models/asymmetric.py +4 -0
- pangea/services/vault/models/common.py +4 -0
- pangea/services/vault/models/symmetric.py +4 -0
- pangea/services/vault/vault.py +17 -19
- pangea/tools.py +13 -9
- pangea/utils.py +3 -5
- pangea/verify_audit.py +23 -27
- {pangea_sdk-6.2.0b1.dist-info → pangea_sdk-6.2.0b2.dist-info}/METADATA +6 -6
- pangea_sdk-6.2.0b2.dist-info/RECORD +62 -0
- {pangea_sdk-6.2.0b1.dist-info → pangea_sdk-6.2.0b2.dist-info}/WHEEL +1 -1
- pangea_sdk-6.2.0b1.dist-info/RECORD +0 -62
pangea/verify_audit.py
CHANGED
@@ -9,14 +9,16 @@ You can provide a single event (obtained from the PUC) or the result from a sear
|
|
9
9
|
In the latter case, all the events are verified.
|
10
10
|
"""
|
11
11
|
|
12
|
+
from __future__ import annotations
|
13
|
+
|
12
14
|
import argparse
|
13
15
|
import json
|
14
16
|
import logging
|
15
17
|
import os
|
16
18
|
import sys
|
17
|
-
from collections.abc import Set
|
19
|
+
from collections.abc import Iterable, Set
|
18
20
|
from enum import Enum
|
19
|
-
from typing import
|
21
|
+
from typing import Optional, Union
|
20
22
|
|
21
23
|
from pangea.config import PangeaConfig
|
22
24
|
from pangea.exceptions import TreeNotFoundException
|
@@ -36,8 +38,8 @@ from pangea.services.audit.util import (
|
|
36
38
|
)
|
37
39
|
|
38
40
|
logger = logging.getLogger("audit")
|
39
|
-
arweave_roots:
|
40
|
-
pangea_roots:
|
41
|
+
arweave_roots: dict[int, PublishedRoot] = {} # roots fetched from Arweave
|
42
|
+
pangea_roots: dict[int, Root] = {} # roots fetched from Pangea
|
41
43
|
audit: Optional[Audit] = None
|
42
44
|
|
43
45
|
|
@@ -72,10 +74,7 @@ class VerifierLogFormatter(logging.Formatter):
|
|
72
74
|
self.in_section = True
|
73
75
|
return f"{' ' * self.indent}⎾ {record.msg}"
|
74
76
|
else:
|
75
|
-
if self.in_section
|
76
|
-
pre = f"{' ' * (self.indent+4)}⌲ "
|
77
|
-
else:
|
78
|
-
pre = ""
|
77
|
+
pre = f"{' ' * (self.indent + 4)}⌲ " if self.in_section else ""
|
79
78
|
return f"{pre}{record.msg}"
|
80
79
|
|
81
80
|
|
@@ -100,8 +99,8 @@ formatter = VerifierLogFormatter()
|
|
100
99
|
InvalidTokenError = ValueError("Invalid Pangea Token provided")
|
101
100
|
|
102
101
|
|
103
|
-
def get_pangea_roots(tree_name: str, tree_sizes: Iterable[int]) ->
|
104
|
-
ans:
|
102
|
+
def get_pangea_roots(tree_name: str, tree_sizes: Iterable[int]) -> dict[int, Root]:
|
103
|
+
ans: dict[int, Root] = {}
|
105
104
|
if audit is None:
|
106
105
|
return ans
|
107
106
|
|
@@ -125,7 +124,7 @@ def get_pangea_roots(tree_name: str, tree_sizes: Iterable[int]) -> Dict[int, Roo
|
|
125
124
|
return ans
|
126
125
|
|
127
126
|
|
128
|
-
def _verify_hash(data:
|
127
|
+
def _verify_hash(data: dict, data_hash: str) -> Status:
|
129
128
|
log_section("Checking data hash")
|
130
129
|
status = Status.SKIPPED
|
131
130
|
try:
|
@@ -213,7 +212,7 @@ def _fetch_roots(tree_name: str, tree_size: int, leaf_index: Optional[int]) -> S
|
|
213
212
|
logger.debug(f"Fetching root(s) {comma_sep(pending_roots)} from Arweave")
|
214
213
|
arweave_roots |= {int(k): v for k, v in get_arweave_published_roots(tree_name, pending_roots).items()}
|
215
214
|
update_pending_roots()
|
216
|
-
except:
|
215
|
+
except: # noqa: E722
|
217
216
|
pass
|
218
217
|
|
219
218
|
if pending_roots:
|
@@ -227,7 +226,7 @@ def _fetch_roots(tree_name: str, tree_size: int, leaf_index: Optional[int]) -> S
|
|
227
226
|
pangea_roots |= {int(k): v for k, v in get_pangea_roots(tree_name, pending_roots).items()}
|
228
227
|
update_pending_roots()
|
229
228
|
status = Status.SUCCEEDED_PANGEA
|
230
|
-
except:
|
229
|
+
except: # noqa: E722
|
231
230
|
pass
|
232
231
|
|
233
232
|
if pending_roots:
|
@@ -244,7 +243,7 @@ def _fetch_roots(tree_name: str, tree_size: int, leaf_index: Optional[int]) -> S
|
|
244
243
|
|
245
244
|
|
246
245
|
def _verify_membership_proof(tree_size: int, node_hash: str, proof: Optional[str]) -> Status:
|
247
|
-
pub_roots:
|
246
|
+
pub_roots: dict[int, Union[Root, PublishedRoot]] = arweave_roots | pangea_roots
|
248
247
|
|
249
248
|
log_section("Checking membership proof")
|
250
249
|
|
@@ -277,7 +276,7 @@ def _verify_membership_proof(tree_size: int, node_hash: str, proof: Optional[str
|
|
277
276
|
return status
|
278
277
|
|
279
278
|
|
280
|
-
def _consistency_proof_ok(pub_roots:
|
279
|
+
def _consistency_proof_ok(pub_roots: dict[int, Union[Root, PublishedRoot]], leaf_index: int) -> bool:
|
281
280
|
"""returns true if a consistency proof is correct"""
|
282
281
|
|
283
282
|
curr_root = pub_roots[leaf_index + 1]
|
@@ -296,7 +295,7 @@ def _consistency_proof_ok(pub_roots: Dict[int, Union[Root, PublishedRoot]], leaf
|
|
296
295
|
# Due to an (already fixed) bug, some proofs from Arweave may be wrong.
|
297
296
|
# Try the proof from Pangea instead. If the root hash in both Arweave and Pangea is the same,
|
298
297
|
# it doesn't matter where the proof came from.
|
299
|
-
def _fix_consistency_proof(pub_roots:
|
298
|
+
def _fix_consistency_proof(pub_roots: dict[int, Union[Root, PublishedRoot]], tree_name: str, leaf_index: int):
|
300
299
|
logger.debug("Consistency proof from Arweave failed to verify")
|
301
300
|
size = leaf_index + 1
|
302
301
|
logger.debug(f"Fetching root from Pangea for size {size}")
|
@@ -305,13 +304,13 @@ def _fix_consistency_proof(pub_roots: Dict[int, Union[Root, PublishedRoot]], tre
|
|
305
304
|
raise ValueError("Error fetching root from Pangea")
|
306
305
|
pangea_roots[size] = new_roots[size]
|
307
306
|
pub_roots[size] = pangea_roots[size]
|
308
|
-
logger.debug(
|
307
|
+
logger.debug("Comparing Arweave root hash with Pangea root hash")
|
309
308
|
if pangea_roots[size].root_hash != arweave_roots[size].root_hash:
|
310
309
|
raise ValueError("Hash does not match")
|
311
310
|
|
312
311
|
|
313
312
|
def _verify_consistency_proof(tree_name: str, leaf_index: Optional[int]) -> Status:
|
314
|
-
pub_roots:
|
313
|
+
pub_roots: dict[int, Union[Root, PublishedRoot]] = arweave_roots | pangea_roots
|
315
314
|
|
316
315
|
log_section("Checking consistency proof")
|
317
316
|
|
@@ -336,10 +335,7 @@ def _verify_consistency_proof(tree_name: str, leaf_index: Optional[int]) -> Stat
|
|
336
335
|
_fix_consistency_proof(pub_roots, tree_name, leaf_index)
|
337
336
|
|
338
337
|
# check again
|
339
|
-
if _consistency_proof_ok(pub_roots, leaf_index)
|
340
|
-
status = Status.SUCCEEDED
|
341
|
-
else:
|
342
|
-
status = Status.FAILED
|
338
|
+
status = Status.SUCCEEDED if _consistency_proof_ok(pub_roots, leaf_index) else Status.FAILED
|
343
339
|
|
344
340
|
else:
|
345
341
|
logger.debug(
|
@@ -356,11 +352,11 @@ def _verify_consistency_proof(tree_name: str, leaf_index: Optional[int]) -> Stat
|
|
356
352
|
return status
|
357
353
|
|
358
354
|
|
359
|
-
def create_signed_event(event:
|
355
|
+
def create_signed_event(event: dict) -> dict:
|
360
356
|
return {k: v for k, v in event.items() if v is not None}
|
361
357
|
|
362
358
|
|
363
|
-
def _verify_signature(data:
|
359
|
+
def _verify_signature(data: dict) -> Status:
|
364
360
|
log_section("Checking signature")
|
365
361
|
if "signature" not in data:
|
366
362
|
logger.debug("Signature is not present")
|
@@ -383,13 +379,13 @@ def _verify_signature(data: Dict) -> Status:
|
|
383
379
|
return status
|
384
380
|
|
385
381
|
|
386
|
-
def verify_multiple(root:
|
382
|
+
def verify_multiple(root: dict, unpublished_root: dict, events: list[dict]) -> Status:
|
387
383
|
"""
|
388
384
|
Verify a list of events.
|
389
385
|
Returns a status.
|
390
386
|
"""
|
391
387
|
|
392
|
-
statuses:
|
388
|
+
statuses: list[Status] = []
|
393
389
|
for counter, event in enumerate(events):
|
394
390
|
event.update({"root": root, "unpublished_root": unpublished_root})
|
395
391
|
event_status = verify_single(event, counter + 1)
|
@@ -403,7 +399,7 @@ def verify_multiple(root: Dict, unpublished_root: Dict, events: List[Dict]) -> S
|
|
403
399
|
return Status.SUCCEEDED
|
404
400
|
|
405
401
|
|
406
|
-
def verify_single(data:
|
402
|
+
def verify_single(data: dict, counter: Optional[int] = None) -> Status:
|
407
403
|
"""
|
408
404
|
Verify a single event.
|
409
405
|
Returns a status.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: pangea-sdk
|
3
|
-
Version: 6.2.
|
3
|
+
Version: 6.2.0b2
|
4
4
|
Summary: Pangea API SDK
|
5
5
|
License: MIT
|
6
6
|
Keywords: Pangea,SDK,Audit
|
@@ -9,11 +9,11 @@ Author-email: glenn.gallien@pangea.cloud
|
|
9
9
|
Requires-Python: >=3.9.2,<4.0.0
|
10
10
|
Classifier: Topic :: Software Development
|
11
11
|
Classifier: Topic :: Software Development :: Libraries
|
12
|
-
Requires-Dist: aiohttp (>=3.11.
|
13
|
-
Requires-Dist: cryptography (>=
|
12
|
+
Requires-Dist: aiohttp (>=3.11.18,<4.0.0)
|
13
|
+
Requires-Dist: cryptography (>=45.0.2,<46.0.0)
|
14
14
|
Requires-Dist: deprecated (>=1.2.18,<2.0.0)
|
15
15
|
Requires-Dist: google-crc32c (>=1.7.1,<2.0.0)
|
16
|
-
Requires-Dist: pydantic (>=2.11.
|
16
|
+
Requires-Dist: pydantic (>=2.11.4,<3.0.0)
|
17
17
|
Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
|
18
18
|
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
19
19
|
Requires-Dist: requests-toolbelt (>=1.0.0,<2.0.0)
|
@@ -63,13 +63,13 @@ the same compatibility guarantees as stable releases.
|
|
63
63
|
Via pip:
|
64
64
|
|
65
65
|
```bash
|
66
|
-
$ pip3 install pangea-sdk==6.2.
|
66
|
+
$ pip3 install pangea-sdk==6.2.0b2
|
67
67
|
```
|
68
68
|
|
69
69
|
Via poetry:
|
70
70
|
|
71
71
|
```bash
|
72
|
-
$ poetry add pangea-sdk==6.2.
|
72
|
+
$ poetry add pangea-sdk==6.2.0b2
|
73
73
|
```
|
74
74
|
|
75
75
|
## Usage
|
@@ -0,0 +1,62 @@
|
|
1
|
+
pangea/__init__.py,sha256=Z0Oh1E2jim94ZcLdnBpKol5ZXiY9NVGNhn6P0WwrKXE,375
|
2
|
+
pangea/asyncio/__init__.py,sha256=TIiYYY-DR4X6d3rGBqpCBQkPMFkogzYLXYvi_RvmCEM,64
|
3
|
+
pangea/asyncio/file_uploader.py,sha256=FwR-p-Xgtmq3UDW6_ptRQLTL4_2AIzdaY358WjxwJBw,1436
|
4
|
+
pangea/asyncio/request.py,sha256=9tUWOhr-2QHfnwFIYRCxWGQKT2CmXDOzm_52kZjLEpw,23273
|
5
|
+
pangea/asyncio/services/__init__.py,sha256=yBMNG1jQzNCjjhErNZ7douh-vJzwsUAHFUcAFA7DJw8,524
|
6
|
+
pangea/asyncio/services/ai_guard.py,sha256=0FQZ3Tc9DfvstcDT4o8NpItnXoEsDTwg5EVULv2Aa2E,9213
|
7
|
+
pangea/asyncio/services/audit.py,sha256=A40ewjj_KFh-49NNOKe-laoomq2ZEL5qu4A3t3OQlMA,39425
|
8
|
+
pangea/asyncio/services/authn.py,sha256=N7hmOe2sWOD_MCQGGCmy_HZLYDr5qMbR5VPywVrkREs,52355
|
9
|
+
pangea/asyncio/services/authz.py,sha256=3T0D97ACTx7RuGsopglm8G2Bg4GGNgvoAq3o8OP4lRc,9721
|
10
|
+
pangea/asyncio/services/base.py,sha256=ntvuwfyAuhyfrptlBg1NFViGlFb3tf9uqxnC1PiBX6U,3206
|
11
|
+
pangea/asyncio/services/embargo.py,sha256=ctzj3kip6xos-Eu3JuOskrCGYC8T3JlsgAopZHiPSXM,3068
|
12
|
+
pangea/asyncio/services/file_scan.py,sha256=OCKvrTZgsTCKA6P261PSRl4anWcU-CvDPtXfrTqAxgE,7210
|
13
|
+
pangea/asyncio/services/intel.py,sha256=2Sml4HQHZbtbvGwC9Bh1MHKzvjP_d4D_12NPl4SOLvw,40320
|
14
|
+
pangea/asyncio/services/management.py,sha256=YRAN5nkWhr1ahhVKtRuCYE0u0lEUD00EVSmTOmoAILc,20551
|
15
|
+
pangea/asyncio/services/prompt_guard.py,sha256=G-2z8GX51cTWkTIzJ4QD88EQSJRTBytULIxKv7xAd8U,6625
|
16
|
+
pangea/asyncio/services/redact.py,sha256=ZJIVQfFOZUzzWFdRXLYq11-VfyfA8yoEPb-DDiS45iI,18932
|
17
|
+
pangea/asyncio/services/sanitize.py,sha256=OybTAUfh_7vYRwb6Cjp4aHZoeHhIlg8caJ_BVrdbA1A,8691
|
18
|
+
pangea/asyncio/services/share.py,sha256=AV9FbA-IMU5TFhcBtUHoXKDQYfOIWAJJZKW6vFohBbs,30816
|
19
|
+
pangea/asyncio/services/vault.py,sha256=CTdibBag9kAHV38eDPMwtgk0Ak-nX_R4MCzcki2JVag,77417
|
20
|
+
pangea/audit_logger.py,sha256=DOzL5oyXwaPlsuK6VRHXn_lPdNc4Z7LHGj78RArXs5A,3861
|
21
|
+
pangea/config.py,sha256=Z2WT_UG0qBQzzVzBfloXYFxS21mSg1YXQ36cAVCqrJk,1963
|
22
|
+
pangea/crypto/rsa.py,sha256=mwSiNy571KAGr3F6oEM0CXWkl9D023ch8ldbZZeLj_4,4747
|
23
|
+
pangea/deep_verify.py,sha256=Z8vnrxEiwa3hcTJO6ckZpdSerQHjtgnUUllaWTAMdwI,8637
|
24
|
+
pangea/deprecated.py,sha256=3yiM7WnSOHq55ROtJvhjiTDSmOEIa0B85YPctVfp-WU,597
|
25
|
+
pangea/dump_audit.py,sha256=b89jKV3ewy77WA_AzVMIT04_E1CUxTplj94IURJM7nc,7081
|
26
|
+
pangea/exceptions.py,sha256=EiH7NiNDyN69ZYlVikF8d1tAO3_Do0bKl8dFXghY8t0,5585
|
27
|
+
pangea/file_uploader.py,sha256=bDX9jZTw4h_gwFf9AjtfJYxQchLM2lVMgH93WhgCXsY,1275
|
28
|
+
pangea/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
|
+
pangea/request.py,sha256=fPD6FbRfySwxP540SyA-YOF0NlcOcKcA3cWPT-YxzbY,29635
|
30
|
+
pangea/response.py,sha256=DIMn3BuD6nALn0vzQnW8mITDYyxKjsquY9RAkWdq1ds,7725
|
31
|
+
pangea/services/__init__.py,sha256=M5JK0OtyF6yVRHQS3wARAQroSFq0GdJN_B6R4fYsIhA,463
|
32
|
+
pangea/services/ai_guard.py,sha256=A9qIgd08TwHCAPF1eqlvHt7fk6hd63xMNtxH-u14jMg,30122
|
33
|
+
pangea/services/audit/audit.py,sha256=lBsXTnVJhL02CcJId9t0VKCCtm2N6E0m208aj21GrRs,52352
|
34
|
+
pangea/services/audit/exceptions.py,sha256=bhVuYe4ammacOVxwg98CChxvwZf5FKgR2DcgqILOcwc,471
|
35
|
+
pangea/services/audit/models.py,sha256=tycBH4oU9ImX-0z7XGi8ogFRtVtbHjrbXZ5coxEAYwA,23971
|
36
|
+
pangea/services/audit/signing.py,sha256=VsQkstQL1vxIdN2Ghxp4P-FLBpV_BIvDsBCkRAZQpk8,5593
|
37
|
+
pangea/services/audit/util.py,sha256=dna9AKodlJ-C_VAXFebMu2r57Fl1DdRWdb1SyG7VLpA,7651
|
38
|
+
pangea/services/authn/authn.py,sha256=Dp9e0077jhtWAFCEmtaApgOxaFbGcn5oo7uoKARUvRY,51276
|
39
|
+
pangea/services/authn/models.py,sha256=ipsDEyvjhEZQf4Uv_e0KDwbirYHBd91Z95f0vd2L0hc,25300
|
40
|
+
pangea/services/authz.py,sha256=difU7FcBKJoxg7-J8zW8gIRYoZnA0q3-dQcZsUbe5SA,14678
|
41
|
+
pangea/services/base.py,sha256=K49rD_dfmrtKUW0cQZ153SwGdgumjmsFK08YbayjN-k,3885
|
42
|
+
pangea/services/embargo.py,sha256=3rE3ImjBg2VUXQljGZICedsr14psWdymC2pmmdJF2co,4000
|
43
|
+
pangea/services/file_scan.py,sha256=DzFYJyBrByWZHUQN8ll8OvzsynT8qegMzaEMXJfiP2Q,7934
|
44
|
+
pangea/services/intel.py,sha256=5VpZh2uSqJAvwURHYvPr9dnDCM-RkYH8hByiiNwMd40,56541
|
45
|
+
pangea/services/management.py,sha256=HUM9_ocdO6JhY4DO3ZR_uH6NjWGec96T9YS-1Nn7lkI,24096
|
46
|
+
pangea/services/prompt_guard.py,sha256=61BbnIVgCaT2xS-VdciT00LFzB_WA_lVXBLmxnEQRN0,10031
|
47
|
+
pangea/services/redact.py,sha256=DnCe6YqQgIvZSckORSZE91Cccm6KO0yPC_K0aIAH01U,29760
|
48
|
+
pangea/services/sanitize.py,sha256=0ZlCrEg8imJtRyovy4qZJb1ZAZ8ppIOQTj_nocBJ2CM,13019
|
49
|
+
pangea/services/share/file_format.py,sha256=1svO1ee_aenA9zoO_AaU-Rk5Ulp7kcPOc_KwNoluyQE,2797
|
50
|
+
pangea/services/share/share.py,sha256=IhTilqWcQ2GlsJ7kHHuVbXfNu8jvFtPBnEeM26SNsY8,52403
|
51
|
+
pangea/services/vault/models/asymmetric.py,sha256=F6JMd9BlYJZSjfhJRavqcadmQJAbcd5drezLLQ_ZJEs,5058
|
52
|
+
pangea/services/vault/models/common.py,sha256=h9Cn8rRTDO5VHOrYYk5nqYa1LV5I1Melmn8LT-RJwCM,18048
|
53
|
+
pangea/services/vault/models/keys.py,sha256=duAuTiOby_D7MloRvN4gNj0P-b-jx9sdtplAWFxsShw,2786
|
54
|
+
pangea/services/vault/models/secret.py,sha256=ItGdkulM-SEySfcm4a5yGxMvo_omjC7kChv6gdbFnn8,1142
|
55
|
+
pangea/services/vault/models/symmetric.py,sha256=VqJ_C3xj2e4OtnFiPyngX6_sOcXKFf1yhatSF9PmB90,2629
|
56
|
+
pangea/services/vault/vault.py,sha256=z_N_1RiKUn4rxWK0UId9omWOFlWY6lnlPCS1Oxskp-Y,76425
|
57
|
+
pangea/tools.py,sha256=JkwVplvx7MCPRSdPhFTLvOl6h7btaUbXEuHgUy0EHBU,6452
|
58
|
+
pangea/utils.py,sha256=QwTODI_D8by86uXeA0MpdhJICvz5baKUtfv1rguQshU,4943
|
59
|
+
pangea/verify_audit.py,sha256=-VepQKHtSqZRqhIKiUtLufa7ywwdMNLN2SuhingMooU,17288
|
60
|
+
pangea_sdk-6.2.0b2.dist-info/METADATA,sha256=L3x4oC-m1DSrcTQ6JIRKkwd0Qfn70LRL68WNpc6bBzY,6888
|
61
|
+
pangea_sdk-6.2.0b2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
62
|
+
pangea_sdk-6.2.0b2.dist-info/RECORD,,
|
@@ -1,62 +0,0 @@
|
|
1
|
-
pangea/__init__.py,sha256=vCfs9LnF22OLuxPtJHmvbHt5RJojJnj9kgt-6FsSuCM,251
|
2
|
-
pangea/asyncio/__init__.py,sha256=kjEMkqMQ521LlMSu5jn3_WgweyArwVZ2C-s3x7mR6Pk,45
|
3
|
-
pangea/asyncio/file_uploader.py,sha256=wI7epib7Rc5jtZw4eJ1L1SlmutDG6CPv59C8N2UPhtY,1436
|
4
|
-
pangea/asyncio/request.py,sha256=bzddGHmWWPvgK3-5ZYHCQaniZvNcjMtLyAQzJm_AJdk,22085
|
5
|
-
pangea/asyncio/services/__init__.py,sha256=hhe8fKek1qFMdTaj48_RRj-tnxncu7Bd-CojJsPcaGM,504
|
6
|
-
pangea/asyncio/services/ai_guard.py,sha256=rFksT8LQkyioW3QOq4fLCEZbW5SXiYWpWjLbVovRouE,6294
|
7
|
-
pangea/asyncio/services/audit.py,sha256=Vk18Y74zRcdE-sq0dvM8_mnsZL3b0iewel7KQdBgkj8,39299
|
8
|
-
pangea/asyncio/services/authn.py,sha256=apa0kcxmSXH2ChJbTYVFvXTB4cn69cN9O7tW_jOXy_w,52100
|
9
|
-
pangea/asyncio/services/authz.py,sha256=ocImj2g-P9wAo6CqAvZs7YR4wOTUAx0ZWmenKh6HwLk,9691
|
10
|
-
pangea/asyncio/services/base.py,sha256=vRFVcO_uEAGJte3OUUBLD43RoiiFB1vC7SPyN6yEMoA,3158
|
11
|
-
pangea/asyncio/services/embargo.py,sha256=ctzj3kip6xos-Eu3JuOskrCGYC8T3JlsgAopZHiPSXM,3068
|
12
|
-
pangea/asyncio/services/file_scan.py,sha256=PLG1O-PL4Yk9uY9D6NbMrZ5LHg70Z311s7bFe46UMZA,7108
|
13
|
-
pangea/asyncio/services/intel.py,sha256=BcxGKSoZ1nJiEHyZM9yOwKSSPJUrB6ibJ19KR27VlgQ,40261
|
14
|
-
pangea/asyncio/services/management.py,sha256=YRAN5nkWhr1ahhVKtRuCYE0u0lEUD00EVSmTOmoAILc,20551
|
15
|
-
pangea/asyncio/services/prompt_guard.py,sha256=NbYt-0tRtO5VH7kLmC1lJ5JSV-ztlb9dNFaKKs_fZUM,2553
|
16
|
-
pangea/asyncio/services/redact.py,sha256=bCKs5Mu0Cvyv1w0YzIzDDW7N3B1ZgxmytAhFQOXyUi8,18869
|
17
|
-
pangea/asyncio/services/sanitize.py,sha256=EbSdq_v9yZWce9xEYWvZharE9bJcxw8cg5Pv8LVxdxc,8627
|
18
|
-
pangea/asyncio/services/share.py,sha256=Qd2Oh4UsLwu7Zo4Xy1KABHuP4TJ9AtcN-XzldvilFVo,30773
|
19
|
-
pangea/asyncio/services/vault.py,sha256=VqrJGSEdq6MlZRI6cJpkthhIsqLClSQdgVxwYCbIwEk,77079
|
20
|
-
pangea/audit_logger.py,sha256=gRkCfUUT5LDNaycwxkhZUySgY47jDfn1ZeKOul4XCQI,3842
|
21
|
-
pangea/config.py,sha256=Z2WT_UG0qBQzzVzBfloXYFxS21mSg1YXQ36cAVCqrJk,1963
|
22
|
-
pangea/crypto/rsa.py,sha256=mwSiNy571KAGr3F6oEM0CXWkl9D023ch8ldbZZeLj_4,4747
|
23
|
-
pangea/deep_verify.py,sha256=ZGraaL7TCxwRBIDqjBFR0clKlhAC-Yce6kD-1LClhG8,8616
|
24
|
-
pangea/deprecated.py,sha256=IjFYEVvY1E0ld0SMkEYC1o62MAleX3nnT1If2dFVbHo,608
|
25
|
-
pangea/dump_audit.py,sha256=IevqaUUh7GDepdIW7slSxeZbkPrWIVbcX3sr4DgpJXI,7090
|
26
|
-
pangea/exceptions.py,sha256=OBtzUECpNa6vNp8ySkHC-tm4QjFRCOAHBkMHqzAlOu8,5656
|
27
|
-
pangea/file_uploader.py,sha256=4RQ44xt-faApC61nn2PlwHT7XYrJ4GeQA8Ug4tySEAg,1227
|
28
|
-
pangea/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
|
-
pangea/request.py,sha256=GfrasFmx2vgYIkAXQ9nSbU6ZHSGJs1wwelUP9LTYwYI,28775
|
30
|
-
pangea/response.py,sha256=lPAcYsF9Xg166CiyhCofVmQA-W4jevh0MQXxUa8Re68,7737
|
31
|
-
pangea/services/__init__.py,sha256=gx97luYBNJycS8CSsOge_kSeNyUDUOFeCM9ezpWDvxA,443
|
32
|
-
pangea/services/ai_guard.py,sha256=X1DR1JTYZnLqBFFAHgmRk4xqyGF3GQMO1B3_cqLLVfU,15774
|
33
|
-
pangea/services/audit/audit.py,sha256=EOQPYL9C--c4S7EB4wDkhBnU15g7bAzREjX-rIHry6c,52288
|
34
|
-
pangea/services/audit/exceptions.py,sha256=bhVuYe4ammacOVxwg98CChxvwZf5FKgR2DcgqILOcwc,471
|
35
|
-
pangea/services/audit/models.py,sha256=FD-F_NR-2qXyQ2xmXmaipNTCK8fSsG1KHk5AEHgRje4,23923
|
36
|
-
pangea/services/audit/signing.py,sha256=5A4hvPtpfP2kMz8bsiiKUACriXbh5dv9gb_rbqiUtuI,5583
|
37
|
-
pangea/services/audit/util.py,sha256=Zq1qvfeplYfhCP_ud5YMvntSB0UvnCdsuYbOzZkHbjg,7620
|
38
|
-
pangea/services/authn/authn.py,sha256=AkGyjGz5eHpMkxMn0F-xP94DCV7Ai88yaI4pSqAQ_qc,51021
|
39
|
-
pangea/services/authn/models.py,sha256=EOoseAWVhr7Gy2HHqxqtvyUNimoi6OVc-x9OMxEeRX8,25253
|
40
|
-
pangea/services/authz.py,sha256=fOPucOMdoYee5B4FXYgM8d6HHUeGg8QwiyTfKcD1JCk,14581
|
41
|
-
pangea/services/base.py,sha256=43pWQcR9CeT4sGzgctF3Sy4M_h7DaUzkuZD2Z7CcDUU,3845
|
42
|
-
pangea/services/embargo.py,sha256=9Wfku4td5ORaIENKmnGmS5jxJJIRfWp6Q51L36Jsy0I,3897
|
43
|
-
pangea/services/file_scan.py,sha256=QiO80uKqB_BnAOiYQKznXfxpa5j40qqETE3-zBRT_QE,7813
|
44
|
-
pangea/services/intel.py,sha256=y1EX2ctYIxQc52lmHp6-Q_UIDM--t3fOpXDssWiRPfo,56474
|
45
|
-
pangea/services/management.py,sha256=yquxNfV-24S1vPqJLoZX73GgjFhY-W7jOc5spG76BtA,24102
|
46
|
-
pangea/services/prompt_guard.py,sha256=Cq8ume2_YPfHre4iN6FYkyTV7NrdwLXlr_wnilfKotE,3446
|
47
|
-
pangea/services/redact.py,sha256=8YHKGA6gqfHCZZ9H1A2-toxMZAa4bh6_KDemAuGczso,29678
|
48
|
-
pangea/services/sanitize.py,sha256=eAN1HhObiKqygy6HHcfl0NmxYfPMvqSKepwEAVVIIEE,12936
|
49
|
-
pangea/services/share/file_format.py,sha256=1svO1ee_aenA9zoO_AaU-Rk5Ulp7kcPOc_KwNoluyQE,2797
|
50
|
-
pangea/services/share/share.py,sha256=hlhkIr6ScJ5oMFUs9no4HtHNoUEbYU4KoLkiGLxex30,52343
|
51
|
-
pangea/services/vault/models/asymmetric.py,sha256=vspijmEvHm5WXri_fjOWfQc4maYyZfhDkLuaTM8-PZo,4991
|
52
|
-
pangea/services/vault/models/common.py,sha256=PSZRFqHTUtEMJJGwywEFM2AU3aV8S-sbcoo3LLQ6uTc,17981
|
53
|
-
pangea/services/vault/models/keys.py,sha256=duAuTiOby_D7MloRvN4gNj0P-b-jx9sdtplAWFxsShw,2786
|
54
|
-
pangea/services/vault/models/secret.py,sha256=ItGdkulM-SEySfcm4a5yGxMvo_omjC7kChv6gdbFnn8,1142
|
55
|
-
pangea/services/vault/models/symmetric.py,sha256=t8xCM1wGGKDBpOqTggFueO4-4-2IFmyxqcs7_PDr7U0,2562
|
56
|
-
pangea/services/vault/vault.py,sha256=ow-Zm7PYzfWIfUcA4UNnpeL2DHfZM4C7inRDmNR3zQU,76196
|
57
|
-
pangea/tools.py,sha256=icHduOfZLi02UYdGb5Xl1fQqu-PBRB4tiDPT_nL2Q8E,6380
|
58
|
-
pangea/utils.py,sha256=dZ6MwFVEWXUgXvvDg-k6JnvVfsgslvtaBd7ez7afrqk,4983
|
59
|
-
pangea/verify_audit.py,sha256=nSP17OzoSPdvezRExwfcf45H8ZPZnxZu-CbEp3qFJO0,17354
|
60
|
-
pangea_sdk-6.2.0b1.dist-info/METADATA,sha256=DtZ8uh9YUCJRHe28O1LUtX0AKno7se5VGW-UvN5v2Hc,6888
|
61
|
-
pangea_sdk-6.2.0b1.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
62
|
-
pangea_sdk-6.2.0b1.dist-info/RECORD,,
|