From aacbb5f36a19814086472427e0836ce923de45a1 Mon Sep 17 00:00:00 2001 From: Derek Xu Date: Wed, 17 Sep 2025 14:11:53 -0700 Subject: [PATCH] conditional import --- eval_protocol/__init__.py | 45 ++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/eval_protocol/__init__.py b/eval_protocol/__init__.py index 9f873fe3..6a401901 100644 --- a/eval_protocol/__init__.py +++ b/eval_protocol/__init__.py @@ -39,7 +39,34 @@ from .typed_interface import reward_function from .quickstart import aha_judge, split_multi_turn_rows from .pytest import evaluation_test, SingleTurnRolloutProcessor -from .adapters import OpenAIResponsesAdapter, LangfuseAdapter, BraintrustAdapter, LangSmithAdapter + +try: + from .adapters import OpenAIResponsesAdapter + + _OPENAI_RESPONSES_AVAILABLE = True +except ImportError: + _OPENAI_RESPONSES_AVAILABLE = False + +try: + from .adapters import LangfuseAdapter + + _LANGFUSE_AVAILABLE = True +except ImportError: + _LANGFUSE_AVAILABLE = False + +try: + from .adapters import BraintrustAdapter + + _BRAINTRUST_AVAILABLE = True +except ImportError: + _BRAINTRUST_AVAILABLE = False + +try: + from .adapters import LangSmithAdapter + + _LANGSMITH_AVAILABLE = True +except ImportError: + _LANGSMITH_AVAILABLE = False warnings.filterwarnings("default", category=DeprecationWarning, module="eval_protocol") @@ -48,10 +75,6 @@ "split_multi_turn_rows", "evaluation_test", "SingleTurnRolloutProcessor", - "OpenAIResponsesAdapter", - "LangfuseAdapter", - "BraintrustAdapter", - "LangSmithAdapter", # Core interfaces "Message", "MetricResult", @@ -84,6 +107,18 @@ "mcp", ] +if _OPENAI_RESPONSES_AVAILABLE: + __all__.append("OpenAIResponsesAdapter") + +if _LANGFUSE_AVAILABLE: + __all__.append("LangfuseAdapter") + +if _BRAINTRUST_AVAILABLE: + __all__.append("BraintrustAdapter") + +if _LANGSMITH_AVAILABLE: + __all__.append("LangSmithAdapter") + from . import _version __version__ = _version.get_versions()["version"]