pangea-sdk 6.3.0__py3-none-any.whl → 6.5.0b1__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/services/redact.py CHANGED
@@ -7,12 +7,74 @@
7
7
  from __future__ import annotations
8
8
 
9
9
  import enum
10
- from typing import Dict, List, Optional, Union
10
+ from collections.abc import Mapping, Sequence
11
+ from typing import Dict, List, Optional, Union, cast, overload
12
+
13
+ from pydantic import Field, TypeAdapter
14
+ from typing_extensions import Annotated, Literal
11
15
 
12
16
  from pangea.config import PangeaConfig
13
17
  from pangea.response import APIRequestModel, APIResponseModel, PangeaResponse, PangeaResponseResult
14
18
  from pangea.services.base import ServiceBase
15
19
 
20
+ MatcherType = Literal[
21
+ "CREDIT_CARD",
22
+ "CRYPTO",
23
+ "DATE_TIME",
24
+ "EMAIL_ADDRESS",
25
+ "IBAN_CODE",
26
+ "IP_ADDRESS",
27
+ "NRP",
28
+ "LOCATION",
29
+ "PERSON",
30
+ "PHONE_NUMBER",
31
+ "MEDICAL_LICENSE",
32
+ "URL",
33
+ "US_BANK_NUMBER",
34
+ "US_DRIVER_LICENSE",
35
+ "US_ITIN",
36
+ "US_PASSPORT",
37
+ "US_SSN",
38
+ "UK_NHS",
39
+ "NIF",
40
+ "FIN/NRIC",
41
+ "AU_ABN",
42
+ "AU_ACN",
43
+ "AU_TFN",
44
+ "AU_MEDICARE",
45
+ "FIREBASE_URL",
46
+ "RSA_PRIVATE_KEY",
47
+ "SSH_DSA_PRIVATE_KEY",
48
+ "SSH_EC_PRIVATE_KEY",
49
+ "PGP_PRIVATE_KEY_BLOCK",
50
+ "AMAZON_AWS_ACCESS_KEY_ID",
51
+ "AMAZON_AWS_SECRET_ACCESS_KEY",
52
+ "AMAZON_MWS_AUTH_TOKEN",
53
+ "FACEBOOK_ACCESS_TOKEN",
54
+ "GITHUB_ACCESS_TOKEN",
55
+ "JWT_TOKEN",
56
+ "GOOGLE_API_KEY",
57
+ "GOOGLE_CLOUD_PLATFORM_API_KEY",
58
+ "GOOGLE_DRIVE_API_KEY",
59
+ "GOOGLE_CLOUD_PLATFORM_SERVICE_ACCOUNT",
60
+ "GOOGLE_GMAIL_API_KEY",
61
+ "YOUTUBE_API_KEY",
62
+ "MAILCHIMP_API_KEY",
63
+ "MAILGUN_API_KEY",
64
+ "MONEY",
65
+ "BASIC_AUTH",
66
+ "PICATIC_API_KEY",
67
+ "SLACK_TOKEN",
68
+ "SLACK_WEBHOOK",
69
+ "STRIPE_API_KEY",
70
+ "STRIPE_RESTRICTED_API_KEY",
71
+ "SQUARE_ACCESS_TOKEN",
72
+ "SQUARE_OAUTH_SECRET",
73
+ "TWILIO_API_KEY",
74
+ "PANGEA_TOKEN",
75
+ "PROFANITY",
76
+ ]
77
+
16
78
 
17
79
  class RedactFormat(str, enum.Enum):
18
80
  """Structured data format."""
@@ -48,10 +110,10 @@ class PartialMasking(APIRequestModel):
48
110
  masked_from_left: Optional[int] = None
49
111
  masked_from_right: Optional[int] = None
50
112
  chars_to_ignore: Optional[List[str]] = None
51
- masking_char: Optional[List[str]] = None
113
+ masking_char: Optional[str] = Field(min_length=1, max_length=1)
52
114
 
53
115
 
54
- class RedactionMethodOverrides(APIRequestModel):
116
+ class Redaction(APIRequestModel):
55
117
  redaction_type: RedactType
56
118
  hash: Optional[Dict] = None
57
119
  fpe_alphabet: Optional[FPEAlphabet] = None
