Potential fix for pull request finding 'CodeQL / Cyclic import'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
This commit is contained in:
ishaan-berri 2026-06-22 20:26:48 -07:00 • committed by GitHub
parent fe1cbe505d
commit bbbb9ededb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -5,6 +5,7 @@ Main OCR function for LiteLLM.
import asyncio import asyncio
import base64 import base64
import contextvars import contextvars
import importlib
import mimetypes import mimetypes
import os import os
import re import re
@ -262,12 +263,12 @@ def ocr(
api_base = dynamic_api_base api_base = dynamic_api_base
# Optional Rust path: hand the whole Mistral OCR call to the Rust bridge. # Optional Rust path: hand the whole Mistral OCR call to the Rust bridge.
# Imported lazily to avoid a module-level import cycle (CodeQL flags the # Load via importlib to avoid a static import edge that can be flagged as
# litellm.ocr.main -> litellm.ocr.rust_bridge edge during package init). # part of a cyclic import graph during package initialization.
from litellm.ocr.rust_bridge import rust_ocr, rust_ocr_enabled rust_bridge = importlib.import_module("litellm.ocr.rust_bridge")
if custom_llm_provider == "mistral" and rust_ocr_enabled(): if custom_llm_provider == "mistral" and rust_bridge.rust_ocr_enabled():
return rust_ocr(model, document, api_key, api_base, kwargs) return rust_bridge.rust_ocr(model, document, api_key, api_base, kwargs)
# Get provider config # Get provider config
ocr_provider_config: Optional[BaseOCRConfig] = ( ocr_provider_config: Optional[BaseOCRConfig] = (