Coverage for .venv/lib/python3.13/site-packages/litellm/proxy/guardrails/guardrail_hooks/pangea/__init__.py: 42%
15 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:01 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:01 +0000
1from typing import TYPE_CHECKING, Final
3from litellm.types.guardrails import SupportedGuardrailIntegrations
5from .pangea import PangeaHandler
7if TYPE_CHECKING: 7 ↛ 8line 7 didn't jump to line 8 because the condition on line 7 was never true
8 from litellm.types.guardrails import Guardrail, LitellmParams
11def initialize_guardrail(litellm_params: "LitellmParams", guardrail: "Guardrail"):
12 import litellm
14 guardrail_name: Final = guardrail.get("guardrail_name")
15 if not guardrail_name:
16 raise ValueError("Pangea guardrail name is required")
18 _pangea_callback: Final = PangeaHandler(
19 guardrail_name=guardrail_name,
20 pangea_input_recipe=litellm_params.pangea_input_recipe,
21 pangea_output_recipe=litellm_params.pangea_output_recipe,
22 api_base=litellm_params.api_base,
23 api_key=litellm_params.api_key,
24 event_hook=litellm_params.mode,
25 default_on=litellm_params.default_on,
26 )
27 litellm.logging_callback_manager.add_litellm_callback(_pangea_callback)
29 return _pangea_callback
32guardrail_initializer_registry: Final = {
33 SupportedGuardrailIntegrations.PANGEA.value: initialize_guardrail,
34}
37guardrail_class_registry: Final = {
38 SupportedGuardrailIntegrations.PANGEA.value: PangeaHandler,
39}