@@ -59,6 +121,10 @@ class RedactionMethodOverrides(APIRequestModel):
59
121
  redaction_value: Optional[str] = None
60
122
 
61
123
 
124
+ class RedactionMethodOverrides(Redaction):
125
+ """This field allows users to specify the redaction method per rule and its various parameters."""
126
+
127
+
62
128
  class RedactRequest(APIRequestModel):
63
129
  """
64
130
  Input class to make a redact request
@@ -69,7 +135,7 @@ class RedactRequest(APIRequestModel):
69
135
  rules: Optional[List[str]] = None
70
136
  rulesets: Optional[List[str]] = None
71
137
  return_result: Optional[bool] = None
72
- redaction_method_overrides: Optional[RedactionMethodOverrides] = None
138
+ redaction_method_overrides: Optional[Mapping[str, RedactionMethodOverrides]] = None
73
139
  vault_parameters: Optional[VaultParameters] = None
74
140
  llm_request: Optional[bool] = None
75
141
  """Is this redact call going to be used in an LLM request?"""
@@ -150,7 +216,7 @@ class StructuredRequest(APIRequestModel):
150
216
  rules: Optional[List[str]] = None
151
217
  rulesets: Optional[List[str]] = None
152
218
  return_result: Optional[bool] = None
153
- redaction_method_overrides: Optional[RedactionMethodOverrides] = None
219
+ redaction_method_overrides: Optional[Mapping[str, RedactionMethodOverrides]] = None
154
220
  vault_parameters: Optional[VaultParameters] = None
155
221
  llm_request: Optional[bool] = None
156
222
  """Is this redact call going to be used in an LLM request?"""
@@ -198,6 +264,145 @@ class UnredactResult(PangeaResponseResult):
198
264
  data: RedactedData
199
265
 
200
266
 
267
+ class Matcher(APIResponseModel):
268
+ match_type: str
269
+ match_value: str
270
+ match_score: float
271
+
272
+
273
+ class RuleV1(APIResponseModel):
274
+ entity_name: str
275
+ matchers: Union[List[Matcher], MatcherType]
276
+ ruleset: str
277
+
278
+ match_threshold: Optional[float] = None
279
+ context_values: Optional[List[str]] = None
280
+ name: Optional[str] = None
281
+ description: Optional[str] = None
282
+
283
+
284
+ class RuleV2(APIResponseModel):
285
+ entity_name: str
286
+ matchers: Union[List[Matcher], MatcherType]
287
+
288
+ match_threshold: Optional[float] = None
289
+ context_values: Optional[List[str]] = None
290
+ negative_context_values: Optional[List[str]] = None
291
+ name: Optional[str] = None
292
+ description: Optional[str] = None
293
+
294
+
295
+ class RulesetV1(APIResponseModel):
296
+ name: Optional[str] = None
297
+ description: Optional[str] = None
298
+ rules: List[str]
299
+
300
+
301
+ class RulesetV2(APIResponseModel):
302
+ name: Optional[str] = None
303
+ description: Optional[str] = None
304
+
305
+
306
+ class ServiceConfigV1(PangeaResponseResult):
307
+ version: Literal["1.0.0"] = "1.0.0"
308
+ id: str
309
+ name: str
310
+ updated_at: str
311
+ enabled_rules: List[str]
312
+
313
+ redactions: Optional[Dict[str, Redaction]] = None
314
+
315
+ vault_service_config_id: Optional[str] = None
316
+ """Service config used to create the secret"""
317
+
318
+ salt_vault_secret_id: Optional[str] = None
319
+ """Pangea only allows hashing to be done using a salt value to prevent brute-force attacks."""
320
+
321
+ rules: Optional[Dict[str, RuleV1]] = None
322
+ rulesets: Optional[Dict[str, RulesetV1]] = None
323
+ supported_languages: Optional[List[Literal["en"]]] = None
324
+
325
+
326
+ class ServiceConfigV2(PangeaResponseResult):
327
+ version: Literal["2.0.0"] = "2.0.0"
328
+ id: str
329
+ name: str
330
+ updated_at: str
331
+ enabled_rules: List[str]
332
+
333
+ enforce_enabled_rules: Optional[bool] = None
334
+ """Always run service config enabled rules across all redact calls regardless of flags?"""
335
+
336
+ redactions: Optional[Dict[str, Redaction]] = None
337
+
338
+ vault_service_config_id: Optional[str] = None
339
+ """Service config used to create the secret"""
340
+
341
+ salt_vault_secret_id: Optional[str] = None
342
+ """Pangea only allows hashing to be done using a salt value to prevent brute-force attacks."""
343
+
344
+ fpe_vault_secret_id: Optional[str] = None
345
+ """The ID of the key used by FF3 Encryption algorithms for FPE."""
346
+
347
+ rules: Optional[Dict[str, RuleV2]] = None
348
+ rulesets: Optional[Dict[str, RulesetV2]] = None
349
+ supported_languages: Optional[List[Literal["en"]]] = None
350
+
351
+
352
+ ServiceConfigResult = Annotated[Union[ServiceConfigV1, ServiceConfigV2], Field(discriminator="version")]
353
+
354
+
355
+ class ServiceConfigFilter(APIRequestModel):
356
+ id: Optional[str] = None
357
+ """Only records where id equals this value."""
358
+
359
+ id__contains: Optional[Sequence[str]] = None
360
+ """Only records where id includes each substring."""
361
+
362
+ id__in: Optional[Sequence[str]] = None
363
+ """Only records where id equals one of the provided substrings."""
364
+
365
+ created_at: Optional[str] = None
366
+ """Only records where created_at equals this value."""
367
+
368
+ created_at__gt: Optional[str] = None
369
+ """Only records where created_at is greater than this value."""
370
+
371
+ created_at__gte: Optional[str] = None
372
+ """Only records where created_at is greater than or equal to this value."""
373
+
374
+ created_at__lt: Optional[str] = None
375
+ """Only records where created_at is less than this value."""
376
+
377
+ created_at__lte: Optional[str] = None
378
+ """Only records where created_at is less than or equal to this value."""
379
+
380
+ updated_at: Optional[str] = None
381
+ """Only records where updated_at equals this value."""
382
+
383
+ updated_at__gt: Optional[str] = None
384
+ """Only records where updated_at is greater than this value."""
385
+
386
+ updated_at__gte: Optional[str] = None
387
+ """Only records where updated_at is greater than or equal to this value."""
388
+
389
+ updated_at__lt: Optional[str] = None
390
+ """Only records where updated_at is less than this value."""
391
+
392
+ updated_at__lte: Optional[str] = None
393
+ """Only records where updated_at is less than or equal to this value."""
394
+
395
+
396
+ class ServiceConfigListResult(PangeaResponseResult):
397
+ count: int
398
+ """The total number of service configs matched by the list request."""
399
+
400
+ last: str
401
+ """Used to fetch the next page of the current listing when provided in a repeated request's last parameter."""
402
+
403
+ items: Sequence[ServiceConfigResult]
404
+
405
+
201
406
  class Redact(ServiceBase):
