pangea-sdk 6.2.0b2__py3-none-any.whl → 6.4.0__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.
@@ -1,18 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
- from collections.abc import Mapping
4
- from typing import TYPE_CHECKING, Literal
3
+ from typing import TYPE_CHECKING
5
4
 
6
5
  from pangea.asyncio.services.base import ServiceBaseAsync
7
6
  from pangea.config import PangeaConfig
8
- from pangea.response import PangeaResponseResult
9
- from pangea.services.prompt_guard import (
10
- AuditDataActivityConfig,
11
- GuardResult,
12
- Message,
13
- ServiceConfigFilter,
14
- ServiceConfigsPage,
15
- )
7
+ from pangea.services.prompt_guard import GuardResult, Message
16
8
 
17
9
  if TYPE_CHECKING:
18
10
  from collections.abc import Iterable
@@ -90,105 +82,3 @@ class PromptGuardAsync(ServiceBaseAsync):
90
82
  GuardResult,
91
83
  data={"messages": messages, "analyzers": analyzers, "classify": classify},
92
84
  )
93
-
94
- async def get_service_config(
95
- self,
96
- *,
97
- id: str | None = None,
98
- version: str | None = None,
99
- analyzers: Mapping[str, bool] | None = None,
100
- malicious_detection_threshold: float | None = None,
101
- benign_detection_threshold: float | None = None,
102
- audit_data_activity: AuditDataActivityConfig | None = None,
103
- ) -> PangeaResponse[PangeaResponseResult]:
104
- """
105
- OperationId: prompt_guard_post_v1beta_config
106
- """
107
- return await self.request.post(
108
- "v1beta/config",
109
- data={
110
- "id": id,
111
- "version": version,
112
- "analyzers": analyzers,
113
- "malicious_detection_threshold": malicious_detection_threshold,
114
- "benign_detection_threshold": benign_detection_threshold,
115
- "audit_data_activity": audit_data_activity,
116
- },
117
- result_class=PangeaResponseResult,
118
- )
119
-
120
- async def create_service_config(
121
- self,
122
- *,
123
- id: str | None = None,
124
- version: str | None = None,
125
- analyzers: Mapping[str, bool] | None = None,
126
- malicious_detection_threshold: float | None = None,
127
- benign_detection_threshold: float | None = None,
128
- audit_data_activity: AuditDataActivityConfig | None = None,
129
- ) -> PangeaResponse[PangeaResponseResult]:
130
- """
131
- OperationId: prompt_guard_post_v1beta_config_create
132
- """
133
- return await self.request.post(
134
- "v1beta/config/create",
135
- data={
136
- "id": id,
137
- "version": version,
138
- "analyzers": analyzers,
139
- "malicious_detection_threshold": malicious_detection_threshold,
140
- "benign_detection_threshold": benign_detection_threshold,
141
- "audit_data_activity": audit_data_activity,
142
- },
143
- result_class=PangeaResponseResult,
144
- )
145
-
146
- async def update_service_config(
147
- self,
148
- *,
149
- id: str | None = None,
150
- version: str | None = None,
151
- analyzers: Mapping[str, bool] | None = None,
152
- malicious_detection_threshold: float | None = None,
153
- benign_detection_threshold: float | None = None,
154
- audit_data_activity: AuditDataActivityConfig | None = None,
155
- ) -> PangeaResponse[PangeaResponseResult]:
156
- """
157
- OperationId: prompt_guard_post_v1beta_config_update
158
- """
159
- return await self.request.post(
160
- "v1beta/config/update",
161
- data={
162
- "id": id,
163
- "version": version,
164
- "analyzers": analyzers,
165
- "malicious_detection_threshold": malicious_detection_threshold,
166
- "benign_detection_threshold": benign_detection_threshold,
167
- "audit_data_activity": audit_data_activity,
168
- },
169
- result_class=PangeaResponseResult,
170
- )
171
-
172
- async def delete_service_config(self, id: str) -> PangeaResponse[PangeaResponseResult]:
173
- """
174
- OperationId: prompt_guard_post_v1beta_config_delete
175
- """
176
- return await self.request.post("v1beta/config/delete", data={"id": id}, result_class=PangeaResponseResult)
177
-
178
- async def list_service_configs(
179
- self,
180
- *,
181
- filter: ServiceConfigFilter | None = None,
182
- last: str | None = None,
183
- order: Literal["asc", "desc"] | None = None,
184
- order_by: Literal["id", "created_at", "updated_at"] | None = None,
185
- size: int | None = None,
186
- ) -> PangeaResponse[ServiceConfigsPage]:
187
- """
188
- OperationId: prompt_guard_post_v1beta_config_list
189
- """
190
- return await self.request.post(
191
- "v1beta/config/list",
192
- data={"filter": filter, "last": last, "order": order, "order_by": order_by, "size": size},
193
- result_class=ServiceConfigsPage,
194
- )
@@ -6,15 +6,12 @@
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
- from collections.abc import Mapping, Sequence
10
- from typing import Dict, List, Literal, Optional, Union, cast, overload
11
-
12
- from pydantic import TypeAdapter
9
+ from typing import Dict, List, Optional, Union
13
10
 
