From 7e36d4734847b3e7ce0560b9e10ec2fbc28a24bd Mon Sep 17 00:00:00 2001 From: Sameer Kankute Date: Wed, 18 Feb 2026 17:36:36 +0530 Subject: [PATCH] fix code quality tests and mypy --- .../transformation.py | 12 ++++++++---- .../key_management_endpoints.py | 13 ++++++------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/litellm/completion_extras/litellm_responses_transformation/transformation.py b/litellm/completion_extras/litellm_responses_transformation/transformation.py index 58e9687a8a..35fc93bbeb 100644 --- a/litellm/completion_extras/litellm_responses_transformation/transformation.py +++ b/litellm/completion_extras/litellm_responses_transformation/transformation.py @@ -576,9 +576,11 @@ class LiteLLMResponsesTransformationHandler(CompletionTransformationBridge): def _convert_content_to_responses_format( self, - content: Union[ - str, - Iterable[Union["OpenAIMessageContentListBlock", "ChatCompletionThinkingBlock"]], + content: Optional[ + Union[ + str, + Iterable[Union["OpenAIMessageContentListBlock", "ChatCompletionThinkingBlock"]], + ] ], role: str, ) -> List[Dict[str, Any]]: @@ -587,7 +589,9 @@ class LiteLLMResponsesTransformationHandler(CompletionTransformationBridge): verbose_logger.debug(f"Chat provider: Converting content to responses format - input type: {type(content)}") - if isinstance(content, str): + if content is None: + return [self._convert_content_str_to_input_text("", role)] + elif isinstance(content, str): result = [self._convert_content_str_to_input_text(content, role)] verbose_logger.debug(f"Chat provider: String content -> {result}") return result diff --git a/litellm/proxy/management_endpoints/key_management_endpoints.py b/litellm/proxy/management_endpoints/key_management_endpoints.py index 8010a5363a..4496acab53 100644 --- a/litellm/proxy/management_endpoints/key_management_endpoints.py +++ b/litellm/proxy/management_endpoints/key_management_endpoints.py @@ -74,7 +74,6 @@ from litellm.proxy.utils import ( _hash_token_if_needed, handle_exception_on_proxy, is_valid_api_key, - jsonify_object, ) from litellm.router import Router from litellm.secret_managers.main import get_secret @@ -3052,7 +3051,7 @@ async def delete_key_aliases( ) -async def _rotate_master_key( +async def _rotate_master_key( # noqa: PLR0915 prisma_client: PrismaClient, user_api_key_dict: UserAPIKeyAuth, current_master_key: str, @@ -3096,8 +3095,8 @@ async def _rotate_master_key( ) if new_model: _dumped = new_model.model_dump(exclude_none=True) - _dumped["litellm_params"] = prisma.Json(_dumped["litellm_params"]) - _dumped["model_info"] = prisma.Json(_dumped["model_info"]) + _dumped["litellm_params"] = prisma.Json(_dumped["litellm_params"]) # type: ignore[attr-defined] + _dumped["model_info"] = prisma.Json(_dumped["model_info"]) # type: ignore[attr-defined] new_models.append(_dumped) verbose_proxy_logger.debug("Resetting proxy model table") async with prisma_client.db.tx() as tx: @@ -3131,7 +3130,7 @@ async def _rotate_master_key( if encrypted_env_vars: await prisma_client.db.litellm_config.update( where={"param_name": "environment_variables"}, - data={"param_value": prisma.Json(encrypted_env_vars)}, + data={"param_value": prisma.Json(encrypted_env_vars)}, # type: ignore[attr-defined] ) # 4. process MCP server table @@ -3164,11 +3163,11 @@ async def _rotate_master_key( ) _cred_data = encrypted_cred.model_dump(exclude_none=True) if "credential_values" in _cred_data: - _cred_data["credential_values"] = prisma.Json( + _cred_data["credential_values"] = prisma.Json( # type: ignore[attr-defined] _cred_data["credential_values"] ) if "credential_info" in _cred_data: - _cred_data["credential_info"] = prisma.Json( + _cred_data["credential_info"] = prisma.Json( # type: ignore[attr-defined] _cred_data["credential_info"] ) await prisma_client.db.litellm_credentialstable.update(