202
407
  """Redact service client.
203
408
 
@@ -252,7 +457,7 @@ class Redact(ServiceBase):
252
457
  rules: Optional[List[str]] = None,
253
458
  rulesets: Optional[List[str]] = None,
254
459
  return_result: Optional[bool] = None,
255
- redaction_method_overrides: Optional[RedactionMethodOverrides] = None,
460
+ redaction_method_overrides: Optional[Mapping[str, RedactionMethodOverrides]] = None,
256
461
  llm_request: Optional[bool] = None,
257
462
  vault_parameters: Optional[VaultParameters] = None,
258
463
  ) -> PangeaResponse[RedactResult]:
@@ -307,7 +512,7 @@ class Redact(ServiceBase):
307
512
  rules: Optional[List[str]] = None,
308
513
  rulesets: Optional[List[str]] = None,
309
514
  return_result: Optional[bool] = None,
310
- redaction_method_overrides: Optional[RedactionMethodOverrides] = None,
515
+ redaction_method_overrides: Mapping[str, RedactionMethodOverrides] | None = None,
311
516
  llm_request: Optional[bool] = None,
312
517
  vault_parameters: Optional[VaultParameters] = None,
313
518
  ) -> PangeaResponse[StructuredResult]:
@@ -386,3 +591,264 @@ class Redact(ServiceBase):
386
591
  """
387
592
  input = UnredactRequest(redacted_data=redacted_data, fpe_context=fpe_context)