14
11
  import pangea.services.redact as m
15
12
  from pangea.asyncio.services.base import ServiceBaseAsync
16
13
  from pangea.config import PangeaConfig
17
- from pangea.response import PangeaResponse, PangeaResponseResult
14
+ from pangea.response import PangeaResponse
18
15
 
19
16
 
20
17
  class RedactAsync(ServiceBaseAsync):
@@ -71,7 +68,7 @@ class RedactAsync(ServiceBaseAsync):
71
68
  rules: Optional[List[str]] = None,
72
69
  rulesets: Optional[List[str]] = None,
73
70
  return_result: Optional[bool] = None,
74
- redaction_method_overrides: Mapping[str, m.RedactionMethodOverrides] | None = None,
71
+ redaction_method_overrides: Optional[m.RedactionMethodOverrides] = None,
75
72
  llm_request: Optional[bool] = None,
76
73
  vault_parameters: Optional[m.VaultParameters] = None,
77
74
  ) -> PangeaResponse[m.RedactResult]:
@@ -126,7 +123,7 @@ class RedactAsync(ServiceBaseAsync):
126
123
  rules: Optional[List[str]] = None,
127
124
  rulesets: Optional[List[str]] = None,
128
125
  return_result: Optional[bool] = None,
129
- redaction_method_overrides: Mapping[str, m.RedactionMethodOverrides] | None = None,
126
+ redaction_method_overrides: Optional[m.RedactionMethodOverrides] = None,
130
127
  llm_request: bool | None = None,
131
128
  vault_parameters: m.VaultParameters | None = None,
132
129
  ) -> PangeaResponse[m.StructuredResult]:
@@ -207,261 +204,3 @@ class RedactAsync(ServiceBaseAsync):
207
204
  """
208
205
  input = m.UnredactRequest(redacted_data=redacted_data, fpe_context=fpe_context)
209
206
  return await self.request.post("v1/unredact", m.UnredactResult, data=input.model_dump(exclude_none=True))
210
-
211
- async def get_service_config(self, config_id: str) -> PangeaResponse[m.ServiceConfigResult]:
212
- """
213
- Get a service config.
214
-
215
-
216
- OperationId: redact_post_v1beta_config
217
- """
218
- response = await self.request.post("v1beta/config", PangeaResponseResult, data={"id": config_id})
219
- response.result = TypeAdapter(m.ServiceConfigResult).validate_python(response.json["result"])
220
- return cast(PangeaResponse[m.ServiceConfigResult], response)
221
-
222
- @overload
223
- async def create_service_config(
224
- self,
225
- name: str,
226
- *,
227
- version: Literal["1.0.0"],
228
- enabled_rules: Sequence[str] | None = None,
229
- redactions: Mapping[str, m.Redaction] | None = None,
230
- vault_service_config_id: str | None = None,
231
- salt_vault_secret_id: str | None = None,
232
- rules: Mapping[str, m.RuleV1] | None = None,
233
- rulesets: Mapping[str, m.RulesetV1] | None = None,
234
- supported_languages: Sequence[Literal["en"]] | None = None,
235
- ) -> PangeaResponse[m.ServiceConfigResult]:
236
- """
237
- Create a v1.0.0 service config.
238
-
239
- OperationId: redact_post_v1beta_config_create
240
-
241
- Args:
242
- vault_service_config_id: Service config used to create the secret
243
- salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
244
- """
245
-
246
- @overload
247
- async def create_service_config(
248
- self,
249
- name: str,
250
- *,
251
- version: Literal["2.0.0"] | None = None,
252
- enabled_rules: Sequence[str] | None = None,
253
- enforce_enabled_rules: bool | None = None,
254
- redactions: Mapping[str, m.Redaction] | None = None,
255
- vault_service_config_id: str | None = None,
256
- salt_vault_secret_id: str | None = None,
257
- fpe_vault_secret_id: str | None = None,
258
- rules: Mapping[str, m.RuleV2] | None = None,
259
- rulesets: Mapping[str, m.RulesetV2] | None = None,
260
- supported_languages: Sequence[Literal["en"]] | None = None,
261
- ) -> PangeaResponse[m.ServiceConfigResult]:
262
- """
263
- Create a v2.0.0 service config.
264
-
265
- OperationId: redact_post_v1beta_config_create
266
-
267
- Args:
268
- enforce_enabled_rules: Always run service config enabled rules across all redact calls regardless of flags?
269
- vault_service_config_id: Service config used to create the secret
270
- salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
271
- fpe_vault_secret_id: The ID of the key used by FF3 Encryption algorithms for FPE.
272
- """
273
-
274
- async def create_service_config(
275
- self,
276
- name: str,
277
- *,
278
- version: Literal["1.0.0", "2.0.0"] | None = None,
279
- enabled_rules: Sequence[str] | None = None,
280
- enforce_enabled_rules: bool | None = None,
281
- fpe_vault_secret_id: str | None = None,
282
- redactions: Mapping[str, m.Redaction] | None = None,
283
- rules: Mapping[str, m.RuleV1 | m.RuleV2] | None = None,
284
- rulesets: Mapping[str, m.RulesetV1 | m.RulesetV2] | None = None,
285
- salt_vault_secret_id: str | None = None,
286
- supported_languages: Sequence[Literal["en"]] | None = None,
287
- vault_service_config_id: str | None = None,
288
- ) -> PangeaResponse[m.ServiceConfigResult]:
289
- """
290
- Create a service config.
291
-
292
- OperationId: redact_post_v1beta_config_create
293
-
294
- Args:
295
- enforce_enabled_rules: Always run service config enabled rules across all redact calls regardless of flags?
296
- fpe_vault_secret_id: The ID of the key used by FF3 Encryption algorithms for FPE.
297
- salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
298
- vault_service_config_id: Service config used to create the secret
299
- """
300
-
301
- response = await self.request.post(
302
- "v1beta/config/create",
303
- PangeaResponseResult,
304
- data={
305
- "name": name,
306
- "version": version,
307
- "enabled_rules": enabled_rules,
308
- "enforce_enabled_rules": enforce_enabled_rules,
309
- "fpe_vault_secret_id": fpe_vault_secret_id,
310
- "redactions": redactions,
311
- "rules": rules,
312
- "rulesets": rulesets,
313
- "salt_vault_secret_id": salt_vault_secret_id,
314
- "supported_languages": supported_languages,
315
- "vault_service_config_id": vault_service_config_id,
316
- },
317
- )
318
- response.result = TypeAdapter(m.ServiceConfigResult).validate_python(response.json["result"])
319
- return cast(PangeaResponse[m.ServiceConfigResult], response)
320
-
321
- @overload
322
- async def update_service_config(
323
- self,
324
- config_id: str,
325
- *,
326
- version: Literal["1.0.0"],
327
- name: str,
328
- updated_at: str,
329
- enabled_rules: Sequence[str] | None = None,
330
- redactions: Mapping[str, m.Redaction] | None = None,
331
- vault_service_config_id: str | None = None,
332
- salt_vault_secret_id: str | None = None,
333
- rules: Mapping[str, m.RuleV1] | None = None,
334
- rulesets: Mapping[str, m.RulesetV1] | None = None,
335
- supported_languages: Sequence[Literal["en"]] | None = None,
336
- ) -> PangeaResponse[m.ServiceConfigResult]:
337
- """
338
- Update a v1.0.0 service config.
339
-
340
- OperationId: redact_post_v1beta_config_update
341
-
342
- Args:
343
- vault_service_config_id: Service config used to create the secret
344
- salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
345
- """
346
-
347
- @overload
348
- async def update_service_config(
349
- self,
350
- config_id: str,
351
- *,
352
- version: Literal["2.0.0"] | None = None,
353
- name: str,
354
- updated_at: str,
355
- enabled_rules: Sequence[str] | None = None,
356
- enforce_enabled_rules: bool | None = None,
357
- redactions: Mapping[str, m.Redaction] | None = None,
358
- vault_service_config_id: str | None = None,
359
- salt_vault_secret_id: str | None = None,
360
- fpe_vault_secret_id: str | None = None,
361
- rules: Mapping[str, m.RuleV2] | None = None,
362
- rulesets: Mapping[str, m.RulesetV2] | None = None,
363
- supported_languages: Sequence[Literal["en"]] | None = None,
364
- ) -> PangeaResponse[m.ServiceConfigResult]:
365
- """
366
- Update a v2.0.0 service config.
367
-
368
- OperationId: redact_post_v1beta_config_update
369
-
370
- Args:
371
- enforce_enabled_rules: Always run service config enabled rules across all redact calls regardless of flags?
372
- vault_service_config_id: Service config used to create the secret
373
- salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
374
- fpe_vault_secret_id: The ID of the key used by FF3 Encryption algorithms for FPE.
375
- """
376
-
377
- async def update_service_config(
378
- self,
379
- config_id: str,
380
- *,
381
- version: Literal["1.0.0", "2.0.0"] | None = None,
382
- name: str,
383
- updated_at: str,
384
- enabled_rules: Sequence[str] | None = None,
385
- enforce_enabled_rules: bool | None = None,
386
- fpe_vault_secret_id: str | None = None,
387
- redactions: Mapping[str, m.Redaction] | None = None,
388
- rules: Mapping[str, m.RuleV1 | m.RuleV2] | None = None,
389
- rulesets: Mapping[str, m.RulesetV1 | m.RulesetV2] | None = None,
390
- salt_vault_secret_id: str | None = None,
391
- supported_languages: Sequence[Literal["en"]] | None = None,
392
- vault_service_config_id: str | None = None,
393
- ) -> PangeaResponse[m.ServiceConfigResult]:
394
- """
395
- Update a service config.
396
-
397
- OperationId: redact_post_v1beta_config_update
398
-
399
- Args:
400
- enforce_enabled_rules: Always run service config enabled rules across all redact calls regardless of flags?
401
- fpe_vault_secret_id: The ID of the key used by FF3 Encryption algorithms for FPE.
402
- salt_vault_secret_id: Pangea only allows hashing to be done using a salt value to prevent brute-force attacks.
403
- vault_service_config_id: Service config used to create the secret
404
- """
405
-
406
- response = await self.request.post(
407
- "v1beta/config/update",
408
- PangeaResponseResult,
409
- data={
410
- "id": config_id,
411
- "updated_at": updated_at,
412
- "name": name,
413
- "version": version,
414
- "enabled_rules": enabled_rules,
415
- "enforce_enabled_rules": enforce_enabled_rules,
416
- "fpe_vault_secret_id": fpe_vault_secret_id,
417
- "redactions": redactions,
418
- "rules": rules,
419
- "rulesets": rulesets,
420
- "salt_vault_secret_id": salt_vault_secret_id,
421
- "supported_languages": supported_languages,
422
- "vault_service_config_id": vault_service_config_id,
423
- },
424
- )
425
- response.result = TypeAdapter(m.ServiceConfigResult).validate_python(response.json["result"])
426
- return cast(PangeaResponse[m.ServiceConfigResult], response)
427
-
428
- async def delete_service_config(self, config_id: str) -> PangeaResponse[m.ServiceConfigResult]:
429
- """
430
- Delete a service config.
431
-
432
- OperationId: redact_post_v1beta_config_delete
433
-
434
- Args:
435
- config_id: An ID for a service config
436
- """
437
-
438
- response = await self.request.post("v1beta/config/delete", PangeaResponseResult, data={"id": config_id})
439
- response.result = TypeAdapter(m.ServiceConfigResult).validate_python(response.json["result"])
440
- return cast(PangeaResponse[m.ServiceConfigResult], response)
441
-
442
- async def list_service_configs(
443
- self,
444
- *,
445
- filter: m.ServiceConfigFilter | None = None,
446
- last: str | None = None,
447
- order: Literal["asc", "desc"] | None = None,
448
- order_by: Literal["id", "created_at", "updated_at"] | None = None,
449
- size: int | None = None,
450
- ) -> PangeaResponse[m.ServiceConfigListResult]:
451
- """
452
- List service configs.
453
-
454
- OperationId: redact_post_v1beta_config_list
455
-
456
- Args:
457
- last: Reflected value from a previous response to obtain the next page of results.
458
- order: Order results asc(ending) or desc(ending).
459
- order_by: Which field to order results by.
460
- size: Maximum results to include in the response.
461
- """
462
-
463
- return await self.request.post(
464
- "v1beta/config/list",
465
- m.ServiceConfigListResult,
466
- data={"filter": filter, "last": last, "order": order, "order_by": order_by, "size": size},
467
- )