diff --git a/py/src/braintrust/__init__.py b/py/src/braintrust/__init__.py index 850d8e4bb..93a885fb6 100644 --- a/py/src/braintrust/__init__.py +++ b/py/src/braintrust/__init__.py @@ -85,7 +85,6 @@ def is_equal(expected, output): from .span_customizer import set_span_customizers as set_span_customizers from .util import BT_IS_ASYNC_ATTRIBUTE as BT_IS_ASYNC_ATTRIBUTE from .util import MarkAsyncWrapper as MarkAsyncWrapper -from .workflow_eval import * def wrap_anthropic(client: _Any) -> _Any: diff --git a/py/src/braintrust/test_public_exports.py b/py/src/braintrust/test_public_exports.py new file mode 100644 index 000000000..c1ac5e03c --- /dev/null +++ b/py/src/braintrust/test_public_exports.py @@ -0,0 +1,488 @@ +"""Regression coverage for the package's top-level import surface.""" + +import json +import subprocess +import sys + + +_EXPECTED_EXPORTS = """ABC +AISecret +AUDIT_METADATA_FIELD +AUDIT_SOURCE_FIELD +Acl +AclObjectType +Agent +Any +AnyModelParams +ApiKey +AsyncIterator +AsyncScoringControl +AsyncScoringState +Attachment +AttachmentMetadata +AttachmentReference +AttachmentStatus +AuditResource +AutomationStatus +BACKGROUND_LOGGER_BASE_SLEEP_TIME_S +BAGGAGE_HEADER +BRAINTRUST_PARAMS +BRAINTRUST_PARENT_KEY +BT_IS_ASYNC_ATTRIBUTE +BaseAttachment +BaseExperiment +BatchedFacetData +BraintrustAPIError +BraintrustAttachmentReference +BraintrustClient +BraintrustConsoleChunk +BraintrustEnv +BraintrustErrorChunk +BraintrustHTTPError +BraintrustInvokeError +BraintrustJSONDecodeError +BraintrustJsonChunk +BraintrustLogHandler +BraintrustModelParams +BraintrustOpenApiClient +BraintrustProgressChunk +BraintrustState +BraintrustStream +BraintrustStreamChunk +BraintrustTextChunk +BraintrustTransportError +CallEvent +Callable +ChatCompletionContentPart +ChatCompletionContentPartFileFile +ChatCompletionContentPartFileWithTitle +ChatCompletionContentPartImageWithTitle +ChatCompletionContentPartInputAudioWithTitle +ChatCompletionContentPartText +ChatCompletionContentPartTextWithTitle +ChatCompletionMessageParam +ChatCompletionMessageReasoning +ChatCompletionMessageToolCall +ChatCompletionOpenAIMessageParam +ChatCompletionTool +Classification +ClassifierBuilder +CodeBundle +CodeFunction +CodeParameters +CodePrompt +Counter +DATA_API_VERSION +DEFAULT_APP_URL +DEFAULT_FETCH_BATCH_SIZE +DEFAULT_IS_LEGACY_DATASET +DEFAULT_MAX_REQUEST_SIZE +DEFAULT_QUEUE_SIZE +DEFAULT_RETRYABLE_STATUSES +DataSummary +Dataset +DatasetEvent +DatasetPipeline +DatasetPipelineDefinition +DatasetPipelineRow +DatasetPipelineScope +DatasetPipelineSource +DatasetPipelineTarget +DatasetPipelineTransform +DatasetPipelineTransformArgs +DatasetPipelineTransformResult +DatasetRef +DatasetSnapshot +DatasetSummary +DiskCache +EnvVar +Eval +EvalAsync +EvalCase +EvalHooks +EvalParameters +Evaluator +Experiment +ExperimentDatasetEvent +ExperimentDatasetIterator +ExperimentEvent +ExperimentIdentifier +ExperimentSummary +Exportable +ExtendedSavedFunctionId +ExternalAttachment +ExternalAttachmentReference +F +FacetData +FacetPreprocessorId +Function +FunctionData +FunctionFormat +FunctionId +FunctionIdRef +FunctionObjectType +FunctionOutputType +FunctionTypeEnum +FunctionTypeEnumNullish +GLOBAL_PROJECT +Generator +Generic +GitMetadataSettings +GraphData +GraphEdge +GraphNode +Group +GroupScope +HTTPAdapter +HTTPConnection +HTTP_REQUEST_THREAD_POOL +INVOKE_API_VERSION +IS_MERGE_FIELD +IfExists +ImagePart +ImageRenderingMode +InvokeFunction +InvokeParent +Iterable +Iterator +JSONAttachment +LOGS3_OVERFLOW_REFERENCE_TYPE +LRUCache +LazyValue +Literal +LogItemWithMeta +LogLevel +LogQueue +Logger +LoginResult +Logs3OverflowInputRow +MAX_BTQL_ITERATIONS +MCPServer +Mapping +MarkAsyncWrapper +MessageRole +Metadata +MetricSummary +ModeType +ModelParams +MutableMapping +NOOP_SPAN +NOOP_SPAN_PERMALINK +NamedScore +NamedScoreDict +NullableSavedFunctionId +OBJECT_DELETE_FIELD +OBJECT_ID_KEYS +ObjectFetcher +ObjectIterator +ObjectMetadata +ObjectReference +ObjectReferenceNullish +ObjectType +OnlineScoreConfig +OrgAutomation +OrgProjectMetadata +Organization +OrganizationInfo +ParametersBuilder +ParametersCache +ParametersRef +ParentSpanIds +Permission +PreprocessorId +Project +ProjectAutomation +ProjectBuilder +ProjectDatasetMetadata +ProjectExperimentMetadata +ProjectGroup +ProjectIdCache +ProjectLogsEvent +ProjectScore +ProjectScoreCategories +ProjectScoreCategory +ProjectScoreCondition +ProjectScoreConfig +ProjectScoreType +ProjectSettings +ProjectTag +Prompt +PromptBlockData +PromptBlockDataNullish +PromptBuilder +PromptCache +PromptData +PromptDataNullish +PromptMessage +PromptOptions +PromptOptionsNullish +PromptParserNullish +PromptSchema +PromptSessionEvent +PropagatedState +ReadonlyAttachment +ReadonlyExperiment +RegisterSandboxResult +RegisteredSandboxFunction +RemoteEvalParameters +RepoInfo +Reporter +ResponseFormat +ResponseFormatJsonSchema +ResponseFormatNullish +RetentionObjectType +RetryRequestExceptionsAdapter +Role +RunEval +SSEClient +SSEConsoleEventData +SSEProgressEventData +SandboxConfig +SavedFunctionId +Score +ScoreDict +ScoreObject +ScoreResult +ScoreSummary +ScorerBuilder +Sequence +SerializableDataClass +ServiceToken +Span +SpanAttributes +SpanComponentsV3 +SpanComponentsV4 +SpanCustomizer +SpanExportData +SpanIFrame +SpanIds +SpanImpl +SpanInternalOptions +SpanObjectTypeV3 +SpanOriginEnvironment +SpanScope +SpanType +SpanTypeAttribute +StreamingMode +SummaryResult +SummarySkipped +SummarySuccess +T +TEST_API_KEY +TMapping +TMutableMapping +TRACEPARENT_HEADER +TRACESTATE_HEADER +TRANSACTION_ID_FIELD +TYPE_CHECKING +TextPart +ToolBuilder +ToolFunctionDefinition +TopicAutomationConfig +TopicAutomationDataScope +TopicAutomationFacetModel +TopicDigestAutomationConfig +TopicMapData +TopicMapFunctionAutomation +TopicMapGenerationSettings +TraceScope +TracebackType +TracedThreadPoolExecutor +TriggeredFunctionState +TypeVar +TypedDict +UploadStatus +User +VALID_SOURCES +View +ViewData +ViewDataSearch +ViewOptions +WindowedAutomationConfig +abstractmethod +add_azure_blob_headers +api +api_conn +app_conn +asyncio +atexit +audit +auto +auto_instrument +base64 +batch_items +bcolors +bt_dumps +bt_iscoroutinefunction +bt_json +bt_safe_deep_copy +builtins +cast +chevron +coalesce +concurrent +construct_json_array +construct_logs3_data +construct_logs3_overflow_request +context +contextlib +contextvars +cpu_count +current_experiment +current_logger +current_span +dataclasses +dataset_pipeline +datetime +db_fields +detect_environment +encode_uri_component +ensure_dataset_record +env +eprint +exceptiongroup +extract_trace_context +flush +format_traceparent +framework +framework2 +functions +generated_types +get_caller_location +get_default_data_from_parameters_schema +get_header +get_past_n_ancestors +get_prompt_versions +get_repo_info +get_signature +get_span_parent_object +git_fields +gitutil +global_ +gzip +hashlib +id_gen +importlib +init +init_dataset +init_experiment +init_function +init_logger +inject_trace_context +inspect +invoke +invoke_async +io +is_retryable_request_exception +json +load_parameters +load_prompt +load_prompt_async +log +log_exc_info_to_span +logger +logging +login +login_lock +login_to_state +logs +mask_api_key +merge_baggage +merge_dicts +merge_row_batch +merge_span_origin_context +normalize_proxy_url +object +org_id +os +overload +parameters +parameters_to_json_schema +parent_context +parse_audit_resources +parse_baggage +parse_stream +parse_traceparent +partial +permalink +pick_logs3_overflow_object_ids +prettify_xact +projects +prompt +prompt_cache +propagation +proxy_conn +queue +quote +register_otel_flush +register_sandbox +render_message +render_mustache +render_prompt_params +render_templated_object +requests_exceptions +resolve_app_url +resolve_org_name +resource_manager +response_raise_for_status +sandbox +score +serializable_data_class +set_http_adapter +set_masking_function +set_span_customizers +setup_ai_sdk +setup_pydantic_ai +slugify +span_cache +span_components_to_object_id +span_customizer +span_identifier_v1 +span_identifier_v2 +span_identifier_v3 +span_identifier_v4 +span_origin +span_types +split_logging_data +start_span +stringify_exception +stringify_with_overflow_meta +summarize +sys +tee +textwrap +threading +time +trace +traceback +traced +types +update_span +urlencode +user_info +utf8_byte_length +util +uuid +validate_tags +wrap_anthropic +wrap_instructor +wrap_litellm +wrap_openai +wrap_openrouter +wraps +xact_ids""".splitlines() + + +def test_top_level_exports_match_snapshot(): + result = subprocess.run( + [ + sys.executable, + "-c", + "import braintrust, json; print(json.dumps(sorted(name for name in vars(braintrust) if not name.startswith('_'))))", + ], + check=True, + capture_output=True, + text=True, + ) + actual = json.loads(result.stdout) + assert actual == _EXPECTED_EXPORTS