import inspect from collections.abc import Awaitable, Callable from importlib import import_module from types import MethodType from typing import Final, cast import pytest PROXY_CLASS_NAME_ALIAS_CASES: Final = ( ( "litellm.proxy.hooks.dynamic_rate_limiter", "_PROXY_DynamicRateLimitHandler", "PROXY_DynamicRateLimitHandler", ), ( "litellm.proxy.hooks.dynamic_rate_limiter_v3", "_PROXY_DynamicRateLimitHandlerV3", "PROXY_DynamicRateLimitHandlerV3", ), ( "litellm.proxy.common_utils.config_sync_pubsub", "_ConfigSyncPubSub", "ConfigSyncPubSub", ), ( "litellm.proxy.guardrails.guardrail_hooks.presidio", "_OPTIONAL_PresidioPIIMasking", "OPTIONAL_PresidioPIIMasking", ), ( "litellm.proxy.hooks.prompt_injection_detection", "_OPTIONAL_PromptInjectionDetection", "OPTIONAL_PromptInjectionDetection", ), ( "litellm.proxy.hooks.batch_redis_get", "_PROXY_BatchRedisRequests", "PROXY_BatchRedisRequests", ), ( "litellm.proxy.hooks.azure_content_safety", "_PROXY_AzureContentSafety", "PROXY_AzureContentSafety", ), ( "litellm.proxy.guardrails.guardrail_hooks.cisco_ai_defense.cisco_ai_defense_mcp", "_CiscoAIDefenseMcpMixin", "CiscoAIDefenseMcpMixin", ), ( "litellm.proxy.hooks.cache_control_check", "_PROXY_CacheControlCheck", "PROXY_CacheControlCheck", ), ( "litellm.proxy.hooks.max_budget_per_session_limiter", "_PROXY_MaxBudgetPerSessionHandler", "PROXY_MaxBudgetPerSessionHandler", ), ( "litellm.proxy.hooks.max_iterations_limiter", "_PROXY_MaxIterationsHandler", "PROXY_MaxIterationsHandler", ), ( "litellm.proxy.hooks.parallel_request_limiter", "_PROXY_MaxParallelRequestsHandler", "PROXY_MaxParallelRequestsHandler", ), ( "litellm.proxy.hooks.parallel_request_limiter_v3", "_PROXY_MaxParallelRequestsHandler_v3", "PROXY_MaxParallelRequestsHandler_v3", ), ( "litellm.proxy.hooks.sensitive_data_routing", "_PROXY_SensitiveDataRoutingHandler", "PROXY_SensitiveDataRoutingHandler", ), ( "litellm.proxy.hooks.batch_rate_limiter", "_PROXY_BatchRateLimiter", "PROXY_BatchRateLimiter", ), ( "litellm.proxy.hooks.model_max_budget_limiter", "_PROXY_VirtualKeyModelMaxBudgetLimiter", "PROXY_VirtualKeyModelMaxBudgetLimiter", ), ( "litellm.proxy.hooks.proxy_track_cost_callback", "_ProxyDBLogger", "ProxyDBLogger", ), ( "enterprise.litellm_enterprise.proxy.hooks.managed_files", "_PROXY_LiteLLMManagedFiles", "PROXY_LiteLLMManagedFiles", ), ( "enterprise.litellm_enterprise.proxy.hooks.managed_vector_stores", "_PROXY_LiteLLMManagedVectorStores", "PROXY_LiteLLMManagedVectorStores", ), ) PACKAGE_EXPORT_ALIAS_CASES: Final = ( ("litellm.proxy.hooks", "_PROXY_CacheControlCheck", "PROXY_CacheControlCheck"), ( "litellm.proxy.hooks", "_PROXY_MaxBudgetPerSessionHandler", "PROXY_MaxBudgetPerSessionHandler", ), ("litellm.proxy.hooks", "_PROXY_MaxIterationsHandler", "PROXY_MaxIterationsHandler"), ("litellm.proxy.hooks", "_PROXY_MaxParallelRequestsHandler", "PROXY_MaxParallelRequestsHandler"), ( "litellm.proxy.hooks", "_PROXY_MaxParallelRequestsHandler_v3", "PROXY_MaxParallelRequestsHandler_v3", ), ( "litellm.proxy.hooks", "_PROXY_SensitiveDataRoutingHandler", "PROXY_SensitiveDataRoutingHandler", ), ( "litellm.proxy.management_endpoints.policy_endpoints", "_build_all_names_per_competitor", "build_all_names_per_competitor", ), ( "litellm.proxy.management_endpoints.policy_endpoints", "_build_comparison_blocked_words", "build_comparison_blocked_words", ), ( "litellm.proxy.management_endpoints.policy_endpoints", "_build_competitor_guardrail_definitions", "build_competitor_guardrail_definitions", ), ( "litellm.proxy.management_endpoints.policy_endpoints", "_build_name_blocked_words", "build_name_blocked_words", ), ( "litellm.proxy.management_endpoints.policy_endpoints", "_build_recommendation_blocked_words", "build_recommendation_blocked_words", ), ( "litellm.proxy.management_endpoints.policy_endpoints", "_build_refinement_prompt", "build_refinement_prompt", ), ( "litellm.proxy.management_endpoints.policy_endpoints", "_clean_competitor_line", "clean_competitor_line", ), ( "litellm.proxy.management_endpoints.policy_endpoints", "_parse_variations_response", "parse_variations_response", ), ) MODULE_IMPORT_ALIAS_CASES: Final = ( ( "litellm.litellm_core_utils.custom_logger_registry", "_PROXY_DynamicRateLimitHandler", "PROXY_DynamicRateLimitHandler", ), ( "litellm.litellm_core_utils.custom_logger_registry", "_PROXY_DynamicRateLimitHandlerV3", "PROXY_DynamicRateLimitHandlerV3", ), ( "litellm.proxy._experimental.mcp_server.auth.user_api_key_auth_mcp", "_read_request_body", "read_request_body", ), ( "litellm.proxy._experimental.mcp_server.auth.user_api_key_auth_mcp", "_run_centralized_common_checks", "run_centralized_common_checks", ), ( "litellm.proxy._experimental.mcp_server.bridge_token_flow", "_V2_GCM_PREFIX", "V2_GCM_PREFIX", ), ( "litellm.proxy._experimental.mcp_server.db", "_get_salt_key", "get_salt_key", ), ( "litellm.proxy._experimental.mcp_server.discoverable_endpoints", "_bridge_mint_error_response", "bridge_mint_error_response", ), ( "litellm.proxy._experimental.mcp_server.discoverable_endpoints", "_extract_user_id_from_request", "extract_user_id_from_request", ), ( "litellm.proxy._experimental.mcp_server.discoverable_endpoints", "_finish_bridge_mint", "finish_bridge_mint", ), ( "litellm.proxy._experimental.mcp_server.discoverable_endpoints", "_prepare_bridge_mint", "prepare_bridge_mint", ), ( "litellm.proxy._experimental.mcp_server.discoverable_endpoints", "_prepare_bridge_refresh", "prepare_bridge_refresh", ), ( "litellm.proxy._experimental.mcp_server.discoverable_endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy._experimental.mcp_server.discoverable_endpoints", "_reload_active_user_by_id", "reload_active_user_by_id", ), ( "litellm.proxy._experimental.mcp_server.mcp_server_manager", "_is_mcp_admitted_user_subject", "is_mcp_admitted_user_subject", ), ( "litellm.proxy._experimental.mcp_server.mcp_server_manager", "_redact_mcp_resource_url", "redact_mcp_resource_url", ), ( "litellm.proxy._experimental.mcp_server.oauth2_flow_backfill", "_decode_oauth_payload", "decode_oauth_payload", ), ( "litellm.proxy._experimental.mcp_server.operations", "_caller_authorization_fans_out", "caller_authorization_fans_out", ), ( "litellm.proxy._experimental.mcp_server.operations", "_client_forwarded_authorization_headers", "client_forwarded_authorization_headers", ), ( "litellm.proxy._experimental.mcp_server.operations", "_redact_mcp_resource_url", "redact_mcp_resource_url", ), ( "litellm.proxy._experimental.mcp_server.operations", "_request_auth_header", "request_auth_header", ), ( "litellm.proxy._experimental.mcp_server.operations", "_request_extra_headers", "request_extra_headers", ), ( "litellm.proxy._experimental.mcp_server.operations", "_request_resolved_auth_headers", "request_resolved_auth_headers", ), ( "litellm.proxy._experimental.mcp_server.operations", "_resolve_openapi_tool_auth", "resolve_openapi_tool_auth", ), ( "litellm.proxy._experimental.mcp_server.operations", "_should_strip_caller_authorization", "should_strip_caller_authorization", ), ( "litellm.proxy._experimental.mcp_server.rest_endpoints", "_UPSTREAM_OAUTH_DISCOVERY_AUTH_TYPES", "UPSTREAM_OAUTH_DISCOVERY_AUTH_TYPES", ), ( "litellm.proxy._experimental.mcp_server.rest_endpoints", "_apply_toolset_scope", "apply_toolset_scope", ), ( "litellm.proxy._experimental.mcp_server.rest_endpoints", "_inherit_credentials_from_existing_server", "inherit_credentials_from_existing_server", ), ( "litellm.proxy._experimental.mcp_server.rest_endpoints", "_redact_mcp_resource_url", "redact_mcp_resource_url", ), ( "litellm.proxy._experimental.mcp_server.rest_endpoints", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy._experimental.mcp_server.server", "_is_mcp_admitted_user_subject", "is_mcp_admitted_user_subject", ), ( "litellm.proxy._experimental.mcp_server.server", "_mcp_active_toolset_id", "mcp_active_toolset_id", ), ( "litellm.proxy._experimental.mcp_server.server", "_mcp_gateway_initialize_instructions", "mcp_gateway_initialize_instructions", ), ( "litellm.proxy._experimental.mcp_server.server", "_mcp_gateway_server_name", "mcp_gateway_server_name", ), ( "litellm.proxy.anthropic_endpoints.endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.anthropic_endpoints.gateway_endpoints", "_safe_set_request_parsed_body", "safe_set_request_parsed_body", ), ( "litellm.proxy.auth.auth_checks", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy.auth.auth_checks", "_safe_get_request_query_params", "safe_get_request_query_params", ), ( "litellm.proxy.auth.auth_exception_handler", "_get_request_ip_address", "get_request_ip_address", ), ( "litellm.proxy.auth.fallback_budget", "_is_model_cost_zero", "is_model_cost_zero", ), ( "litellm.proxy.auth.ip_address_utils", "_get_request_ip_address", "get_request_ip_address", ), ( "litellm.proxy.auth.resolvers.store", "_cache_key_object", "cache_key_object", ), ( "litellm.proxy.auth.resolvers.store", "_copy_user_api_key_auth_for_cache", "copy_user_api_key_auth_for_cache", ), ( "litellm.proxy.auth.resolvers.store", "_fetch_key_object_from_db_with_reconnect", "fetch_key_object_from_db_with_reconnect", ), ( "litellm.proxy.auth.route_checks", "_user_is_org_admin", "user_is_org_admin", ), ( "litellm.proxy.auth.user_api_key_auth", "_cache_key_object", "cache_key_object", ), ( "litellm.proxy.auth.user_api_key_auth", "_can_object_call_model", "can_object_call_model", ), ( "litellm.proxy.auth.user_api_key_auth", "_check_end_user_budget", "check_end_user_budget", ), ( "litellm.proxy.auth.user_api_key_auth", "_delete_cache_key_object", "delete_cache_key_object", ), ( "litellm.proxy.auth.user_api_key_auth", "_get_user_role", "get_user_role", ), ( "litellm.proxy.auth.user_api_key_auth", "_is_model_cost_zero", "is_model_cost_zero", ), ( "litellm.proxy.auth.user_api_key_auth", "_is_user_proxy_admin", "is_user_proxy_admin", ), ( "litellm.proxy.auth.user_api_key_auth", "_read_request_body", "read_request_body", ), ( "litellm.proxy.auth.user_api_key_auth", "_realtime_request_body", "realtime_request_body", ), ( "litellm.proxy.auth.user_api_key_auth", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy.auth.user_api_key_auth", "_safe_get_request_query_params", "safe_get_request_query_params", ), ( "litellm.proxy.auth.user_api_key_auth", "_safe_set_request_parsed_body", "safe_set_request_parsed_body", ), ( "litellm.proxy.auth.user_api_key_auth", "_team_member_max_budget_alert_check", "team_member_max_budget_alert_check", ), ( "litellm.proxy.auth.user_api_key_auth", "_virtual_key_max_budget_alert_check", "virtual_key_max_budget_alert_check", ), ( "litellm.proxy.auth.user_api_key_auth", "_virtual_key_max_budget_check", "virtual_key_max_budget_check", ), ( "litellm.proxy.auth.user_api_key_auth", "_virtual_key_soft_budget_check", "virtual_key_soft_budget_check", ), ( "litellm.proxy.batches_endpoints.endpoints", "_is_base64_encoded_unified_file_id", "is_base64_encoded_unified_file_id", ), ( "litellm.proxy.batches_endpoints.endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.common_request_processing", "_check_and_merge_model_level_guardrails", "check_and_merge_model_level_guardrails", ), ( "litellm.proxy.common_utils.auth_cache_invalidation_pubsub", "_ConfigSyncPubSub", "ConfigSyncPubSub", ), ( "litellm.proxy.common_utils.auth_cache_invalidation_pubsub", "_pubsub_capable_client", "pubsub_capable_client", ), ( "litellm.proxy.common_utils.key_rotation_manager", "_calculate_key_rotation_time", "calculate_key_rotation_time", ), ( "litellm.proxy.common_utils.openai_endpoint_utils", "_read_request_body", "read_request_body", ), ( "litellm.proxy.container_endpoints.endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.custom_hooks.custom_ui_sso_hook", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy.db.db_span", "_is_exception_related_to_db", "is_exception_related_to_db", ), ( "litellm.proxy.fine_tuning_endpoints.endpoints", "_is_base64_encoded_unified_file_id", "is_base64_encoded_unified_file_id", ), ( "litellm.proxy.google_endpoints.agents_endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.google_endpoints.agents_endpoints", "_safe_get_request_query_params", "safe_get_request_query_params", ), ( "litellm.proxy.google_endpoints.endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.guardrails.guardrail_endpoints", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.guardrails.guardrail_hooks.azure.prompt_shield", "_RESPONSES_API_CALL_TYPES", "RESPONSES_API_CALL_TYPES", ), ( "litellm.proxy.guardrails.guardrail_hooks.azure.text_moderation", "_RESPONSES_API_CALL_TYPES", "RESPONSES_API_CALL_TYPES", ), ( "litellm.proxy.guardrails.guardrail_hooks.cisco_ai_defense.cisco_ai_defense", "_CiscoAIDefenseMcpMixin", "CiscoAIDefenseMcpMixin", ), ( "litellm.proxy.guardrails.guardrail_hooks.litellm_content_filter.competitor_intent.airline", "_compile_marker", "compile_marker", ), ( "litellm.proxy.guardrails.guardrail_hooks.litellm_content_filter.competitor_intent.airline", "_count_signals", "count_signals", ), ( "litellm.proxy.guardrails.guardrail_hooks.litellm_content_filter.competitor_intent.airline", "_word_boundary_match", "word_boundary_match", ), ( "litellm.proxy.guardrails.guardrail_registry", "_OPTIONAL_PresidioPIIMasking", "OPTIONAL_PresidioPIIMasking", ), ( "litellm.proxy.health_endpoints._health_endpoints", "_clean_endpoint_data", "clean_endpoint_data", ), ( "litellm.proxy.health_endpoints._health_endpoints", "_update_litellm_params_for_health_check", "update_litellm_params_for_health_check", ), ( "litellm.proxy.hooks.dynamic_rate_limiter_v3", "_PROXY_MaxParallelRequestsHandler_v3", "PROXY_MaxParallelRequestsHandler_v3", ), ( "litellm.proxy.hooks.key_management_event_hooks", "_hash_token_if_needed", "hash_token_if_needed", ), ( "litellm.proxy.hooks.proxy_track_cost_callback", "_sanitize_error_information_for_spend_logs", "sanitize_error_information_for_spend_logs", ), ( "litellm.proxy.litellm_pre_call_utils", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy.management_endpoints.access_group_endpoints", "_cache_access_object", "cache_access_object", ), ( "litellm.proxy.management_endpoints.access_group_endpoints", "_cache_key_object", "cache_key_object", ), ( "litellm.proxy.management_endpoints.access_group_endpoints", "_cache_team_object", "cache_team_object", ), ( "litellm.proxy.management_endpoints.access_group_endpoints", "_get_team_object_from_cache", "get_team_object_from_cache", ), ( "litellm.proxy.management_endpoints.auto_router_endpoints", "_virtual_key_max_budget_check", "virtual_key_max_budget_check", ), ( "litellm.proxy.management_endpoints.budget_management_endpoints", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.management_endpoints.common_utils", "_premium_user_check", "premium_user_check", ), ( "litellm.proxy.management_endpoints.credential_migration", "_ALGO_AES_GCM", "ALGO_AES_GCM", ), ( "litellm.proxy.management_endpoints.credential_migration", "_ENCRYPTION_ALGORITHM_SETTING", "ENCRYPTION_ALGORITHM_SETTING", ), ( "litellm.proxy.management_endpoints.credential_migration", "_V2_GCM_PREFIX", "V2_GCM_PREFIX", ), ( "litellm.proxy.management_endpoints.credential_migration", "_get_salt_key", "get_salt_key", ), ( "litellm.proxy.management_endpoints.customer_endpoints", "_set_object_permission", "set_object_permission", ), ( "litellm.proxy.management_endpoints.internal_user_endpoints", "_check_permissions_caller_permission", "check_permissions_caller_permission", ), ( "litellm.proxy.management_endpoints.internal_user_endpoints", "_set_object_permission", "set_object_permission", ), ( "litellm.proxy.management_endpoints.internal_user_endpoints", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.management_endpoints.jwt_key_mapping_endpoints", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.management_endpoints.key_management_endpoints", "_add_model_to_db", "add_model_to_db", ), ( "litellm.proxy.management_endpoints.key_management_endpoints", "_check_disable_global_guardrails_caller_permission", "check_disable_global_guardrails_caller_permission", ), ( "litellm.proxy.management_endpoints.key_management_endpoints", "_check_passthrough_routes_caller_permission", "check_passthrough_routes_caller_permission", ), ( "litellm.proxy.management_endpoints.key_management_endpoints", "_delete_cache_key_object", "delete_cache_key_object", ), ( "litellm.proxy.management_endpoints.key_management_endpoints", "_hash_token_if_needed", "hash_token_if_needed", ), ( "litellm.proxy.management_endpoints.key_management_endpoints", "_is_master_key", "is_master_key", ), ( "litellm.proxy.management_endpoints.key_management_endpoints", "_set_object_metadata_field", "set_object_metadata_field", ), ( "litellm.proxy.management_endpoints.key_management_endpoints", "_set_object_permission", "set_object_permission", ), ( "litellm.proxy.management_endpoints.key_management_endpoints", "_team_member_has_permission", "team_member_has_permission", ), ( "litellm.proxy.management_endpoints.key_management_endpoints", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.management_endpoints.mcp_management_endpoints", "_raise_if_not_oauth2", "raise_if_not_oauth2", ), ( "litellm.proxy.management_endpoints.mcp_management_endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.management_endpoints.mcp_management_endpoints", "_user_api_key_auth_builder", "user_api_key_auth_builder", ), ( "litellm.proxy.management_endpoints.mcp_management_endpoints", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.management_endpoints.model_management_endpoints", "_refresh_cached_team", "refresh_cached_team", ), ( "litellm.proxy.management_endpoints.organization_endpoints", "_set_object_metadata_field", "set_object_metadata_field", ), ( "litellm.proxy.management_endpoints.organization_endpoints", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.management_endpoints.prompt_cache_prediction", "_PROXY_MaxParallelRequestsHandler_v3", "PROXY_MaxParallelRequestsHandler_v3", ), ( "litellm.proxy.management_endpoints.prompt_cache_prediction", "_read_request_body", "read_request_body", ), ( "litellm.proxy.management_endpoints.scim.scim_v2", "_delete_cache_key_object", "delete_cache_key_object", ), ( "litellm.proxy.management_endpoints.scim.scim_v2", "_premium_user_check", "premium_user_check", ), ( "litellm.proxy.management_endpoints.scim.scim_v2", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy.management_endpoints.session_endpoints", "_persist_deleted_verification_tokens", "persist_deleted_verification_tokens", ), ( "litellm.proxy.management_endpoints.team_callback_endpoints", "_CALLBACK_VAR_ENCRYPTED_PREFIX", "CALLBACK_VAR_ENCRYPTED_PREFIX", ), ( "litellm.proxy.management_endpoints.team_callback_endpoints", "_get_validated_callback_metadata", "get_validated_callback_metadata", ), ( "litellm.proxy.management_endpoints.team_callback_endpoints", "_refresh_cached_team", "refresh_cached_team", ), ( "litellm.proxy.management_endpoints.team_endpoints", "_cache_team_object", "cache_team_object", ), ( "litellm.proxy.management_endpoints.team_endpoints", "_check_disable_global_guardrails_caller_permission", "check_disable_global_guardrails_caller_permission", ), ( "litellm.proxy.management_endpoints.team_endpoints", "_check_passthrough_routes_caller_permission", "check_passthrough_routes_caller_permission", ), ( "litellm.proxy.management_endpoints.team_endpoints", "_set_object_metadata_field", "set_object_metadata_field", ), ( "litellm.proxy.management_endpoints.team_endpoints", "_set_object_permission", "set_object_permission", ), ( "litellm.proxy.management_endpoints.team_endpoints", "_team_member_has_permission", "team_member_has_permission", ), ( "litellm.proxy.management_endpoints.team_endpoints", "_update_metadata_fields", "update_metadata_fields", ), ( "litellm.proxy.management_endpoints.team_endpoints", "_upsert_budget_and_membership", "upsert_budget_and_membership", ), ( "litellm.proxy.management_endpoints.team_endpoints", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.management_endpoints.ui_sso", "_get_request_ip_address", "get_request_ip_address", ), ( "litellm.proxy.management_helpers.access_group_key_sync", "_delete_cache_access_object", "delete_cache_access_object", ), ( "litellm.proxy.management_helpers.access_group_team_sync", "_delete_cache_access_object", "delete_cache_access_object", ), ( "litellm.proxy.management_helpers.auto_router_permissions", "_check_team_member_model_access", "check_team_member_model_access", ), ( "litellm.proxy.management_helpers.bulk_team_member_budgets", "_upsert_budget_and_membership", "upsert_budget_and_membership", ), ( "litellm.proxy.management_helpers.bulk_user_creation", "_check_permissions_caller_permission", "check_permissions_caller_permission", ), ( "litellm.proxy.management_helpers.bulk_user_creation", "_set_object_permission", "set_object_permission", ), ( "litellm.proxy.management_helpers.bulk_user_deletion", "_persist_deleted_verification_tokens", "persist_deleted_verification_tokens", ), ( "litellm.proxy.management_helpers.utils", "_read_request_body", "read_request_body", ), ( "litellm.proxy.openai_files_endpoints.files_endpoints", "_is_base64_encoded_unified_file_id", "is_base64_encoded_unified_file_id", ), ( "litellm.proxy.openai_files_endpoints.files_endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints", "_get_bearer_token", "get_bearer_token", ), ( "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints", "_safe_set_request_parsed_body", "safe_set_request_parsed_body", ), ( "litellm.proxy.pass_through_endpoints.pass_through_endpoints", "_get_dynamic_logging_metadata", "get_dynamic_logging_metadata", ), ( "litellm.proxy.pass_through_endpoints.pass_through_endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.pass_through_endpoints.pass_through_endpoints", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy.proxy_server", "_OPTIONAL_PromptInjectionDetection", "OPTIONAL_PromptInjectionDetection", ), ( "litellm.proxy.proxy_server", "_PROXY_VirtualKeyModelMaxBudgetLimiter", "PROXY_VirtualKeyModelMaxBudgetLimiter", ), ( "litellm.proxy.proxy_server", "_ProxyDBLogger", "ProxyDBLogger", ), ( "litellm.proxy.proxy_server", "_add_model_to_db", "add_model_to_db", ), ( "litellm.proxy.proxy_server", "_add_team_model_to_db", "add_team_model_to_db", ), ( "litellm.proxy.proxy_server", "_cache_user_row", "cache_user_row", ), ( "litellm.proxy.proxy_server", "_deduplicate_litellm_router_models", "deduplicate_litellm_router_models", ), ( "litellm.proxy.proxy_server", "_fetch_global_spend_with_event_coordination", "fetch_global_spend_with_event_coordination", ), ( "litellm.proxy.proxy_server", "_get_docs_url", "get_docs_url", ), ( "litellm.proxy.proxy_server", "_get_openapi_url", "get_openapi_url", ), ( "litellm.proxy.proxy_server", "_get_projected_spend_over_limit", "get_projected_spend_over_limit", ), ( "litellm.proxy.proxy_server", "_get_redoc_url", "get_redoc_url", ), ( "litellm.proxy.proxy_server", "_is_azure_model_router_request", "is_azure_model_router_request", ), ( "litellm.proxy.proxy_server", "_is_projected_spend_over_limit", "is_projected_spend_over_limit", ), ( "litellm.proxy.proxy_server", "_is_valid_team_configs", "is_valid_team_configs", ), ( "litellm.proxy.proxy_server", "_read_request_body", "read_request_body", ), ( "litellm.proxy.proxy_server", "_realtime_request_body", "realtime_request_body", ), ( "litellm.proxy.proxy_server", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy.proxy_server", "_should_return_raw_model_name", "should_return_raw_model_name", ), ( "litellm.proxy.proxy_server", "_user_has_admin_privileges", "user_has_admin_privileges", ), ( "litellm.proxy.proxy_server", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.rag_endpoints.endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.rag_endpoints.endpoints", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy.realtime_endpoints.endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.response_api_endpoints.endpoints", "_read_request_body", "read_request_body", ), ( "litellm.proxy.response_api_endpoints.endpoints", "_safe_set_request_parsed_body", "safe_set_request_parsed_body", ), ( "litellm.proxy.search_endpoints.search_tool_registry", "_get_salt_key", "get_salt_key", ), ( "litellm.proxy.spend_tracking.cloudzero_endpoints", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.spend_tracking.vantage_endpoints", "_user_has_admin_view", "user_api_key_has_admin_view", ), ( "litellm.proxy.utils", "_PROXY_CacheControlCheck", "PROXY_CacheControlCheck", ), ( "litellm.proxy.utils", "_PROXY_MaxParallelRequestsHandler", "PROXY_MaxParallelRequestsHandler", ), ( "litellm.proxy.utils", "_PROXY_MaxParallelRequestsHandler_v3", "PROXY_MaxParallelRequestsHandler_v3", ), ( "litellm.proxy.utils", "_PROXY_SensitiveDataRoutingHandler", "PROXY_SensitiveDataRoutingHandler", ), ( "litellm.proxy.utils", "_is_exception_related_to_db", "is_exception_related_to_db", ), ( "litellm.proxy.vertex_ai_endpoints.langfuse_endpoints", "_get_dynamic_logging_metadata", "get_dynamic_logging_metadata", ), ( "litellm.proxy.vertex_ai_endpoints.langfuse_endpoints", "_safe_get_request_headers", "safe_get_request_headers", ), ( "litellm.proxy.video_endpoints.endpoints", "_read_request_body", "read_request_body", ), ) ALIAS_CASES: Final = ( ( "enterprise.enterprise_hooks.banned_keywords", "", "_ENTERPRISE_BannedKeywords", "ENTERPRISE_BannedKeywords", False, ), ( "enterprise.enterprise_hooks.blocked_user_list", "", "_ENTERPRISE_BlockedUserList", "ENTERPRISE_BlockedUserList", False, ), ( "enterprise.enterprise_hooks.google_text_moderation", "", "_ENTERPRISE_GoogleTextModeration", "ENTERPRISE_GoogleTextModeration", False, ), ( "enterprise.enterprise_hooks.openai_moderation", "", "_ENTERPRISE_OpenAI_Moderation", "ENTERPRISE_OpenAI_Moderation", False, ), ( "enterprise.litellm_enterprise.proxy.hooks.managed_files", "", "_PROXY_LiteLLMManagedFiles", "PROXY_LiteLLMManagedFiles", False, ), ( "enterprise.litellm_enterprise.proxy.hooks.managed_vector_stores", "", "_PROXY_LiteLLMManagedVectorStores", "PROXY_LiteLLMManagedVectorStores", False, ), ("litellm", "", "_calculate_retry_after", "calculate_retry_after", False), ("litellm", "", "_turn_on_debug", "turn_on_debug", False), ("litellm", "", "_turn_on_json", "turn_on_json", False), ("litellm._lazy_imports", "", "_get_default_encoding", "get_default_encoding", False), ("litellm._lazy_imports", "", "_get_lazy_import_registry", "get_lazy_import_registry", False), ("litellm._lazy_imports", "", "_get_messages_reach_token_count", "get_messages_reach_token_count", False), ("litellm._lazy_imports", "", "_get_token_counter_new", "get_token_counter_new", False), ("litellm._logging", "", "_is_debugging_on", "is_debugging_on", False), ("litellm._logging", "", "_redact_string", "redact_string", False), ("litellm._logging", "", "_turn_on_debug", "turn_on_debug", False), ("litellm._logging", "", "_turn_on_json", "turn_on_json", False), ("litellm._redis", "", "_generate_gcp_iam_access_token", "generate_gcp_iam_access_token", False), ( "litellm._redis_credential_provider", "", "_generate_gcp_iam_access_token", "generate_gcp_iam_access_token", False, ), ("litellm", "", "_should_retry", "should_retry", False), ("litellm.batches.batch_utils", "", "_count_entry_tokens", "count_entry_tokens", False), ("litellm.batches.batch_utils", "", "_estimate_batch_entry_tokens", "estimate_batch_entry_tokens", False), ("litellm.batches.batch_utils", "", "_extract_file_access_credentials", "extract_file_access_credentials", False), ("litellm.batches.batch_utils", "", "_get_file_content_as_dictionary", "get_file_content_as_dictionary", False), ("litellm.batches.batch_utils", "", "_handle_completed_batch", "handle_completed_batch", False), ("litellm.batches.batch_utils", "", "_iter_batch_input_lines", "iter_batch_input_lines", False), ("litellm.caching.caching", "Cache", "_get_cache_logic", "get_cache_logic", False), ( "litellm.caching.caching", "Cache", "_get_preset_cache_key_from_kwargs", "get_preset_cache_key_from_kwargs", False, ), ("litellm.caching.caching", "Cache", "_supports_async", "supports_async", False), ( "litellm.caching.caching_handler", "LLMCachingHandler", "_add_streaming_response_to_cache", "add_streaming_response_to_cache", False, ), ("litellm.caching.caching_handler", "LLMCachingHandler", "_async_get_cache", "async_get_cache", False), ( "litellm.caching.caching_handler", "LLMCachingHandler", "_combine_cached_embedding_response_with_api_result", "combine_cached_embedding_response_with_api_result", False, ), ( "litellm.caching.caching_handler", "LLMCachingHandler", "_should_store_result_in_cache", "should_store_result_in_cache", False, ), ( "litellm.caching.caching_handler", "LLMCachingHandler", "_sync_add_streaming_response_to_cache", "sync_add_streaming_response_to_cache", False, ), ("litellm.caching.caching_handler", "LLMCachingHandler", "_sync_get_cache", "sync_get_cache", False), ( "litellm.completion_extras.litellm_responses_transformation.transformation", "LiteLLMResponsesTransformationHandler", "_map_reasoning_effort", "map_reasoning_effort", False, ), ("litellm.cost_calculator", "", "_infer_call_type", "infer_call_type", False), ("litellm.cost_calculator", "", "_select_model_name_for_cost_calc", "select_model_name_for_cost_calc", False), ( "litellm.integrations.SlackAlerting.utils", "", "_add_langfuse_trace_id_to_alert", "add_langfuse_trace_id_to_alert", False, ), ( "litellm.integrations.arize.arize_phoenix_prompt_manager", "ArizePhoenixTemplateManager", "_load_prompt_from_arize", "load_prompt_from_arize", False, ), ( "litellm.integrations.bitbucket.bitbucket_prompt_manager", "BitBucketTemplateManager", "_load_prompt_from_bitbucket", "load_prompt_from_bitbucket", False, ), ( "litellm.integrations.dotprompt", "", "_get_prompt_data_from_dotprompt_content", "get_prompt_data_from_dotprompt_content", False, ), ( "litellm.integrations.dotprompt.prompt_manager", "PromptManager", "_parse_frontmatter", "parse_frontmatter", False, ), ("litellm.integrations.dynamodb", "DyanmoDBLogger", "_async_log_event", "async_log_event", False), ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_build_filename", "build_filename", False), ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_count_unique", "count_unique", False), ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_database", "database", True), ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_destination", "destination", True), ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_serializer", "serializer", True), ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_sum_column", "sum_column", False), ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_transformer", "transformer", True), ( "litellm.integrations.gitlab.gitlab_prompt_manager", "GitLabTemplateManager", "_id_to_repo_path", "id_to_repo_path", False, ), ( "litellm.integrations.gitlab.gitlab_prompt_manager", "GitLabTemplateManager", "_load_prompt_from_gitlab", "load_prompt_from_gitlab", False, ), ( "litellm.integrations.opentelemetry", "", "_build_metric_attribute_filter", "build_metric_attribute_filter", False, ), ( "litellm.integrations.opentelemetry", "", "_resolve_metric_attribute_filter", "resolve_metric_attribute_filter", False, ), ( "litellm.integrations.prometheus_helpers", "PrometheusLabelFactoryContext", "_custom_by_sanitized_key", "custom_by_sanitized_key", True, ), ( "litellm.integrations.prometheus_helpers", "PrometheusLabelFactoryContext", "_sanitized_enum", "sanitized_enum", True, ), ("litellm.integrations.prometheus_helpers", "PrometheusLabelFactoryContext", "_tag_labels", "tag_labels", True), ( "litellm.integrations.prometheus_helpers", "", "_get_cached_end_user_id_for_cost_tracking", "get_cached_end_user_id_for_cost_tracking", False, ), ( "litellm.integrations.weave.weave_otel", "", "_get_weave_authorization_header", "get_weave_authorization_header", False, ), ( "litellm.litellm_core_utils.core_helpers", "", "_get_parent_otel_span_from_kwargs", "get_parent_otel_span_from_kwargs", False, ), ("litellm.litellm_core_utils.dd_tracing", "", "_should_use_dd_profiler", "should_use_dd_profiler", False), ( "litellm.litellm_core_utils.exception_mapping_utils", "", "_add_key_name_and_team_to_alert", "add_key_name_and_team_to_alert", False, ), ( "litellm.litellm_core_utils.get_litellm_params", "", "_get_base_model_from_litellm_call_metadata", "get_base_model_from_litellm_call_metadata", False, ), ( "litellm.litellm_core_utils.get_llm_provider_logic", "", "_is_non_openai_azure_model", "is_non_openai_azure_model", False, ), ( "litellm.litellm_core_utils.get_model_cost_map", "GetModelCostMap", "_get_backup_model_count", "get_backup_model_count", False, ), ( "litellm.litellm_core_utils.health_check_helpers", "HealthCheckHelpers", "_update_model_params_with_health_check_tracking_information", "update_model_params_with_health_check_tracking_information", False, ), ( "litellm.litellm_core_utils.health_check_utils", "", "_create_health_check_response", "create_health_check_response", False, ), ("litellm.litellm_core_utils.litellm_logging", "Logging", "_defer_async_logging", "defer_async_logging", True), ( "litellm.litellm_core_utils.litellm_logging", "Logging", "_enqueue_deferred_logging", "enqueue_deferred_logging", True, ), ("litellm.litellm_core_utils.litellm_logging", "Logging", "_get_trace_id", "get_trace_id", False), ( "litellm.litellm_core_utils.litellm_logging", "Logging", "_is_sync_litellm_request", "is_sync_litellm_request", False, ), ("litellm.litellm_core_utils.litellm_logging", "Logging", "_llm_caching_handler", "llm_caching_handler", True), ( "litellm.litellm_core_utils.litellm_logging", "Logging", "_on_detached_stream_failure", "on_detached_stream_failure", True, ), ( "litellm.litellm_core_utils.litellm_logging", "Logging", "_response_cost_calculator", "response_cost_calculator", False, ), ( "litellm.litellm_core_utils.litellm_logging", "Logging", "_update_completion_start_time", "update_completion_start_time", False, ), ( "litellm.litellm_core_utils.litellm_logging", "StandardLoggingPayloadSetup", "_get_request_tags", "get_request_tags", False, ), ("litellm.litellm_core_utils.litellm_logging", "", "_get_masked_values", "get_masked_values", False), ( "litellm.litellm_core_utils.llm_cost_calc.tool_call_cost_tracking", "StandardBuiltInToolCostTracking", "_get_file_search_tool_call", "get_file_search_tool_call", False, ), ( "litellm.litellm_core_utils.llm_cost_calc.tool_call_cost_tracking", "StandardBuiltInToolCostTracking", "_get_web_search_options", "get_web_search_options", False, ), ( "litellm.litellm_core_utils.llm_cost_calc.utils", "CostCalculatorUtils", "_call_type_has_image_response", "call_type_has_image_response", False, ), ( "litellm.litellm_core_utils.llm_cost_calc.utils", "", "_generic_cost_per_character", "generic_cost_per_character", False, ), ("litellm.litellm_core_utils.llm_cost_calc.utils", "", "_get_cost_per_unit", "get_cost_per_unit", False), ( "litellm.litellm_core_utils.llm_cost_calc.utils", "", "_get_regional_uplift_multiplier", "get_regional_uplift_multiplier", False, ), ( "litellm.litellm_core_utils.llm_cost_calc.utils", "", "_get_service_tier_cost_key", "get_service_tier_cost_key", False, ), ("litellm.litellm_core_utils.llm_cost_calc.utils", "", "_is_above_128k", "is_above_128k", False), ( "litellm.litellm_core_utils.llm_request_utils", "", "_ensure_extra_body_is_safe", "ensure_extra_body_is_safe", False, ), ( "litellm.litellm_core_utils.llm_response_utils.convert_dict_to_response", "", "_handle_invalid_parallel_tool_calls", "handle_invalid_parallel_tool_calls", False, ), ( "litellm.litellm_core_utils.llm_response_utils.convert_dict_to_response", "", "_safe_convert_created_field", "safe_convert_created_field", False, ), ( "litellm.litellm_core_utils.llm_response_utils.convert_dict_to_response", "", "_should_convert_tool_call_to_json_mode", "should_convert_tool_call_to_json_mode", False, ), ( "litellm.litellm_core_utils.logging_callback_manager", "LoggingCallbackManager", "_add_custom_callback_generic_api_str", "add_custom_callback_generic_api_str", False, ), ( "litellm.litellm_core_utils.logging_callback_manager", "LoggingCallbackManager", "_get_all_callbacks", "get_all_callbacks", False, ), ( "litellm.litellm_core_utils.logging_utils", "", "_assemble_complete_response_from_streaming_chunks", "assemble_complete_response_from_streaming_chunks", False, ), ( "litellm.litellm_core_utils.model_param_helper", "ModelParamHelper", "_get_all_llm_api_params", "get_all_llm_api_params", False, ), ( "litellm.litellm_core_utils.model_param_helper", "ModelParamHelper", "_get_relevant_args_to_use_for_logging", "get_relevant_args_to_use_for_logging", False, ), ( "litellm.litellm_core_utils.model_param_helper", "ModelParamHelper", "_relevant_logging_args", "relevant_logging_args", False, ), ( "litellm.litellm_core_utils.prompt_templates.common_utils", "", "_audio_or_image_in_message_content", "audio_or_image_in_message_content", False, ), ( "litellm.litellm_core_utils.prompt_templates.common_utils", "", "_extract_reasoning_content", "extract_reasoning_content", False, ), ( "litellm.litellm_core_utils.prompt_templates.common_utils", "", "_get_image_mime_type_from_url", "get_image_mime_type_from_url", False, ), ( "litellm.litellm_core_utils.prompt_templates.common_utils", "", "_parse_content_for_reasoning", "parse_content_for_reasoning", False, ), ( "litellm.litellm_core_utils.prompt_templates.factory", "BedrockConverseMessagesProcessor", "_process_file_message", "process_file_message", False, ), ( "litellm.litellm_core_utils.prompt_templates.factory", "BedrockImageProcessor", "_validate_format", "validate_format", False, ), ( "litellm.litellm_core_utils.prompt_templates.factory", "", "_encode_tool_call_id_with_signature", "encode_tool_call_id_with_signature", False, ), ( "litellm.litellm_core_utils.prompt_templates.factory", "", "_get_thought_signature_from_tool", "get_thought_signature_from_tool", False, ), ("litellm.litellm_core_utils.prompt_templates.factory", "", "_parse_mime_type", "parse_mime_type", False), ( "litellm.litellm_core_utils.prompt_templates.huggingface_template_handler", "", "_aget_chat_template_file", "aget_chat_template_file", False, ), ( "litellm.litellm_core_utils.prompt_templates.huggingface_template_handler", "", "_aget_tokenizer_config", "aget_tokenizer_config", False, ), ( "litellm.litellm_core_utils.prompt_templates.huggingface_template_handler", "", "_extract_token_value", "extract_token_value", False, ), ( "litellm.litellm_core_utils.prompt_templates.huggingface_template_handler", "", "_get_chat_template_file", "get_chat_template_file", False, ), ( "litellm.litellm_core_utils.prompt_templates.huggingface_template_handler", "", "_get_tokenizer_config", "get_tokenizer_config", False, ), ( "litellm.litellm_core_utils.realtime_streaming", "RealTimeStreaming", "_detect_beta_header", "detect_beta_header", False, ), ( "litellm.litellm_core_utils.realtime_streaming", "RealTimeStreaming", "_maybe_inject_guardrail_auto_response_disable", "maybe_inject_guardrail_auto_response_disable", False, ), ( "litellm.litellm_core_utils.realtime_streaming", "RealTimeStreaming", "_session_created_sent_to_client", "session_created_sent_to_client", True, ), ("litellm.litellm_core_utils.secret_redaction", "", "_python_redact_string", "python_redact_string", False), ( "litellm.litellm_core_utils.secret_redaction", "", "_python_redact_structured_value", "python_redact_structured_value", False, ), ("litellm.litellm_core_utils.sensitive_data_masker", "SensitiveDataMasker", "_mask_value", "mask_value", False), ( "litellm.litellm_core_utils.streaming_handler", "CustomStreamWrapper", "_strip_sse_data_from_chunk", "strip_sse_data_from_chunk", False, ), ( "litellm.proxy.enterprise.litellm_enterprise.proxy.utils", "", "_should_block_robots", "should_block_robots", False, ), ("litellm.realtime_api.main", "", "_realtime_health_check", "realtime_health_check", False), ( "litellm.responses.litellm_completion_transformation.transformation", "LiteLLMCompletionResponsesConfig", "_tool_call_id_from_responses_item", "tool_call_id_from_responses_item", False, ), ( "litellm.responses.litellm_completion_transformation.transformation", "LiteLLMCompletionResponsesConfig", "_transform_chat_completion_annotations_to_response_output_annotations", "transform_chat_completion_annotations_to_response_output_annotations", False, ), ( "litellm.responses.litellm_completion_transformation.transformation", "LiteLLMCompletionResponsesConfig", "_transform_chat_completion_usage_to_responses_usage", "transform_chat_completion_usage_to_responses_usage", False, ), ( "litellm.responses.litellm_completion_transformation.transformation", "LiteLLMCompletionResponsesConfig", "_transform_tool_choice_for_responses_api_response", "transform_tool_choice_for_responses_api_response", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_add_mcp_output_elements_to_response", "add_mcp_output_elements_to_response", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_create_follow_up_input", "create_follow_up_input", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_create_follow_up_messages_for_chat", "create_follow_up_messages_for_chat", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_create_tool_execution_events", "create_tool_execution_events", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_execute_tool_calls", "execute_tool_calls", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_extract_tool_call_details", "extract_tool_call_details", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_extract_tool_calls_from_chat_response", "extract_tool_calls_from_chat_response", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_extract_tool_calls_from_response", "extract_tool_calls_from_response", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_get_parent_request_tags", "get_parent_request_tags", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_is_persistence_disabled", "is_persistence_disabled", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_make_follow_up_call", "make_follow_up_call", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_prepare_follow_up_call_params", "prepare_follow_up_call_params", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_prepare_initial_call_params", "prepare_initial_call_params", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_process_mcp_tools_to_openai_format", "process_mcp_tools_to_openai_format", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_process_mcp_tools_without_openai_transform", "process_mcp_tools_without_openai_transform", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_should_auto_execute_tools", "should_auto_execute_tools", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_should_use_litellm_mcp_gateway", "should_use_litellm_mcp_gateway", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_split_mcp_tools", "split_mcp_tools", False, ), ( "litellm.responses.mcp.litellm_proxy_mcp_handler", "LiteLLM_Proxy_MCP_Handler", "_transform_mcp_tools_to_openai", "transform_mcp_tools_to_openai", False, ), ("litellm.responses.streaming_iterator", "", "_get_openai_response_types", "get_openai_response_types", False), ("litellm.responses.utils", "ResponseAPILoggingUtils", "_is_response_api_usage", "is_response_api_usage", False), ( "litellm.responses.utils", "ResponseAPILoggingUtils", "_transform_response_api_usage_to_chat_usage", "transform_response_api_usage_to_chat_usage", False, ), ("litellm.responses.utils", "ResponsesAPIRequestUtils", "_build_container_id", "build_container_id", False), ("litellm.responses.utils", "ResponsesAPIRequestUtils", "_decode_container_id", "decode_container_id", False), ( "litellm.responses.utils", "ResponsesAPIRequestUtils", "_decode_encrypted_item_id", "decode_encrypted_item_id", False, ), ( "litellm.responses.utils", "ResponsesAPIRequestUtils", "_decode_responses_api_response_id", "decode_responses_api_response_id", False, ), ( "litellm.responses.utils", "ResponsesAPIRequestUtils", "_encode_container_id_on_output_item", "encode_container_id_on_output_item", False, ), ( "litellm.responses.utils", "ResponsesAPIRequestUtils", "_encode_container_ids_in_annotations", "encode_container_ids_in_annotations", False, ), ( "litellm.responses.utils", "ResponsesAPIRequestUtils", "_restore_encrypted_content_item_ids_in_input", "restore_encrypted_content_item_ids_in_input", False, ), ( "litellm.responses.utils", "ResponsesAPIRequestUtils", "_unwrap_encrypted_content_with_model_id", "unwrap_encrypted_content_with_model_id", False, ), ( "litellm.responses.utils", "ResponsesAPIRequestUtils", "_update_responses_api_response_id_with_model_id", "update_responses_api_response_id_with_model_id", False, ), ( "litellm.responses.utils", "ResponsesAPIRequestUtils", "_wrap_encrypted_content_with_model_id", "wrap_encrypted_content_with_model_id", False, ), ("litellm.router", "Router", "_are_all_deployments_blocked", "are_all_deployments_blocked", False), ("litellm.router", "Router", "_deployment_usable_by_team", "deployment_usable_by_team", False), ("litellm.router", "Router", "_get_all_deployments", "get_all_deployments", False), ("litellm.router", "Router", "_get_model_from_alias", "get_model_from_alias", False), ( "litellm.router", "Router", "_get_router_deployment_budget_limiter", "get_router_deployment_budget_limiter", False, ), ("litellm.router", "Router", "_is_deployment_blocked", "is_deployment_blocked", False), ( "litellm.router", "Router", "_is_model_access_group_for_wildcard_route", "is_model_access_group_for_wildcard_route", False, ), ("litellm.router", "Router", "_replay_model_cost_registrations", "replay_model_cost_registrations", False), ("litellm.router", "Router", "_routing_groups", "routing_groups", True), ("litellm.router", "Router", "_update_redis_cache", "update_redis_cache", False), ( "litellm.router_strategy.adaptive_router.adaptive_router", "AdaptiveRouter", "_state_loaded", "state_loaded", True, ), ( "litellm.router_strategy.tag_based_routing", "", "_get_tags_from_request_kwargs", "get_tags_from_request_kwargs", False, ), ("litellm.router_utils.add_retry_fallback_headers", "HiddenParamsAsyncIteratorWrapper", "_inner", "inner", True), ("litellm.router_utils.add_retry_fallback_headers", "", "_HiddenParamsHost", "HiddenParamsHost", False), ( "litellm.router_utils.batch_utils", "", "_get_router_metadata_variable_name", "get_router_metadata_variable_name", False, ), ("litellm.router_utils.common_utils", "", "_is_proxy_admin_request", "is_proxy_admin_request", False), ( "litellm.router_utils.cooldown_callbacks", "", "_get_prometheus_logger_from_callbacks", "get_prometheus_logger_from_callbacks", False, ), ( "litellm.router_utils.cooldown_handlers", "", "_async_get_cooldown_deployments", "async_get_cooldown_deployments", False, ), ( "litellm.router_utils.cooldown_handlers", "", "_async_get_cooldown_deployments_with_debug_info", "async_get_cooldown_deployments_with_debug_info", False, ), ("litellm.router_utils.cooldown_handlers", "", "_get_cooldown_deployments", "get_cooldown_deployments", False), ("litellm.router_utils.cooldown_handlers", "", "_set_cooldown_deployments", "set_cooldown_deployments", False), ( "litellm.router_utils.fallback_event_handlers", "", "_check_non_standard_fallback_format", "check_non_standard_fallback_format", False, ), ( "litellm.router_utils.pattern_match_deployments", "PatternMatchRouter", "_pattern_to_regex", "pattern_to_regex", False, ), ("litellm.types.agents", "", "_normalize_a2a_jsonrpc_response", "normalize_a2a_jsonrpc_response", False), ("litellm.types.completion", "", "_CompletionDispatchContext", "CompletionDispatchContext", False), ( "litellm.types.integrations.prometheus", "", "_sanitize_prometheus_label_name", "sanitize_prometheus_label_name", False, ), ( "litellm.types.integrations.prometheus", "", "_sanitize_prometheus_label_value", "sanitize_prometheus_label_value", False, ), ("litellm.types.utils", "", "_generate_id", "generate_id", False), ("litellm.utils", "ProviderConfigManager", "_get_bedrock_mantle_config", "get_bedrock_mantle_config", False), ( "litellm.utils", "", "_add_custom_logger_callback_to_specific_event", "add_custom_logger_callback_to_specific_event", False, ), ("litellm.utils", "", "_add_path_to_api_base", "add_path_to_api_base", False), ("litellm.utils", "", "_apply_openai_param_overrides", "apply_openai_param_overrides", False), ("litellm.utils", "", "_cached_get_model_info_helper", "cached_get_model_info_helper", False), ("litellm.utils", "", "_calculate_retry_after", "calculate_retry_after", False), ("litellm.utils", "", "_count_characters", "count_characters", False), ("litellm.utils", "", "_get_base_model_from_metadata", "get_base_model_from_metadata", False), ("litellm.utils", "", "_get_bundled_model_cost_map", "get_bundled_model_cost_map", False), ("litellm.utils", "", "_get_deployment_order", "get_deployment_order", False), ("litellm.utils", "", "_get_model_cost_key", "get_model_cost_key", False), ("litellm.utils", "", "_get_model_info_helper", "get_model_info_helper", False), ("litellm.utils", "", "_get_potential_model_names", "get_potential_model_names", False), ("litellm.utils", "", "_remove_additional_properties", "remove_additional_properties", False), ("litellm.utils", "", "_remove_json_schema_refs", "remove_json_schema_refs", False), ("litellm.utils", "", "_remove_strict_from_schema", "remove_strict_from_schema", False), ("litellm.utils", "", "_select_tokenizer", "select_tokenizer", False), ("litellm.utils", "", "_should_retry", "should_retry", False), ("litellm.utils", "", "_supports_factory", "supports_factory", False), ("litellm.utils", "", "_update_dictionary", "update_dictionary", False), ( "litellm.vector_stores.vector_store_registry", "VectorStoreIndexRegistry", "_get_vector_store_indexes_from_db", "get_vector_store_indexes_from_db", False, ), ( "litellm.vector_stores.vector_store_registry", "VectorStoreRegistry", "_get_vector_stores_from_db", "get_vector_stores_from_db", False, ), ) PROPERTY_CASES: Final = ( ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_database", "database"), ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_destination", "destination"), ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_serializer", "serializer"), ("litellm.integrations.focus.export_engine", "FocusExportEngine", "_transformer", "transformer"), ( "litellm.integrations.prometheus_helpers", "PrometheusLabelFactoryContext", "_custom_by_sanitized_key", "custom_by_sanitized_key", ), ("litellm.integrations.prometheus_helpers", "PrometheusLabelFactoryContext", "_sanitized_enum", "sanitized_enum"), ("litellm.integrations.prometheus_helpers", "PrometheusLabelFactoryContext", "_tag_labels", "tag_labels"), ("litellm.litellm_core_utils.litellm_logging", "Logging", "_defer_async_logging", "defer_async_logging"), ("litellm.litellm_core_utils.litellm_logging", "Logging", "_enqueue_deferred_logging", "enqueue_deferred_logging"), ("litellm.litellm_core_utils.litellm_logging", "Logging", "_llm_caching_handler", "llm_caching_handler"), ( "litellm.litellm_core_utils.litellm_logging", "Logging", "_on_detached_stream_failure", "on_detached_stream_failure", ), ( "litellm.litellm_core_utils.realtime_streaming", "RealTimeStreaming", "_session_created_sent_to_client", "session_created_sent_to_client", ), ("litellm.router", "Router", "_routing_groups", "routing_groups"), ("litellm.router_strategy.adaptive_router.adaptive_router", "AdaptiveRouter", "_state_loaded", "state_loaded"), ("litellm.router_utils.add_retry_fallback_headers", "HiddenParamsAsyncIteratorWrapper", "_inner", "inner"), ) CLASS_PROPERTY_CASES: Final = () LLMS_ALIAS_CASES: Final = ( ( "litellm.llms.anthropic.pass_through.adapters.transformation", "LiteLLMAnthropicMessagesAdapter", "_translate_openai_usage_to_anthropic_usage", "translate_openai_usage_to_anthropic_usage", False, ), ( "litellm.llms.anthropic.pass_through.adapters.transformation", "LiteLLMAnthropicMessagesAdapter", "_translate_openai_usage_to_anthropic_usage_delta", "translate_openai_usage_to_anthropic_usage_delta", False, ), ( "litellm.llms.anthropic.pass_through.adapters.transformation", "LiteLLMAnthropicMessagesAdapter", "_translate_streaming_openai_chunk_to_anthropic_content_block", "translate_streaming_openai_chunk_to_anthropic_content_block", False, ), ( "litellm.llms.anthropic.pass_through.context_management.dispatcher", "", "_normalize_spec", "normalize_spec", False, ), ( "litellm.llms.anthropic.pass_through.messages.streaming_iterator", "", "_is_message_stop_chunk", "is_message_stop_chunk", False, ), ( "litellm.llms.anthropic.pass_through.messages.streaming_iterator", "", "_is_provider_error_chunk", "is_provider_error_chunk", False, ), ( "litellm.llms.anthropic.pass_through.messages.transformation", "", "_messages_carry_output_config", "messages_carry_output_config", False, ), ("litellm.llms.azure.azure", "", "_check_dynamic_azure_params", "check_dynamic_azure_params", False), ( "litellm.llms.base_llm.base_utils", "", "_convert_tool_response_to_message", "convert_tool_response_to_message", False, ), ( "litellm.llms.bedrock.batches.handler", "BedrockBatchesHandler", "_handle_async_invoke_status", "handle_async_invoke_status", False, ), ( "litellm.llms.bedrock.batches.handler", "BedrockBatchesHandler", "_handle_model_invocation_job_status", "handle_model_invocation_job_status", False, ), ("litellm.llms.bedrock.common_utils", "", "_get_all_bedrock_regions", "get_all_bedrock_regions", False), ( "litellm.llms.custom_httpx.aiohttp_transport", "LiteLLMAiohttpTransport", "_get_valid_client_session", "get_valid_client_session", False, ), ( "litellm.llms.custom_httpx.http_handler", "", "_build_aiohttp_keepalive_socket_factory", "build_aiohttp_keepalive_socket_factory", False, ), ("litellm.llms.custom_httpx.http_handler", "", "_get_httpx_client", "get_httpx_client", False), ( "litellm.llms.custom_httpx.http_handler", "AsyncHTTPHandler", "_create_aiohttp_transport", "create_aiohttp_transport", False, ), ( "litellm.llms.custom_httpx.http_handler", "AsyncHTTPHandler", "_create_async_transport", "create_async_transport", False, ), ( "litellm.llms.custom_httpx.http_handler", "AsyncHTTPHandler", "_create_httpx_proxy_mounts", "create_httpx_proxy_mounts", False, ), ( "litellm.llms.custom_httpx.http_handler", "AsyncHTTPHandler", "_should_use_aiohttp_transport", "should_use_aiohttp_transport", False, ), ( "litellm.llms.huggingface.common_utils", "", "_fetch_inference_provider_mapping", "fetch_inference_provider_mapping", False, ), ("litellm.llms.oci.chat.cohere", "", "_extract_text_content", "extract_text_content", False), ("litellm.llms.oci.chat.generic", "", "_normalize_oci_finish_reason", "normalize_oci_finish_reason", False), ("litellm.llms.oci.chat.generic", "", "_synthesize_oci_tool_call_id", "synthesize_oci_tool_call_id", False), ("litellm.llms.ollama.common_utils", "", "_convert_image", "convert_image", False), ("litellm.llms.openai.chat.gpt_5_transformation", "", "_get_effort_level", "get_effort_level", False), ("litellm.llms.openai.completion.utils", "", "_transform_prompt", "transform_prompt", False), ( "litellm.llms.openai.cost_calculation", "", "_video_output_cost_per_second", "video_output_cost_per_second", False, ), ( "litellm.llms.openai.fine_tuning.handler", "", "_litellm_fine_tuning_job_from_response", "litellm_fine_tuning_job_from_response", False, ), ( "litellm.llms.vertex_ai.batches.transformation", "VertexAIBatchTransformation", "_get_batch_id_from_vertex_ai_batch_response", "get_batch_id_from_vertex_ai_batch_response", False, ), ("litellm.llms.vertex_ai.common_utils", "", "_build_json_schema", "build_json_schema", False), ("litellm.llms.vertex_ai.common_utils", "", "_build_vertex_schema", "build_vertex_schema", False), ("litellm.llms.vertex_ai.common_utils", "", "_check_text_in_content", "check_text_in_content", False), ( "litellm.llms.vertex_ai.common_utils", "", "_convert_vertex_datetime_to_openai_datetime", "convert_vertex_datetime_to_openai_datetime", False, ), ("litellm.llms.vertex_ai.common_utils", "", "_get_gemini_url", "get_gemini_url", False), ("litellm.llms.vertex_ai.common_utils", "", "_get_vertex_url", "get_vertex_url", False), ("litellm.llms.vertex_ai.gemini.transformation", "", "_camel_to_snake", "camel_to_snake", False), ( "litellm.llms.vertex_ai.gemini.transformation", "", "_gemini_convert_messages_with_history", "gemini_convert_messages_with_history", False, ), ("litellm.llms.vertex_ai.gemini.transformation", "", "_snake_to_camel", "snake_to_camel", False), ( "litellm.llms.vertex_ai.gemini.transformation", "", "_transform_request_body", "transform_request_body", False, ), ( "litellm.llms.vertex_ai.gemini.transformation", "", "_transform_system_message", "transform_system_message", False, ), ( "litellm.llms.vertex_ai.gemini_embeddings.batch_embed_content_transformation", "", "_is_file_reference", "is_file_reference", False, ), ( "litellm.llms.vertex_ai.vertex_llm_base", "", "_graft_default_vertex_path", "graft_default_vertex_path", False, ), ("litellm.llms.watsonx.common_utils", "", "_generate_watsonx_token", "generate_watsonx_token", False), ("litellm.llms.watsonx.common_utils", "", "_get_api_params", "get_api_params", False), ) PROXY_ALIAS_CASES: Final = ( ( 'litellm.proxy._experimental.mcp_server.auth.user_api_key_auth_mcp', '', '_is_mcp_admitted_user_subject', 'is_mcp_admitted_user_subject', False, ), ( 'litellm.proxy._experimental.mcp_server.auth.user_api_key_auth_mcp', 'MCPRequestHandler', '_get_mcp_auth_header_from_headers', 'get_mcp_auth_header_from_headers', False, ), ( 'litellm.proxy._experimental.mcp_server.auth.user_api_key_auth_mcp', 'MCPRequestHandler', '_get_mcp_server_auth_headers_from_headers', 'get_mcp_server_auth_headers_from_headers', False, ), ( 'litellm.proxy._experimental.mcp_server.auth.user_api_key_auth_mcp', 'MCPRequestHandler', '_get_mcp_servers_from_access_groups', 'get_mcp_servers_from_access_groups', False, ), ( 'litellm.proxy._experimental.mcp_server.auth.user_api_key_auth_mcp', 'MCPRequestHandler', '_get_oauth2_headers_from_headers', 'get_oauth2_headers_from_headers', False, ), ( 'litellm.proxy._experimental.mcp_server.auth.user_api_key_auth_mcp', 'MCPRequestHandler', '_safe_get_headers_from_scope', 'safe_get_headers_from_scope', False, ), ( 'litellm.proxy._experimental.mcp_server.bridge_token_flow', '', '_bridge_mint_error_response', 'bridge_mint_error_response', False, ), ( 'litellm.proxy._experimental.mcp_server.bridge_token_flow', '', '_extract_user_id_from_request', 'extract_user_id_from_request', False, ), ( 'litellm.proxy._experimental.mcp_server.bridge_token_flow', '', '_finish_bridge_mint', 'finish_bridge_mint', False, ), ( 'litellm.proxy._experimental.mcp_server.bridge_token_flow', '', '_prepare_bridge_mint', 'prepare_bridge_mint', False, ), ( 'litellm.proxy._experimental.mcp_server.bridge_token_flow', '', '_prepare_bridge_refresh', 'prepare_bridge_refresh', False, ), ( 'litellm.proxy._experimental.mcp_server.bridge_token_flow', '', '_reload_active_user_by_id', 'reload_active_user_by_id', False, ), ( 'litellm.proxy._experimental.mcp_server.byok_oauth_endpoints', '', '_user_id_from_session_cookie', 'user_id_from_session_cookie', False, ), ( 'litellm.proxy._experimental.mcp_server.db', '', '_decode_oauth_payload', 'decode_oauth_payload', False, ), ( 'litellm.proxy._experimental.mcp_server.discoverable_endpoints', '', '_raise_if_not_oauth2', 'raise_if_not_oauth2', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_context', '', '_mcp_active_toolset_id', 'mcp_active_toolset_id', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_context', '', '_mcp_gateway_initialize_instructions', 'mcp_gateway_initialize_instructions', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_context', '', '_mcp_gateway_server_name', 'mcp_gateway_server_name', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', '', '_UPSTREAM_OAUTH_DISCOVERY_AUTH_TYPES', 'UPSTREAM_OAUTH_DISCOVERY_AUTH_TYPES', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', '', '_caller_authorization_fans_out', 'caller_authorization_fans_out', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', '', '_client_forwarded_authorization_headers', 'client_forwarded_authorization_headers', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', '', '_resolve_openapi_tool_auth', 'resolve_openapi_tool_auth', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', '', '_should_strip_caller_authorization', 'should_strip_caller_authorization', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', 'MCPServerManager', '_build_mcp_server_table', 'build_mcp_server_table', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', 'MCPServerManager', '_build_stdio_env', 'build_stdio_env', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', 'MCPServerManager', '_create_mcp_client', 'create_mcp_client', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', 'MCPServerManager', '_ensure_upstream_initialize_instructions_cached', 'ensure_upstream_initialize_instructions_cached', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', 'MCPServerManager', '_extract_subject_token', 'extract_subject_token', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', 'MCPServerManager', '_get_mcp_server_from_tool_name', 'get_mcp_server_from_tool_name', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', 'MCPServerManager', '_get_tools_from_server', 'get_tools_from_server', False, ), ( 'litellm.proxy._experimental.mcp_server.mcp_server_manager', 'MCPServerManager', '_is_server_accessible_from_ip', 'is_server_accessible_from_ip', False, ), ( 'litellm.proxy._experimental.mcp_server.oauth2_token_cache', '', '_compute_per_user_token_ttl', 'compute_per_user_token_ttl', False, ), ( 'litellm.proxy._experimental.mcp_server.oauth_utils', '', '_redact_mcp_resource_url', 'redact_mcp_resource_url', False, ), ( 'litellm.proxy._experimental.mcp_server.server', '', '_redact_mcp_resource_url', 'redact_mcp_resource_url', False, ), ( 'litellm.proxy._experimental.mcp_server.openapi_to_mcp_generator', '', '_OPENAPI_TOOL_NAME_MAX_LEN', 'OPENAPI_TOOL_NAME_MAX_LEN', False, ), ( 'litellm.proxy._experimental.mcp_server.openapi_to_mcp_generator', '', '_request_auth_header', 'request_auth_header', False, ), ( 'litellm.proxy._experimental.mcp_server.openapi_to_mcp_generator', '', '_request_extra_headers', 'request_extra_headers', False, ), ( 'litellm.proxy._experimental.mcp_server.openapi_to_mcp_generator', '', '_request_resolved_auth_headers', 'request_resolved_auth_headers', False, ), ( 'litellm.proxy._experimental.mcp_server.semantic_tool_filter', 'SemanticMCPToolFilter', '_extract_tool_info', 'extract_tool_info', False, ), ( 'litellm.proxy._experimental.mcp_server.server', '', '_apply_toolset_scope', 'apply_toolset_scope', False, ), ( 'litellm.proxy._experimental.mcp_server.server_resolution', 'MCPServerRegistry', '_build_mcp_server_table', 'build_mcp_server_table', False, ), ( 'litellm.proxy._experimental.mcp_server.server_resolution', 'MCPServerRegistry', '_is_server_accessible_from_ip', 'is_server_accessible_from_ip', False, ), ( 'litellm.proxy.anthropic_endpoints.claude_code_endpoints.claude_code_marketplace', '', '_get_prisma_client', 'get_prisma_client', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_cache_access_object', 'cache_access_object', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_cache_key_object', 'cache_key_object', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_cache_team_object', 'cache_team_object', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_can_object_call_model', 'can_object_call_model', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_check_end_user_budget', 'check_end_user_budget', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_check_model_access_helper', 'check_model_access_helper', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_check_team_member_model_access', 'check_team_member_model_access', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_copy_user_api_key_auth_for_cache', 'copy_user_api_key_auth_for_cache', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_delete_cache_access_object', 'delete_cache_access_object', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_delete_cache_key_object', 'delete_cache_key_object', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_fetch_key_object_from_db_with_reconnect', 'fetch_key_object_from_db_with_reconnect', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_get_agent_ids_from_access_groups', 'get_agent_ids_from_access_groups', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_get_mcp_server_ids_from_access_groups', 'get_mcp_server_ids_from_access_groups', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_get_models_from_access_groups', 'get_models_from_access_groups', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_get_team_object_from_cache', 'get_team_object_from_cache', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_get_user_role', 'get_user_role', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_is_model_cost_zero', 'is_model_cost_zero', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_is_user_proxy_admin', 'is_user_proxy_admin', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_key_access_group_grants_model', 'key_access_group_grants_model', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_organization_max_budget_check', 'organization_max_budget_check', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_team_max_budget_check', 'team_max_budget_check', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_team_member_max_budget_alert_check', 'team_member_max_budget_alert_check', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_virtual_key_max_budget_alert_check', 'virtual_key_max_budget_alert_check', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_virtual_key_max_budget_check', 'virtual_key_max_budget_check', False, ), ( 'litellm.proxy.auth.auth_checks', '', '_virtual_key_soft_budget_check', 'virtual_key_soft_budget_check', False, ), ( 'litellm.proxy.auth.auth_checks_organization', '', '_user_is_org_admin', 'user_is_org_admin', False, ), ( 'litellm.proxy.auth.auth_exception_handler', 'UserAPIKeyAuthExceptionHandler', '_handle_authentication_error', 'handle_authentication_error', False, ), ( 'litellm.proxy.auth.auth_utils', '', '_get_request_ip_address', 'get_request_ip_address', False, ), ( 'litellm.proxy.auth.resolvers.store', 'IdentityStore', '_principal_from_key', 'principal_from_key', False, ), ( 'litellm.proxy.auth.route_checks', 'RouteChecks', '_get_request_method', 'get_request_method', False, ), ( 'litellm.proxy.auth.route_checks', 'RouteChecks', '_is_assistants_api_request', 'is_assistants_api_request', False, ), ( 'litellm.proxy.auth.route_checks', 'RouteChecks', '_is_wildcard_pattern', 'is_wildcard_pattern', False, ), ( 'litellm.proxy.auth.user_api_key_auth', '', '_enforce_key_and_fallback_model_access', 'enforce_key_and_fallback_model_access', False, ), ( 'litellm.proxy.auth.user_api_key_auth', '', '_fetch_global_spend_with_event_coordination', 'fetch_global_spend_with_event_coordination', False, ), ( 'litellm.proxy.auth.user_api_key_auth', '', '_get_bearer_token', 'get_bearer_token', False, ), ( 'litellm.proxy.auth.user_api_key_auth', '', '_run_centralized_common_checks', 'run_centralized_common_checks', False, ), ( 'litellm.proxy.auth.user_api_key_auth', '', '_user_api_key_auth_builder', 'user_api_key_auth_builder', False, ), ( 'litellm.proxy.common_request_processing', '', '_is_azure_model_router_request', 'is_azure_model_router_request', False, ), ( 'litellm.proxy.common_request_processing', '', '_should_return_raw_model_name', 'should_return_raw_model_name', False, ), ( 'litellm.proxy.common_request_processing', 'ProxyBaseLLMRequestProcessing', '_finalize_streaming_generator_cleanup', 'finalize_streaming_generator_cleanup', False, ), ( 'litellm.proxy.common_request_processing', 'ProxyBaseLLMRequestProcessing', '_handle_llm_api_exception', 'handle_llm_api_exception', False, ), ( 'litellm.proxy.common_request_processing', 'ProxyBaseLLMRequestProcessing', '_process_chunk_with_cost_injection', 'process_chunk_with_cost_injection', False, ), ( 'litellm.proxy.common_utils.callback_utils', '', '_CALLBACK_VAR_ENCRYPTED_PREFIX', 'CALLBACK_VAR_ENCRYPTED_PREFIX', False, ), ( 'litellm.proxy.common_utils.config_sync_pubsub', '', '_ConfigSyncPubSub', 'ConfigSyncPubSub', False, ), ( 'litellm.proxy.common_utils.config_sync_pubsub', '', '_pubsub_capable_client', 'pubsub_capable_client', False, ), ( 'litellm.proxy.common_utils.encrypt_decrypt_utils', '', '_ALGO_AES_GCM', 'ALGO_AES_GCM', False, ), ( 'litellm.proxy.common_utils.encrypt_decrypt_utils', '', '_ENCRYPTION_ALGORITHM_SETTING', 'ENCRYPTION_ALGORITHM_SETTING', False, ), ( 'litellm.proxy.common_utils.encrypt_decrypt_utils', '', '_V2_GCM_PREFIX', 'V2_GCM_PREFIX', False, ), ( 'litellm.proxy.common_utils.encrypt_decrypt_utils', '', '_get_salt_key', 'get_salt_key', False, ), ( 'litellm.proxy.common_utils.http_parsing_utils', '', '_read_request_body', 'read_request_body', False, ), ( 'litellm.proxy.common_utils.http_parsing_utils', '', '_safe_get_request_headers', 'safe_get_request_headers', False, ), ( 'litellm.proxy.common_utils.http_parsing_utils', '', '_safe_get_request_query_params', 'safe_get_request_query_params', False, ), ( 'litellm.proxy.common_utils.http_parsing_utils', '', '_safe_set_request_parsed_body', 'safe_set_request_parsed_body', False, ), ( 'litellm.proxy.common_utils.realtime_utils', '', '_realtime_request_body', 'realtime_request_body', False, ), ( 'litellm.proxy.db.db_spend_update_writer', 'DBSpendUpdateWriter', '_commit_daily_tag_spend_to_db', 'commit_daily_tag_spend_to_db', False, ), ( 'litellm.proxy.db.db_spend_update_writer', 'DBSpendUpdateWriter', '_commit_daily_tag_spend_to_db_with_redis', 'commit_daily_tag_spend_to_db_with_redis', False, ), ( 'litellm.proxy.db.db_spend_update_writer', 'DBSpendUpdateWriter', '_handle_spend_update_failure', 'handle_spend_update_failure', False, ), ( 'litellm.proxy.db.db_transaction_queue.redis_update_buffer', 'RedisUpdateBuffer', '_should_commit_spend_updates_to_redis', 'should_commit_spend_updates_to_redis', False, ), ( 'litellm.proxy.db.log_db_metrics', '', '_is_exception_related_to_db', 'is_exception_related_to_db', False, ), ( 'litellm.proxy.guardrails.guardrail_hooks.azure.base', '', '_RESPONSES_API_CALL_TYPES', 'RESPONSES_API_CALL_TYPES', False, ), ( 'litellm.proxy.guardrails.guardrail_hooks.cisco_ai_defense.cisco_ai_defense_mcp', '', '_CiscoAIDefenseMcpMixin', 'CiscoAIDefenseMcpMixin', False, ), ( 'litellm.proxy.guardrails.guardrail_hooks.litellm_content_filter.competitor_intent.base', '', '_compile_marker', 'compile_marker', False, ), ( 'litellm.proxy.guardrails.guardrail_hooks.litellm_content_filter.competitor_intent.base', '', '_count_signals', 'count_signals', False, ), ( 'litellm.proxy.guardrails.guardrail_hooks.litellm_content_filter.competitor_intent.base', '', '_word_boundary_match', 'word_boundary_match', False, ), ( 'litellm.proxy.guardrails.guardrail_hooks.presidio', '', '_OPTIONAL_PresidioPIIMasking', 'OPTIONAL_PresidioPIIMasking', False, ), ( 'litellm.proxy.health_check', '', '_clean_endpoint_data', 'clean_endpoint_data', False, ), ( 'litellm.proxy.health_check', '', '_update_litellm_params_for_health_check', 'update_litellm_params_for_health_check', False, ), ( 'litellm.proxy.health_endpoints._health_endpoints', '', '_convert_health_check_to_dict', 'convert_health_check_to_dict', False, ), ( 'litellm.proxy.health_endpoints._health_endpoints', '', '_save_background_health_checks_to_db', 'save_background_health_checks_to_db', False, ), ( 'litellm.proxy.hooks.azure_content_safety', '', '_PROXY_AzureContentSafety', 'PROXY_AzureContentSafety', False, ), ( 'litellm.proxy.hooks.batch_rate_limiter', '', '_PROXY_BatchRateLimiter', 'PROXY_BatchRateLimiter', False, ), ( 'litellm.proxy.hooks.batch_redis_get', '', '_PROXY_BatchRedisRequests', 'PROXY_BatchRedisRequests', False, ), ( 'litellm.proxy.hooks.cache_control_check', '', '_PROXY_CacheControlCheck', 'PROXY_CacheControlCheck', False, ), ( 'litellm.proxy.hooks.dynamic_rate_limiter', '', '_PROXY_DynamicRateLimitHandler', 'PROXY_DynamicRateLimitHandler', False, ), ( 'litellm.proxy.hooks.dynamic_rate_limiter_v3', '', '_PROXY_DynamicRateLimitHandlerV3', 'PROXY_DynamicRateLimitHandlerV3', False, ), ( 'litellm.proxy.hooks.max_budget_per_session_limiter', '', '_PROXY_MaxBudgetPerSessionHandler', 'PROXY_MaxBudgetPerSessionHandler', False, ), ( 'litellm.proxy.hooks.max_iterations_limiter', '', '_PROXY_MaxIterationsHandler', 'PROXY_MaxIterationsHandler', False, ), ( 'litellm.proxy.hooks.model_max_budget_limiter', '', '_PROXY_VirtualKeyModelMaxBudgetLimiter', 'PROXY_VirtualKeyModelMaxBudgetLimiter', False, ), ( 'litellm.proxy.hooks.parallel_request_limiter', '', '_PROXY_MaxParallelRequestsHandler', 'PROXY_MaxParallelRequestsHandler', False, ), ( 'litellm.proxy.hooks.parallel_request_limiter_v3', '', '_PROXY_MaxParallelRequestsHandler_v3', 'PROXY_MaxParallelRequestsHandler_v3', False, ), ( 'litellm.proxy.hooks.parallel_request_limiter_v3', '_PROXY_MaxParallelRequestsHandler_v3', '_create_rate_limit_descriptors', 'create_rate_limit_descriptors', False, ), ( 'litellm.proxy.hooks.prompt_injection_detection', '', '_OPTIONAL_PromptInjectionDetection', 'OPTIONAL_PromptInjectionDetection', False, ), ( 'litellm.proxy.hooks.proxy_track_cost_callback', '', '_ProxyDBLogger', 'ProxyDBLogger', False, ), ( 'litellm.proxy.hooks.sensitive_data_routing', '', '_PROXY_SensitiveDataRoutingHandler', 'PROXY_SensitiveDataRoutingHandler', False, ), ( 'litellm.proxy.litellm_pre_call_utils', '', '_add_guardrails_from_key_or_team_metadata', 'add_guardrails_from_key_or_team_metadata', False, ), ( 'litellm.proxy.litellm_pre_call_utils', '', '_get_dynamic_logging_metadata', 'get_dynamic_logging_metadata', False, ), ( 'litellm.proxy.litellm_pre_call_utils', '', '_get_metadata_variable_name', 'get_metadata_variable_name', False, ), ( 'litellm.proxy.litellm_pre_call_utils', '', '_get_validated_callback_metadata', 'get_validated_callback_metadata', False, ), ( 'litellm.proxy.litellm_pre_call_utils', 'LiteLLMProxyRequestSetup', '_merge_tags', 'merge_tags', False, ), ( 'litellm.proxy.management_endpoints.common_utils', '', '_check_disable_global_guardrails_caller_permission', 'check_disable_global_guardrails_caller_permission', False, ), ( 'litellm.proxy.management_endpoints.common_utils', '', '_check_passthrough_routes_caller_permission', 'check_passthrough_routes_caller_permission', False, ), ( 'litellm.proxy.management_endpoints.common_utils', '', '_set_object_metadata_field', 'set_object_metadata_field', False, ), ( 'litellm.proxy.management_endpoints.common_utils', '', '_team_member_has_permission', 'team_member_has_permission', False, ), ( 'litellm.proxy.management_endpoints.common_utils', '', '_update_metadata_fields', 'update_metadata_fields', False, ), ( 'litellm.proxy.management_endpoints.common_utils', '', '_upsert_budget_and_membership', 'upsert_budget_and_membership', False, ), ( 'litellm.proxy.management_endpoints.common_utils', '', '_user_has_admin_privileges', 'user_has_admin_privileges', False, ), ( 'litellm.proxy.management_endpoints.common_utils', '', '_user_has_admin_view', 'user_api_key_has_admin_view', False, ), ( 'litellm.proxy.management_endpoints.config_override_endpoints', '', '_clear_hashicorp_vault_state', 'clear_hashicorp_vault_state', False, ), ( 'litellm.proxy.management_endpoints.config_override_endpoints', '', '_get_current_env_values', 'get_current_env_values', False, ), ( 'litellm.proxy.management_endpoints.config_override_endpoints', '', '_parse_config_value', 'parse_config_value', False, ), ( 'litellm.proxy.management_endpoints.config_override_endpoints', '', '_set_env_vars', 'set_env_vars', False, ), ( 'litellm.proxy.management_endpoints.key_management_endpoints', '', '_calculate_key_rotation_time', 'calculate_key_rotation_time', False, ), ( 'litellm.proxy.management_endpoints.key_management_endpoints', '', '_check_permissions_caller_permission', 'check_permissions_caller_permission', False, ), ( 'litellm.proxy.management_endpoints.key_management_endpoints', '', '_get_caller_team_role', 'get_caller_team_role', False, ), ( 'litellm.proxy.management_endpoints.key_management_endpoints', '', '_list_key_helper', 'list_key_helper', False, ), ( 'litellm.proxy.management_endpoints.key_management_endpoints', '', '_persist_deleted_verification_tokens', 'persist_deleted_verification_tokens', False, ), ( 'litellm.proxy.management_endpoints.key_management_endpoints', '', '_rotate_master_key', 'rotate_master_key', False, ), ( 'litellm.proxy.management_endpoints.mcp_management_endpoints', '', '_inherit_credentials_from_existing_server', 'inherit_credentials_from_existing_server', False, ), ( 'litellm.proxy.management_endpoints.model_management_endpoints', '', '_add_model_to_db', 'add_model_to_db', False, ), ( 'litellm.proxy.management_endpoints.model_management_endpoints', '', '_add_team_model_to_db', 'add_team_model_to_db', False, ), ( 'litellm.proxy.management_endpoints.model_management_endpoints', '', '_deduplicate_litellm_router_models', 'deduplicate_litellm_router_models', False, ), ( 'litellm.proxy.management_endpoints.organization_endpoints', '', '_verify_org_access', 'verify_org_access', False, ), ( 'litellm.proxy.management_endpoints.policy_endpoints.endpoints', '', '_build_all_names_per_competitor', 'build_all_names_per_competitor', False, ), ( 'litellm.proxy.management_endpoints.policy_endpoints.endpoints', '', '_build_comparison_blocked_words', 'build_comparison_blocked_words', False, ), ( 'litellm.proxy.management_endpoints.policy_endpoints.endpoints', '', '_build_competitor_guardrail_definitions', 'build_competitor_guardrail_definitions', False, ), ( 'litellm.proxy.management_endpoints.policy_endpoints.endpoints', '', '_build_name_blocked_words', 'build_name_blocked_words', False, ), ( 'litellm.proxy.management_endpoints.policy_endpoints.endpoints', '', '_build_recommendation_blocked_words', 'build_recommendation_blocked_words', False, ), ( 'litellm.proxy.management_endpoints.policy_endpoints.endpoints', '', '_build_refinement_prompt', 'build_refinement_prompt', False, ), ( 'litellm.proxy.management_endpoints.policy_endpoints.endpoints', '', '_clean_competitor_line', 'clean_competitor_line', False, ), ( 'litellm.proxy.management_endpoints.policy_endpoints.endpoints', '', '_parse_variations_response', 'parse_variations_response', False, ), ( 'litellm.proxy.management_endpoints.team_endpoints', '', '_cleanup_members_with_roles', 'cleanup_members_with_roles', False, ), ( 'litellm.proxy.management_endpoints.team_endpoints', '', '_refresh_cached_team', 'refresh_cached_team', False, ), ( 'litellm.proxy.management_endpoints.team_endpoints', 'TeamMemberBudgetHandler', '_clean_team_member_fields', 'clean_team_member_fields', False, ), ( 'litellm.proxy.management_endpoints.ui_sso', '', '_sso_return_to_redirect', 'sso_return_to_redirect', False, ), ( 'litellm.proxy.management_endpoints.ui_sso', 'SSOAuthenticationHandler', '_delete_pkce_verifier', 'delete_pkce_verifier', False, ), ( 'litellm.proxy.management_endpoints.ui_sso', 'SSOAuthenticationHandler', '_get_cli_state', 'get_cli_state', False, ), ( 'litellm.proxy.management_endpoints.ui_sso', 'SSOAuthenticationHandler', '_get_user_email_and_id_from_result', 'get_user_email_and_id_from_result', False, ), ( 'litellm.proxy.management_endpoints.ui_sso', 'SSOAuthenticationHandler', '_pkce_token_exchange', 'pkce_token_exchange', False, ), ( 'litellm.proxy.management_endpoints.ui_sso', 'SSOAuthenticationHandler', '_validate_return_to', 'validate_return_to', False, ), ( 'litellm.proxy.management_helpers.object_permission_utils', '', '_get_allow_all_keys_server_ids', 'get_allow_all_keys_server_ids', False, ), ( 'litellm.proxy.management_helpers.object_permission_utils', '', '_get_team_allowed_mcp_servers', 'get_team_allowed_mcp_servers', False, ), ( 'litellm.proxy.management_helpers.object_permission_utils', '', '_set_object_permission', 'set_object_permission', False, ), ( 'litellm.proxy.openai_files_endpoints.common_utils', '', '_is_base64_encoded_unified_file_id', 'is_base64_encoded_unified_file_id', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints', '', '_extract_model_from_bedrock_endpoint', 'extract_model_from_bedrock_endpoint', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints', 'BaseOpenAIPassThroughHandler', '_base_openai_pass_through_handler', 'base_openai_pass_through_handler', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_provider_handlers.anthropic_passthrough_logging_handler', 'AnthropicPassthroughLoggingHandler', '_build_complete_streaming_response', 'build_complete_streaming_response', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_provider_handlers.anthropic_passthrough_logging_handler', 'AnthropicPassthroughLoggingHandler', '_build_usage_only_response_from_chunks', 'build_usage_only_response_from_chunks', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_provider_handlers.anthropic_passthrough_logging_handler', 'AnthropicPassthroughLoggingHandler', '_handle_logging_anthropic_collected_chunks', 'handle_logging_anthropic_collected_chunks', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_provider_handlers.assembly_passthrough_logging_handler', 'AssemblyAIPassthroughLoggingHandler', '_get_assembly_base_url_from_region', 'get_assembly_base_url_from_region', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_provider_handlers.assembly_passthrough_logging_handler', 'AssemblyAIPassthroughLoggingHandler', '_get_assembly_region_from_url', 'get_assembly_region_from_url', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_provider_handlers.assembly_passthrough_logging_handler', 'AssemblyAIPassthroughLoggingHandler', '_should_log_request', 'should_log_request', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_provider_handlers.openai_passthrough_logging_handler', '', '_is_openai_compatible_url', 'is_openai_compatible_url', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_provider_handlers.openai_passthrough_logging_handler', 'OpenAIPassthroughLoggingHandler', '_handle_logging_openai_collected_chunks', 'handle_logging_openai_collected_chunks', False, ), ( 'litellm.proxy.pass_through_endpoints.llm_provider_handlers.vertex_passthrough_logging_handler', 'VertexPassthroughLoggingHandler', '_handle_logging_vertex_collected_chunks', 'handle_logging_vertex_collected_chunks', False, ), ( 'litellm.proxy.pass_through_endpoints.pass_through_endpoints', 'HttpPassThroughEndpointHelpers', '_init_kwargs_for_pass_through_endpoint', 'init_kwargs_for_pass_through_endpoint', False, ), ( 'litellm.proxy.pass_through_endpoints.pass_through_endpoints', 'HttpPassThroughEndpointHelpers', '_update_stream_param_based_on_request_body', 'update_stream_param_based_on_request_body', False, ), ( 'litellm.proxy.pass_through_endpoints.streaming_handler', 'PassThroughStreamingHandler', '_route_streaming_logging_to_handler', 'route_streaming_logging_to_handler', False, ), ( 'litellm.proxy.pass_through_endpoints.success_handler', 'PassThroughEndpointLogging', '_handle_logging', 'handle_logging', False, ), ( 'litellm.proxy.policy_engine.policy_registry', 'PolicyRegistry', '_parse_policy', 'parse_policy', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_apply_uvicorn_max_requests_jitter', 'apply_uvicorn_max_requests_jitter', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_configure_dev_reload', 'configure_dev_reload', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_echo_litellm_version', 'echo_litellm_version', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_get_default_unvicorn_init_args', 'get_default_unvicorn_init_args', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_get_loop_type', 'get_loop_type', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_init_granian_server', 'init_granian_server', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_init_hypercorn_server', 'init_hypercorn_server', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_is_port_in_use', 'is_port_in_use', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_maybe_setup_prometheus_multiproc_dir', 'maybe_setup_prometheus_multiproc_dir', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_run_config_validation', 'run_config_validation', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_run_gunicorn_server', 'run_gunicorn_server', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_run_health_check', 'run_health_check', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_run_ollama_serve', 'run_ollama_serve', False, ), ( 'litellm.proxy.proxy_cli', 'ProxyInitializationHelpers', '_run_test_chat_completion', 'run_test_chat_completion', False, ), ( 'litellm.proxy.proxy_server', '', '_build_redis_usage_cache', 'build_redis_usage_cache', False, ), ( 'litellm.proxy.proxy_server', '', '_ensure_spend_counter_initialized', 'ensure_spend_counter_initialized', False, ), ( 'litellm.proxy.proxy_server', '', '_ensure_window_spend_counter_initialized', 'ensure_window_spend_counter_initialized', False, ), ( 'litellm.proxy.proxy_server', '', '_environment_has_redis_connection_target', 'environment_has_redis_connection_target', False, ), ( 'litellm.proxy.proxy_server', '', '_get_model_group_info', 'get_model_group_info', False, ), ( 'litellm.proxy.proxy_server', '', '_increment_spend_counter_cache', 'increment_spend_counter_cache', False, ), ( 'litellm.proxy.proxy_server', '', '_initialize_shared_aiohttp_session', 'initialize_shared_aiohttp_session', False, ), ( 'litellm.proxy.proxy_server', '', '_invalidate_spend_counter', 'invalidate_spend_counter', False, ), ( 'litellm.proxy.proxy_server', '', '_title', 'title', False, ), ( 'litellm.proxy.proxy_server', 'ProxyConfig', '_add_deployment_locked', 'add_deployment_locked', False, ), ( 'litellm.proxy.proxy_server', 'ProxyConfig', '_decrypt_and_set_db_env_variables', 'decrypt_and_set_db_env_variables', False, ), ( 'litellm.proxy.proxy_server', 'ProxyConfig', '_decrypt_db_variables', 'decrypt_db_variables', False, ), ( 'litellm.proxy.proxy_server', 'ProxyConfig', '_encrypt_env_variables', 'encrypt_env_variables', False, ), ( 'litellm.proxy.proxy_server', 'ProxyConfig', '_encrypt_env_variables_for_db', 'encrypt_env_variables_for_db', False, ), ( 'litellm.proxy.proxy_server', 'ProxyConfig', '_get_models_from_db', 'get_models_from_db', False, ), ( 'litellm.proxy.proxy_server', 'ProxyConfig', '_init_cache', 'init_cache', False, ), ( 'litellm.proxy.proxy_server', 'ProxyConfig', '_init_semantic_filter_settings_in_db', 'init_semantic_filter_settings_in_db', False, ), ( 'litellm.proxy.proxy_server', 'ProxyConfig', '_serve_pass_through_endpoints', 'serve_pass_through_endpoints', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_add_proxy_budget_to_db', 'add_proxy_budget_to_db', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_attach_router_to_prompt_injection_detectors', 'attach_router_to_prompt_injection_detectors', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_get_transaction_buffer_redis_cache', 'get_transaction_buffer_redis_cache', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_init_coordination_redis_from_db', 'init_coordination_redis_from_db', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_init_dd_tracer', 'init_dd_tracer', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_init_pyroscope', 'init_pyroscope', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_initialize_jwt_auth', 'initialize_jwt_auth', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_initialize_semantic_tool_filter', 'initialize_semantic_tool_filter', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_initialize_startup_logging', 'initialize_startup_logging', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_setup_prisma_client', 'setup_prisma_client', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_sync_ui_settings_to_general_settings', 'sync_ui_settings_to_general_settings', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_update_default_team_member_budget', 'update_default_team_member_budget', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_validate_redis_transaction_buffer_config', 'validate_redis_transaction_buffer_config', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_warm_global_spend_cache', 'warm_global_spend_cache', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_warn_budget_without_db', 'warn_budget_without_db', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_warn_fail_closed_rate_limits_without_redis', 'warn_fail_closed_rate_limits_without_redis', False, ), ( 'litellm.proxy.proxy_server', 'ProxyStartupEvent', '_warn_if_mock_testing_params_enabled', 'warn_if_mock_testing_params_enabled', False, ), ( 'litellm.proxy.spend_tracking.spend_management_endpoints', '', '_get_spend_report_for_time_range', 'get_spend_report_for_time_range', False, ), ( 'litellm.proxy.spend_tracking.spend_management_endpoints', '', '_is_admin_view_safe', 'is_admin_view_safe', False, ), ( 'litellm.proxy.spend_tracking.spend_tracking_utils', '', '_is_master_key', 'is_master_key', False, ), ( 'litellm.proxy.spend_tracking.spend_tracking_utils', '', '_sanitize_error_information_for_spend_logs', 'sanitize_error_information_for_spend_logs', False, ), ( 'litellm.proxy.utils', '', '_cache_user_row', 'cache_user_row', False, ), ( 'litellm.proxy.utils', '', '_check_and_merge_model_level_guardrails', 'check_and_merge_model_level_guardrails', False, ), ( 'litellm.proxy.utils', '', '_get_docs_url', 'get_docs_url', False, ), ( 'litellm.proxy.utils', '', '_get_openapi_url', 'get_openapi_url', False, ), ( 'litellm.proxy.utils', '', '_get_projected_spend_over_limit', 'get_projected_spend_over_limit', False, ), ( 'litellm.proxy.utils', '', '_get_redoc_url', 'get_redoc_url', False, ), ( 'litellm.proxy.utils', '', '_hash_token_if_needed', 'hash_token_if_needed', False, ), ( 'litellm.proxy.utils', '', '_is_projected_spend_over_limit', 'is_projected_spend_over_limit', False, ), ( 'litellm.proxy.utils', '', '_is_valid_team_configs', 'is_valid_team_configs', False, ), ( 'litellm.proxy.utils', '', '_monitor_spend_logs_queue', 'monitor_spend_logs_queue', False, ), ( 'litellm.proxy.utils', '', '_premium_user_check', 'premium_user_check', False, ), ( 'litellm.proxy.utils', '', '_raise_failed_update_spend_exception', 'raise_failed_update_spend_exception', False, ), ( 'litellm.proxy.utils', 'ProxyLogging', '_arelease_max_parallel_requests_on_disconnect', 'arelease_max_parallel_requests_on_disconnect', False, ), ( 'litellm.proxy.utils', 'ProxyLogging', '_callback_capabilities', 'callback_capabilities', False, ), ( 'litellm.proxy.utils', 'ProxyLogging', '_convert_mcp_hook_response_to_kwargs', 'convert_mcp_hook_response_to_kwargs', False, ), ( 'litellm.proxy.utils', 'ProxyLogging', '_create_mcp_request_object_from_kwargs', 'create_mcp_request_object_from_kwargs', False, ), ( 'litellm.proxy.utils', 'ProxyLogging', '_fire_deferred_stream_logging', 'fire_deferred_stream_logging', False, ), ) LLMS_FORWARDER_CASES: Final = ( ( "litellm.llms.bedrock.chat.invoke_handler", "AWSEventStreamDecoder", "_chunk_parser", "chunk_parser", "instance", False, ), ( "litellm.llms.aiml.chat.transformation", "AIMLChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.anthropic.chat.transformation", "AnthropicConfig", "_convert_tool_response_to_message", "convert_tool_response_to_message", "staticmethod", False, ), ( "litellm.llms.anthropic.chat.transformation", "AnthropicConfig", "_map_reasoning_effort", "map_reasoning_effort", "staticmethod", False, ), ( "litellm.llms.anthropic.chat.transformation", "AnthropicConfig", "_map_stop_sequences", "map_stop_sequences", "instance", False, ), ( "litellm.llms.anthropic.chat.transformation", "AnthropicConfig", "_map_tool_helper", "map_tool_helper", "instance", False, ), ( "litellm.llms.anthropic.chat.transformation", "AnthropicConfig", "_map_tools", "map_tools", "instance", False, ), ( "litellm.llms.anthropic.chat.transformation", "AnthropicConfig", "_maybe_drop_speed_param", "maybe_drop_speed_param", "staticmethod", False, ), ( "litellm.llms.anthropic.chat.transformation", "AnthropicConfig", "_model_supports_effort_param", "model_supports_effort_param", "staticmethod", False, ), ( "litellm.llms.anthropic.chat.transformation", "AnthropicConfig", "_raise_invalid_reasoning_effort", "raise_invalid_reasoning_effort", "staticmethod", False, ), ( "litellm.llms.anthropic.chat.transformation", "AnthropicConfig", "_validate_effort_for_model", "validate_effort_for_model", "staticmethod", False, ), ( "litellm.llms.anthropic.common_utils", "AnthropicModelInfo", "_apply_sampling_param", "apply_sampling_param", "staticmethod", False, ), ( "litellm.llms.anthropic.common_utils", "AnthropicModelInfo", "_is_adaptive_thinking_model", "is_adaptive_thinking_model", "staticmethod", False, ), ( "litellm.llms.anthropic.common_utils", "AnthropicModelInfo", "_supports_model_capability", "supports_model_capability", "staticmethod", False, ), ( "litellm.llms.anthropic.completion.transformation", "AnthropicTextConfig", "_is_anthropic_text_model", "is_anthropic_text_model", "staticmethod", False, ), ( "litellm.llms.azure.common_utils", "BaseAzureLLM", "_base_validate_azure_environment", "base_validate_azure_environment", "staticmethod", False, ), ( "litellm.llms.azure.common_utils", "BaseAzureLLM", "_get_base_azure_url", "get_base_azure_url", "staticmethod", False, ), ( "litellm.llms.azure.common_utils", "BaseAzureLLM", "_try_get_default_azure_credential_provider", "try_get_default_azure_credential_provider", "staticmethod", False, ), ( "litellm.llms.azure.realtime.handler", "AzureOpenAIRealtime", "_construct_url", "construct_url", "instance", False, ), ( "litellm.llms.azure_ai.agents.transformation", "AzureAIAgentsConfig", "_get_agent_id", "get_agent_id", "instance", False, ), ( "litellm.llms.azure_ai.chat.transformation", "AzureAIStudioConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.azure_ai.embed.cohere_transformation", "AzureAICohereConfig", "_transform_request", "transform_request", "instance", False, ), ( "litellm.llms.azure_ai.embed.cohere_transformation", "AzureAICohereConfig", "_transform_response", "transform_response", "instance", False, ), ( "litellm.llms.base_llm.base_model_iterator", "BaseModelResponseIterator", "_string_to_dict_parser", "string_to_dict_parser", "staticmethod", False, ), ( "litellm.llms.base_llm.chat.transformation", "BaseConfig", "_add_tools_to_optional_params", "add_tools_to_optional_params", "instance", False, ), ( "litellm.llms.base_llm.passthrough.transformation", "BasePassthroughConfig", "_convert_raw_bytes_to_str_lines", "convert_raw_bytes_to_str_lines", "instance", False, ), ( "litellm.llms.bedrock.base_aws_llm", "BaseAWSLLM", "_get_aws_region_name", "get_aws_region_name", "instance", False, ), ( "litellm.llms.bedrock.base_aws_llm", "BaseAWSLLM", "_validate_aws_region_name", "validate_aws_region_name", "staticmethod", False, ), ( "litellm.llms.bedrock.batches.transformation", "BedrockBatchesConfig", "_parse_timestamps_and_status", "parse_timestamps_and_status", "instance", False, ), ( "litellm.llms.bedrock.chat.agentcore.transformation", "AmazonAgentCoreConfig", "_get_runtime_session_id", "get_runtime_session_id", "instance", False, ), ( "litellm.llms.bedrock.chat.agentcore.transformation", "AmazonAgentCoreConfig", "_get_runtime_user_id", "get_runtime_user_id", "instance", False, ), ( "litellm.llms.bedrock.embed.amazon_nova_transformation", "AmazonNovaEmbeddingConfig", "_transform_async_invoke_response", "transform_async_invoke_response", "instance", False, ), ( "litellm.llms.bedrock.embed.amazon_nova_transformation", "AmazonNovaEmbeddingConfig", "_transform_request", "transform_request", "instance", False, ), ( "litellm.llms.bedrock.embed.amazon_nova_transformation", "AmazonNovaEmbeddingConfig", "_transform_response", "transform_response", "instance", False, ), ( "litellm.llms.bedrock.embed.amazon_titan_g1_transformation", "AmazonTitanG1Config", "_transform_request", "transform_request", "instance", False, ), ( "litellm.llms.bedrock.embed.amazon_titan_g1_transformation", "AmazonTitanG1Config", "_transform_response", "transform_response", "instance", False, ), ( "litellm.llms.bedrock.embed.amazon_titan_multimodal_transformation", "AmazonTitanMultimodalEmbeddingG1Config", "_transform_request", "transform_request", "instance", False, ), ( "litellm.llms.bedrock.embed.amazon_titan_multimodal_transformation", "AmazonTitanMultimodalEmbeddingG1Config", "_transform_response", "transform_response", "instance", False, ), ( "litellm.llms.bedrock.embed.amazon_titan_v2_transformation", "AmazonTitanV2Config", "_transform_request", "transform_request", "instance", False, ), ( "litellm.llms.bedrock.embed.amazon_titan_v2_transformation", "AmazonTitanV2Config", "_transform_response", "transform_response", "instance", False, ), ( "litellm.llms.bedrock.embed.cohere_transformation", "BedrockCohereEmbeddingConfig", "_transform_request", "transform_request", "instance", False, ), ( "litellm.llms.bedrock.embed.embedding", "BedrockEmbedding", "_get_async_invoke_status", "get_async_invoke_status", "instance", True, ), ( "litellm.llms.bedrock.embed.twelvelabs_marengo_transformation", "TwelveLabsMarengoEmbeddingConfig", "_transform_async_invoke_response", "transform_async_invoke_response", "instance", False, ), ( "litellm.llms.bedrock.embed.twelvelabs_marengo_transformation", "TwelveLabsMarengoEmbeddingConfig", "_transform_request", "transform_request", "instance", False, ), ( "litellm.llms.bedrock.embed.twelvelabs_marengo_transformation", "TwelveLabsMarengoEmbeddingConfig", "_transform_response", "transform_response", "instance", False, ), ( "litellm.llms.bedrock.files.transformation", "BedrockFilesConfig", "_transform_openai_jsonl_content_to_bedrock_jsonl_content", "transform_openai_jsonl_content_to_bedrock_jsonl_content", "instance", False, ), ( "litellm.llms.bedrock.image_edit.amazon_nova_canvas_image_edit_transformation", "BedrockAmazonNovaCanvasImageEditConfig", "_is_nova_canvas_image_edit_model", "is_nova_canvas_image_edit_model", "classmethod", False, ), ( "litellm.llms.bedrock.image_edit.stability_transformation", "BedrockStabilityImageEditConfig", "_is_stability_edit_model", "is_stability_edit_model", "classmethod", False, ), ( "litellm.llms.bedrock.image_generation.amazon_nova_canvas_transformation", "AmazonNovaCanvasConfig", "_is_nova_model", "is_nova_model", "classmethod", False, ), ( "litellm.llms.bedrock.image_generation.amazon_stability3_transformation", "AmazonStability3Config", "_is_stability_3_model", "is_stability_3_model", "classmethod", False, ), ( "litellm.llms.bedrock.image_generation.amazon_titan_transformation", "AmazonTitanImageGenerationConfig", "_is_titan_model", "is_titan_model", "classmethod", False, ), ( "litellm.llms.bedrock.rerank.transformation", "BedrockRerankConfig", "_transform_request", "transform_request", "instance", False, ), ( "litellm.llms.bedrock.rerank.transformation", "BedrockRerankConfig", "_transform_response", "transform_response", "instance", False, ), ( "litellm.llms.bedrock_mantle.chat.transformation", "BedrockMantleChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.chatgpt.chat.transformation", "ChatGPTConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.clarifai.chat.transformation", "ClarifaiConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.codestral.completion.transformation", "CodestralTextCompletionConfig", "_chunk_parser", "chunk_parser", "instance", False, ), ( "litellm.llms.cohere.embed.v1_transformation", "CohereEmbeddingConfig", "_populate_embedding_response", "populate_embedding_response", "instance", False, ), ( "litellm.llms.cohere.embed.v1_transformation", "CohereEmbeddingConfig", "_transform_request", "transform_request", "instance", False, ), ( "litellm.llms.cohere.embed.v1_transformation", "CohereEmbeddingConfig", "_transform_response", "transform_response", "instance", False, ), ( "litellm.llms.custom_httpx.llm_http_handler", "BaseLLMHTTPHandler", "_handle_error", "handle_error", "instance", False, ), ( "litellm.llms.dashscope.chat.transformation", "DashScopeChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.datarobot.chat.transformation", "DataRobotConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.deepinfra.chat.transformation", "DeepInfraConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.docker_model_runner.chat.transformation", "DockerModelRunnerChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.featherless_ai.chat.transformation", "FeatherlessAIConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.fireworks_ai.chat.transformation", "FireworksAIConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.gemini.chat.transformation", "GoogleAIStudioGeminiConfig", "_transform_messages", "transform_messages", "instance", False, ), ( "litellm.llms.github_copilot.chat.transformation", "GithubCopilotConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.gradient_ai.chat.transformation", "GradientAIConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.groq.chat.transformation", "GroqChatConfig", "_transform_messages", "transform_messages", "instance", False, ), ( "litellm.llms.groq.chat.transformation", "GroqChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.heroku.chat.transformation", "HerokuChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.hosted_vllm.chat.transformation", "HostedVLLMChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.hyperbolic.chat.transformation", "HyperbolicChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.inception.chat.transformation", "InceptionChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.jina_ai.embedding.transformation", "JinaAIEmbeddingConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.lambda_ai.chat.transformation", "LambdaAIChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.langflow.chat.transformation", "LangFlowConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.langgraph.chat.transformation", "LangGraphConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.lemonade.chat.transformation", "LemonadeChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.litellm_proxy.chat.transformation", "LiteLLMProxyChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.llamafile.chat.transformation", "LlamafileChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.lm_studio.chat.transformation", "LMStudioChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.mistral.chat.transformation", "MistralConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.mistral.chat.transformation", "MistralConfig", "_transform_messages", "transform_messages", "instance", False, ), ( "litellm.llms.modelscope.chat.transformation", "ModelScopeChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.moonshot.chat.transformation", "MoonshotChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.morph.chat.transformation", "MorphChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.nscale.chat.transformation", "NscaleConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.openai.chat.gpt_5_transformation", "OpenAIGPT5Config", "_supports_reasoning_effort_level", "supports_reasoning_effort_level", "classmethod", False, ), ( "litellm.llms.openai.chat.gpt_transformation", "OpenAIGPTConfig", "_transform_messages", "transform_messages", "instance", False, ), ( "litellm.llms.openai.common_utils", "BaseOpenAILLM", "_get_async_http_client", "get_async_http_client", "staticmethod", False, ), ( "litellm.llms.openai.openai", "OpenAIChatCompletion", "_get_openai_client", "get_openai_client", "instance", False, ), ( "litellm.llms.openai.openai", "OpenAIConfig", "_transform_messages", "transform_messages", "instance", False, ), ( "litellm.llms.openai.realtime.handler", "OpenAIRealtime", "_construct_url", "construct_url", "instance", False, ), ( "litellm.llms.openai_like.chat.transformation", "OpenAILikeChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.openai_like.dynamic_config", "JSONProviderConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.perplexity.chat.transformation", "PerplexityChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.ragflow.chat.transformation", "RAGFlowConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.snowflake.utils", "SnowflakeBaseConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.soniox.audio_transcription.transformation", "SonioxAudioTranscriptionConfig", "_build_response_from_payload", "build_response_from_payload", "instance", False, ), ( "litellm.llms.together_ai.rerank.transformation", "TogetherAIRerankConfig", "_transform_response", "transform_response", "instance", False, ), ( "litellm.llms.v0.chat.transformation", "V0ChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.vercel_ai_gateway.chat.transformation", "VercelAIGatewayConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_calculate_usage", "calculate_usage", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_calculate_web_search_requests", "calculate_web_search_requests", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_check_finish_reason", "check_finish_reason", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_check_prompt_level_content_filter", "check_prompt_level_content_filter", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_drop_search_tools_mixed_with_functions", "drop_search_tools_mixed_with_functions", "classmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_forward_gemini_function_call_id", "forward_gemini_function_call_id", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_is_gemini_3_or_newer", "is_gemini_3_or_newer", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_is_model_gemini_spec_model", "is_model_gemini_spec_model", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_map_audio_params", "map_audio_params", "instance", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_map_function", "map_function", "instance", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_map_web_search_options", "map_web_search_options", "instance", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_process_candidates", "process_candidates", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_search_tool_keys", "search_tool_keys", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_set_grounding_usage_counters", "set_grounding_usage_counters", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_set_stream_metadata_on_response", "set_stream_metadata_on_response", "staticmethod", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_transform_google_generate_content_to_openai_model_response", "transform_google_generate_content_to_openai_model_response", "instance", False, ), ( "litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini", "VertexGeminiConfig", "_transform_messages", "transform_messages", "instance", False, ), ( "litellm.llms.vertex_ai.vertex_llm_base", "VertexBase", "_ensure_access_token", "ensure_access_token", "instance", False, ), ( "litellm.llms.vertex_ai.vertex_llm_base", "VertexBase", "_ensure_access_token_async", "ensure_access_token_async", "instance", True, ), ( "litellm.llms.vertex_ai.vertex_llm_base", "VertexBase", "_get_token_and_url", "get_token_and_url", "instance", False, ), ( "litellm.llms.watsonx.common_utils", "IBMWatsonXMixin", "_prepare_payload", "prepare_payload", "instance", False, ), ( "litellm.llms.xai.chat.transformation", "XAIChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ( "litellm.llms.xai.chat.transformation", "XAIChatConfig", "_normalize_openai_compatible_usage_totals", "normalize_openai_compatible_usage_totals", "staticmethod", False, ), ( "litellm.llms.xai.chat.transformation", "XAIChatConfig", "_supports_stop_reason", "supports_stop_reason", "instance", False, ), ( "litellm.llms.zai.chat.transformation", "ZAIChatConfig", "_get_openai_compatible_provider_info", "get_openai_compatible_provider_info", "instance", False, ), ) PROXY_FORWARDER_CASES: Final = ( ( 'litellm.proxy.utils', 'ProxyLogging', '_convert_mcp_to_llm_format', 'convert_mcp_to_llm_format', 'instance', False, ), ) def _get_owner(module_path: str, owner_name: str) -> object: module: Final = import_module(module_path or "litellm") if module_path == "litellm.llms.openai_like.dynamic_config" and owner_name == "JSONProviderConfig": provider_registry: Final = getattr( import_module("litellm.llms.openai_like.json_loader"), "JSONProviderRegistry", ) provider: Final = provider_registry.get("publicai") return getattr(module, "create_config_class")(provider) return module if not owner_name else getattr(module, owner_name) def _get_instance(owner: object, public_name: str) -> object: if not isinstance(owner, type): raise TypeError(f"expected a class owner, got {type(owner).__name__}") instance: Final = object.__new__(owner) setattr(instance, public_name, object()) return instance @pytest.mark.parametrize( ("module_path", "owner_name", "old_name", "new_name", "use_instance"), (*ALIAS_CASES, *LLMS_ALIAS_CASES, *PROXY_ALIAS_CASES), ) def test_public_aliases( module_path: str, owner_name: str, old_name: str, new_name: str, use_instance: bool, ) -> None: resolved_owner: Final = _get_owner(module_path, owner_name) alias_owner: Final = _get_instance(resolved_owner, new_name) if use_instance else resolved_owner old_value, new_value = getattr(alias_owner, old_name), getattr(alias_owner, new_name) if isinstance(old_value, MethodType) and isinstance(new_value, MethodType): assert old_value.__func__ is new_value.__func__ else: assert old_value is new_value @pytest.mark.parametrize( ("package_name", "private_name", "public_name"), PACKAGE_EXPORT_ALIAS_CASES, ) def test_private_package_exports_are_available_and_match_public_alias( package_name: str, private_name: str, public_name: str, ) -> None: package: Final = import_module(package_name) assert getattr(package, private_name) is getattr(package, public_name) @pytest.mark.parametrize( ("module_path", "private_name", "public_name"), MODULE_IMPORT_ALIAS_CASES, ) def test_module_level_private_imports_remain_compatible( module_path: str, private_name: str, public_name: str, ) -> None: module: Final = import_module(module_path) assert getattr(module, private_name) is getattr(module, public_name) @pytest.mark.parametrize( ("module_path", "private_name", "public_name"), PROXY_CLASS_NAME_ALIAS_CASES, ) def test_proxy_class_aliases_keep_the_private_name( module_path: str, private_name: str, public_name: str, ) -> None: module: Final = import_module(module_path) private_class: Final = cast(type[object], getattr(module, private_name)) public_class: Final = cast(type[object], getattr(module, public_name)) assert public_class is private_class assert public_class.__name__ == private_name def _make_private_override( descriptor: str, is_async: bool, result: object, ) -> object: def recorded_args(args: tuple[object, ...]) -> tuple[object, ...]: return args[1:] if descriptor in ("instance", "classmethod") else args def sync_override( *args: object, **kwargs: object ) -> tuple[object, tuple[object, ...], dict[str, object]]: return result, recorded_args(args), kwargs async def async_override( *args: object, **kwargs: object ) -> tuple[object, tuple[object, ...], dict[str, object]]: return result, recorded_args(args), kwargs implementation: Final = async_override if is_async else sync_override if descriptor == "classmethod": return classmethod(implementation) if descriptor == "staticmethod": return staticmethod(implementation) return implementation def _abstract_method_placeholder(*args: object, **kwargs: object) -> None: return None def _forwarder_arguments( method: Callable[..., object], ) -> tuple[tuple[object, ...], dict[str, object]]: parameters: Final = tuple(inspect.signature(method).parameters.values()) positional: Final = tuple( object() for parameter in parameters if parameter.kind in ( inspect.Parameter.POSITIONAL_ONLY, inspect.Parameter.POSITIONAL_OR_KEYWORD, inspect.Parameter.VAR_POSITIONAL, ) ) keyword_only: Final = { parameter.name: object() for parameter in parameters if parameter.kind is inspect.Parameter.KEYWORD_ONLY } variadic_keyword: Final = { f"forwarder_extra_{index}": object() for index, parameter in enumerate(parameters) if parameter.kind is inspect.Parameter.VAR_KEYWORD } return positional, {**keyword_only, **variadic_keyword} @pytest.mark.asyncio @pytest.mark.parametrize( ( "module_path", "owner_name", "private_name", "public_name", "descriptor", "is_async", ), (*LLMS_FORWARDER_CASES, *PROXY_FORWARDER_CASES), ) async def test_public_forwarders_dispatch_to_private_subclass_override( module_path: str, owner_name: str, private_name: str, public_name: str, descriptor: str, is_async: bool, ) -> None: owner: Final = _get_owner(module_path, owner_name) if not isinstance(owner, type): raise TypeError(f"expected a class owner, got {type(owner).__name__}") expected: Final = object() abstract_method_overrides: Final = { name: _abstract_method_placeholder for name in getattr(owner, "__abstractmethods__", ()) } subclass: Final = type( f"{owner_name}PrivateOverride", (owner,), {**abstract_method_overrides, private_name: _make_private_override(descriptor, is_async, expected)}, ) instance: Final = object.__new__(subclass) public_method: Final = cast(Callable[..., object], getattr(instance, public_name)) args, kwargs = _forwarder_arguments(public_method) invocation: Final = public_method(*args, **kwargs) if is_async: assert inspect.isawaitable(invocation) awaited: Final = await cast(Awaitable[object], invocation) assert awaited == (expected, args, kwargs) return assert invocation == (expected, args, kwargs) @pytest.mark.parametrize( ("module_path", "owner_name", "old_name", "new_name"), PROPERTY_CASES, ) def test_protected_data_properties_round_trip( module_path: str, owner_name: str, old_name: str, new_name: str, ) -> None: owner: Final = _get_owner(module_path, owner_name) if not isinstance(owner, type): raise TypeError(f"expected a class owner, got {type(owner).__name__}") instance: Final = object.__new__(owner) first_value: Final = object() second_value: Final = object() setattr(instance, new_name, first_value) assert getattr(instance, old_name) is first_value setattr(instance, old_name, second_value) assert getattr(instance, new_name) is second_value @pytest.mark.parametrize( ("module_path", "owner_name", "old_name", "new_name"), CLASS_PROPERTY_CASES, ) def test_class_level_property_alias_round_trip( module_path: str, owner_name: str, old_name: str, new_name: str, ) -> None: owner: Final = _get_owner(module_path, owner_name) first_value: Final = object() second_value: Final = object() original_class_value: Final = getattr(owner, new_name) try: setattr(owner, old_name, first_value) assert getattr(owner, new_name) is first_value setattr(owner, new_name, second_value) assert getattr(owner, old_name) is second_value finally: setattr(owner, new_name, original_class_value)