388
593
  return self.request.post("v1/unredact", UnredactResult, data=input.model_dump(exclude_none=True))
594
+
595
+ def get_service_config(self, config_id: str) -> PangeaResponse[ServiceConfigResult]:
596
+ """
597
+ Get a service config.
598
+
599
+
600
+ OperationId: redact_post_v1beta_config
601
+ """
602
+ response = self.request.post("v1beta/config", PangeaResponseResult, data={"id": config_id})
603
+ response.result = TypeAdapter(ServiceConfigResult).validate_python(response.json["result"])
604
+ return cast(PangeaResponse[ServiceConfigResult], response)
605
+
606
+ @overload
607
+ def create_service_config(
608
+ self,
609
+ name: str,
610
+ *,
611
+ version: Literal["1.0.0"],
612
+ enabled_rules: Sequence[str] | None = None,
613
+ redactions: Mapping[str, Redaction] | None = None,
614
+ vault_service_config_id: str | None = None,
615
+ salt_vault_secret_id: str | None = None,
616
+ rules: Mapping[str, RuleV1] | None = None,
617
+ rulesets: Mapping[str, RulesetV1] | None = None,
618
+ supported_languages: Sequence[Literal["en"]] | None = None,
619
+ ) -> PangeaResponse[ServiceConfigResult]:
620
+ """
621
+ Create a v1.0.0 service config.
622
+
623
+ OperationId: redact_post_v1beta_config_create
624
+
625
+ Args:
626
+ vault_service_config_id: Service config used to create the secret
627
+ salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
628
+ """
629
+
630
+ @overload
631
+ def create_service_config(
632
+ self,
633
+ name: str,
634
+ *,
635
+ version: Literal["2.0.0"] | None = None,
636
+ enabled_rules: Sequence[str] | None = None,
637
+ enforce_enabled_rules: bool | None = None,
638
+ redactions: Mapping[str, Redaction] | None = None,
639
+ vault_service_config_id: str | None = None,
640
+ salt_vault_secret_id: str | None = None,
641
+ fpe_vault_secret_id: str | None = None,
642
+ rules: Mapping[str, RuleV2] | None = None,
643
+ rulesets: Mapping[str, RulesetV2] | None = None,
644
+ supported_languages: Sequence[Literal["en"]] | None = None,
645
+ ) -> PangeaResponse[ServiceConfigResult]:
646
+ """
647
+ Create a v2.0.0 service config.
648
+
649
+ OperationId: redact_post_v1beta_config_create
650
+
651
+ Args:
652
+ enforce_enabled_rules: Always run service config enabled rules across all redact calls regardless of flags?
653
+ vault_service_config_id: Service config used to create the secret
654
+ salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
655
+ fpe_vault_secret_id: The ID of the key used by FF3 Encryption algorithms for FPE.
656
+ """
657
+
658
+ def create_service_config(
659
+ self,
660
+ name: str,
661
+ *,
662
+ version: Literal["1.0.0", "2.0.0"] | None = None,
663
+ enabled_rules: Sequence[str] | None = None,
664
+ enforce_enabled_rules: bool | None = None,
665
+ fpe_vault_secret_id: str | None = None,
666
+ redactions: Mapping[str, Redaction] | None = None,
667
+ rules: Mapping[str, RuleV1 | RuleV2] | None = None,
668
+ rulesets: Mapping[str, RulesetV1 | RulesetV2] | None = None,
669
+ salt_vault_secret_id: str | None = None,
670
+ supported_languages: Sequence[Literal["en"]] | None = None,
671
+ vault_service_config_id: str | None = None,
672
+ ) -> PangeaResponse[ServiceConfigResult]:
673
+ """
674
+ Create a service config.
675
+
676
+ OperationId: redact_post_v1beta_config_create
677
+
678
+ Args:
679
+ enforce_enabled_rules: Always run service config enabled rules across all redact calls regardless of flags?
680
+ fpe_vault_secret_id: The ID of the key used by FF3 Encryption algorithms for FPE.
681
+ salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
682
+ vault_service_config_id: Service config used to create the secret
683
+ """
684
+
685
+ response = self.request.post(
686
+ "v1beta/config/create",
687
+ PangeaResponseResult,
688
+ data={
689
+ "name": name,
690
+ "version": version,
691
+ "enabled_rules": enabled_rules,
692
+ "enforce_enabled_rules": enforce_enabled_rules,
693
+ "fpe_vault_secret_id": fpe_vault_secret_id,
694
+ "redactions": redactions,
695
+ "rules": rules,
696
+ "rulesets": rulesets,
697
+ "salt_vault_secret_id": salt_vault_secret_id,
698
+ "supported_languages": supported_languages,
699
+ "vault_service_config_id": vault_service_config_id,
700
+ },
701
+ )
702
+ response.result = TypeAdapter(ServiceConfigResult).validate_python(response.json["result"])
703
+ return cast(PangeaResponse[ServiceConfigResult], response)
704
+
705
+ @overload
706
+ def update_service_config(
707
+ self,
708
+ config_id: str,
709
+ *,
710
+ version: Literal["1.0.0"],
711
+ name: str,
712
+ updated_at: str,
713
+ enabled_rules: Sequence[str] | None = None,
714
+ redactions: Mapping[str, Redaction] | None = None,
715
+ vault_service_config_id: str | None = None,
716
+ salt_vault_secret_id: str | None = None,
717
+ rules: Mapping[str, RuleV1] | None = None,
718
+ rulesets: Mapping[str, RulesetV1] | None = None,
719
+ supported_languages: Sequence[Literal["en"]] | None = None,
720
+ ) -> PangeaResponse[ServiceConfigResult]:
721
+ """
722
+ Update a v1.0.0 service config.
723
+
724
+ OperationId: redact_post_v1beta_config_update
725
+
726
+ Args:
727
+ vault_service_config_id: Service config used to create the secret
728
+ salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
729
+ """
730
+
731
+ @overload
732
+ def update_service_config(
733
+ self,
734
+ config_id: str,
735
+ *,
736
+ version: Literal["2.0.0"] | None = None,
737
+ name: str,
738
+ updated_at: str,
739
+ enabled_rules: Sequence[str] | None = None,
740
+ enforce_enabled_rules: bool | None = None,
741
+ redactions: Mapping[str, Redaction] | None = None,
742
+ vault_service_config_id: str | None = None,
743
+ salt_vault_secret_id: str | None = None,
744
+ fpe_vault_secret_id: str | None = None,
745
+ rules: Mapping[str, RuleV2] | None = None,
746
+ rulesets: Mapping[str, RulesetV2] | None = None,
747
+ supported_languages: Sequence[Literal["en"]] | None = None,
748
+ ) -> PangeaResponse[ServiceConfigResult]:
749
+ """
750
+ Update a v2.0.0 service config.
751
+
752
+ OperationId: redact_post_v1beta_config_update
753
+
754
+ Args:
755
+ enforce_enabled_rules: Always run service config enabled rules across all redact calls regardless of flags?
756
+ vault_service_config_id: Service config used to create the secret
757
+ salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
758
+ fpe_vault_secret_id: The ID of the key used by FF3 Encryption algorithms for FPE.
759
+ """
760
+
761
+ def update_service_config(
762
+ self,
763
+ config_id: str,
764
+ *,
765
+ version: Literal["1.0.0", "2.0.0"] | None = None,
766
+ name: str,
767
+ updated_at: str,
768
+ enabled_rules: Sequence[str] | None = None,
769
+ enforce_enabled_rules: bool | None = None,
770
+ fpe_vault_secret_id: str | None = None,
771
+ redactions: Mapping[str, Redaction] | None = None,
772
+ rules: Mapping[str, RuleV1 | RuleV2] | None = None,
773
+ rulesets: Mapping[str, RulesetV1 | RulesetV2] | None = None,
774
+ salt_vault_secret_id: str | None = None,
775
+ supported_languages: Sequence[Literal["en"]] | None = None,
776
+ vault_service_config_id: str | None = None,
777
+ ) -> PangeaResponse[ServiceConfigResult]:
778
+ """
779
+ Update a service config.
780
+
781
+ OperationId: redact_post_v1beta_config_update
782
+
783
+ Args:
784
+ enforce_enabled_rules: Always run service config enabled rules across all redact calls regardless of flags?
785
+ fpe_vault_secret_id: The ID of the key used by FF3 Encryption algorithms for FPE.
786
+ salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
787
+ vault_service_config_id: Service config used to create the secret
788
+ """
789
+
790
+ response = self.request.post(
791
+ "v1beta/config/update",
792
+ PangeaResponseResult,
793
+ data={
794
+ "id": config_id,
795
+ "updated_at": updated_at,
796
+ "name": name,
797
+ "version": version,
798
+ "enabled_rules": enabled_rules,
799
+ "enforce_enabled_rules": enforce_enabled_rules,
800
+ "fpe_vault_secret_id": fpe_vault_secret_id,
801
+ "redactions": redactions,
802
+ "rules": rules,
803
+ "rulesets": rulesets,
804
+ "salt_vault_secret_id": salt_vault_secret_id,
805
+ "supported_languages": supported_languages,
806
+ "vault_service_config_id": vault_service_config_id,
807
+ },
808
+ )
809
+ response.result = TypeAdapter(ServiceConfigResult).validate_python(response.json["result"])
810
+ return cast(PangeaResponse[ServiceConfigResult], response)
811
+
812
+ def delete_service_config(
813
+ self,
814
+ config_id: str,
815
+ ) -> PangeaResponse[ServiceConfigResult]:
816
+ """
817
+ Delete a service config.
818
+
819
+ OperationId: redact_post_v1beta_config_delete
820
+
821
+ Args:
822
+ config_id: An ID for a service config
823
+ """
824
+
825
+ response = self.request.post("v1beta/config/delete", PangeaResponseResult, data={"id": config_id})
826
+ response.result = TypeAdapter(ServiceConfigResult).validate_python(response.json["result"])
827
+ return cast(PangeaResponse[ServiceConfigResult], response)
828
+
829
+ def list_service_configs(
830
+ self,
831
+ *,
832
+ filter: ServiceConfigFilter | None = None,
833
+ last: str | None = None,
834
+ order: Literal["asc", "desc"] | None = None,
835
+ order_by: Literal["id", "created_at", "updated_at"] | None = None,
836
+ size: int | None = None,
837
+ ) -> PangeaResponse[ServiceConfigListResult]:
838
+ """
839
+ List service configs.
840
+
841
+ OperationId: redact_post_v1beta_config_list
842
+
843
+ Args:
844
+ last: Reflected value from a previous response to obtain the next page of results.
845
+ order: Order results asc(ending) or desc(ending).
846
+ order_by: Which field to order results by.
847
+ size: Maximum results to include in the response.
848
+ """
849
+
850
+ return self.request.post(
851
+ "v1beta/config/list",
852
+ ServiceConfigListResult,
853
+ data={"filter": filter, "last": last, "order": order, "order_by": order_by, "size": size},
854
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pangea-sdk
3
- Version: 6.3.0
3
+ Version: 6.5.0b1
4
4
  Summary: Pangea API SDK
5
5
  License: MIT
6
6
  Keywords: Pangea,SDK,Audit
@@ -1,18 +1,19 @@
1
- pangea/__init__.py,sha256=sj1sB7F5uQpLZtaAqYFcpmFREs0nbe4XOBnRWOCA1uE,370
1
+ pangea/__init__.py,sha256=H4zQ2k280GFKSkkuHmjllU_ulf7X7yEwOyRbxODjcK4,375
2
2
  pangea/asyncio/__init__.py,sha256=TIiYYY-DR4X6d3rGBqpCBQkPMFkogzYLXYvi_RvmCEM,64
3
3
  pangea/asyncio/file_uploader.py,sha256=FwR-p-Xgtmq3UDW6_ptRQLTL4_2AIzdaY358WjxwJBw,1436
4
- pangea/asyncio/request.py,sha256=VX5e7xIUmtP8TBan6efiAcc9cCdXGUJOAYZN-mhgRqQ,19395
5
- pangea/asyncio/services/__init__.py,sha256=m0nqw9_7mlachetzNxyJKZDOtEe2j2_UHFCELAE3Irg,484
6
- pangea/asyncio/services/ai_guard.py,sha256=QaeiKZSn8aDuBPfEsF_KgUbkAtaaauSd_RTGBAbBU3g,6274
7
- pangea/asyncio/services/audit.py,sha256=smZwzCKa37Wzo7yNqa-Rp7WCWNXXQCfjKA25PvxL8fo,26127
4
+ pangea/asyncio/request.py,sha256=092JKmsAGEX1Q_nSs5CN0mviXp7FHu0RqTbh4ArrY5Y,23372
5
+ pangea/asyncio/services/__init__.py,sha256=yBMNG1jQzNCjjhErNZ7douh-vJzwsUAHFUcAFA7DJw8,524
6
+ pangea/asyncio/services/ai_guard.py,sha256=y2sPxpijq5z95X1zg2fZA_39sSM0utVMbOOhg6fFNwE,12806
7
+ pangea/asyncio/services/audit.py,sha256=A40ewjj_KFh-49NNOKe-laoomq2ZEL5qu4A3t3OQlMA,39425
8
8
  pangea/asyncio/services/authn.py,sha256=z22Q0ym87Sf1_X9oQzj2kiQ5Lbb0KmK4iBNEdr3XfRo,52291
9
9
  pangea/asyncio/services/authz.py,sha256=vtSQ3iEYUGL7aSn4S-UjiwzXHlMeAW0vp1fbU7rx6Y8,10796
10
10
  pangea/asyncio/services/base.py,sha256=ntvuwfyAuhyfrptlBg1NFViGlFb3tf9uqxnC1PiBX6U,3206
11
11
  pangea/asyncio/services/embargo.py,sha256=ctzj3kip6xos-Eu3JuOskrCGYC8T3JlsgAopZHiPSXM,3068
12
12
  pangea/asyncio/services/file_scan.py,sha256=OCKvrTZgsTCKA6P261PSRl4anWcU-CvDPtXfrTqAxgE,7210
13
13
  pangea/asyncio/services/intel.py,sha256=SKDOye-b73SSmnvepuRQ_ej4on71uCeChtIfM0mcwTM,40193
14
- pangea/asyncio/services/prompt_guard.py,sha256=NbYt-0tRtO5VH7kLmC1lJ5JSV-ztlb9dNFaKKs_fZUM,2553
15
- pangea/asyncio/services/redact.py,sha256=356Kd5sww6wJsxA6DFIJvVEJle00n7HijdINb61YX9E,8014
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
16
17
  pangea/asyncio/services/sanitize.py,sha256=OybTAUfh_7vYRwb6Cjp4aHZoeHhIlg8caJ_BVrdbA1A,8691
17
18
  pangea/asyncio/services/share.py,sha256=AV9FbA-IMU5TFhcBtUHoXKDQYfOIWAJJZKW6vFohBbs,30816
18
19
  pangea/asyncio/services/vault.py,sha256=bYIUYmWYH8LqycfyDyNoS83BRWMd56t-RMt0B-TU8cQ,78564
@@ -25,13 +26,13 @@ pangea/dump_audit.py,sha256=b89jKV3ewy77WA_AzVMIT04_E1CUxTplj94IURJM7nc,7081
25
26
  pangea/exceptions.py,sha256=EiH7NiNDyN69ZYlVikF8d1tAO3_Do0bKl8dFXghY8t0,5585
26
27
  pangea/file_uploader.py,sha256=bDX9jZTw4h_gwFf9AjtfJYxQchLM2lVMgH93WhgCXsY,1275
27
28
  pangea/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- pangea/request.py,sha256=g5kQiV_hB4A38FVQnPX5Y64Y-N9LePWnf7QiFbxleOw,25541
29
+ pangea/request.py,sha256=u4aRM3RxyCoiHOQw5H-lzQ9bmFg3yF1uE4XdwisaAFY,29557
29
30
  pangea/response.py,sha256=gE5m82v8BruKwGTMZlT_Krv1YwYAmp6dhpKnVWGZpWg,7597
30
- pangea/services/__init__.py,sha256=CzgsgeO-wR4xTn7OUE2DhoIF4HoYQO-uA-yBhjNSF4g,428
31
- pangea/services/ai_guard.py,sha256=bXf4hFFeNYvmdeiSwcDgAwgveTNwLXe5-KirOea3Qt0,15986
32
- pangea/services/audit/audit.py,sha256=sBRghIhGscR46CxvWYN7FGHjZyqqtFOB4xH8CwxAsw4,39172
31
+ pangea/services/__init__.py,sha256=M5JK0OtyF6yVRHQS3wARAQroSFq0GdJN_B6R4fYsIhA,463
32
+ pangea/services/ai_guard.py,sha256=hssA0rNQgpGLUX3jmEXEf6NG_o2Nr0GWD_LMy5GN328,38994
33
+ pangea/services/audit/audit.py,sha256=sN64cuE4YyI6yAn5_S9ZoT3ZtyFDkB1lCET0KR15I_U,52392
33
34
  pangea/services/audit/exceptions.py,sha256=bhVuYe4ammacOVxwg98CChxvwZf5FKgR2DcgqILOcwc,471
34
- pangea/services/audit/models.py,sha256=pE4jtYAn_c5JdPrXBfpKHwpRAqO_DTSCOy-QHkPMajw,15471
35
+ pangea/services/audit/models.py,sha256=R5TJX0ymBPyNksM_0XeY05-PykZq9jxpwd5FbTDElDM,24648
35
36
  pangea/services/audit/signing.py,sha256=VsQkstQL1vxIdN2Ghxp4P-FLBpV_BIvDsBCkRAZQpk8,5593
36
37
  pangea/services/audit/util.py,sha256=dna9AKodlJ-C_VAXFebMu2r57Fl1DdRWdb1SyG7VLpA,7651
37
38
  pangea/services/authn/authn.py,sha256=vQUwf9wKKF0o-bcsyiBHky0cZ1UTqfqRCGeWPqNXdck,51206
@@ -41,8 +42,9 @@ pangea/services/base.py,sha256=ShkR0elPiYPln323x4L4F_hGhjQ5fB0zpGZ9J4SLk4g,3835
41
42
  pangea/services/embargo.py,sha256=3rE3ImjBg2VUXQljGZICedsr14psWdymC2pmmdJF2co,4000
42
43
  pangea/services/file_scan.py,sha256=DzFYJyBrByWZHUQN8ll8OvzsynT8qegMzaEMXJfiP2Q,7934
43
44
  pangea/services/intel.py,sha256=UronzgnzG5ZsmG9Km12Jw_at5bYAXoF-NqgYkH7WWfg,56958
44
- pangea/services/prompt_guard.py,sha256=Cq8ume2_YPfHre4iN6FYkyTV7NrdwLXlr_wnilfKotE,3446
45
- pangea/services/redact.py,sha256=LJMHPK8hDxPLEVNfRgESAWgL4GBMiJC_pr1wXGb79W8,13225
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
46
48
  pangea/services/sanitize.py,sha256=0ZlCrEg8imJtRyovy4qZJb1ZAZ8ppIOQTj_nocBJ2CM,13019
47
49
  pangea/services/share/file_format.py,sha256=1svO1ee_aenA9zoO_AaU-Rk5Ulp7kcPOc_KwNoluyQE,2797
48
50
  pangea/services/share/share.py,sha256=IhTilqWcQ2GlsJ7kHHuVbXfNu8jvFtPBnEeM26SNsY8,52403
@@ -55,6 +57,6 @@ pangea/services/vault/vault.py,sha256=dYkaDleCeJIiDVdwMeJXYnvKFICKI8U0uLdfX1BZYr
55
57
  pangea/tools.py,sha256=JkwVplvx7MCPRSdPhFTLvOl6h7btaUbXEuHgUy0EHBU,6452
56
58
  pangea/utils.py,sha256=QwTODI_D8by86uXeA0MpdhJICvz5baKUtfv1rguQshU,4943
57
59
  pangea/verify_audit.py,sha256=-VepQKHtSqZRqhIKiUtLufa7ywwdMNLN2SuhingMooU,17288
58
- pangea_sdk-6.3.0.dist-info/METADATA,sha256=pe3QGeeLCoriUi0Ty34u_vBGoGxHReAqxTeZcopf3GA,8015
59
- pangea_sdk-6.3.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
60
- pangea_sdk-6.3.0.dist-info/RECORD,,
60
+ pangea_sdk-6.5.0b1.dist-info/METADATA,sha256=CJR6onpJ16Em1tsZLaPi3qQiWRBCx1dE6fcpldKAgas,8017
61
+ pangea_sdk-6.5.0b1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
62
+ pangea_sdk-6.5.0b1.dist-info/RECORD,,