opik 1.9.5__py3-none-any.whl → 1.9.39__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- opik/__init__.py +10 -3
- opik/anonymizer/__init__.py +5 -0
- opik/anonymizer/anonymizer.py +12 -0
- opik/anonymizer/factory.py +80 -0
- opik/anonymizer/recursive_anonymizer.py +64 -0
- opik/anonymizer/rules.py +56 -0
- opik/anonymizer/rules_anonymizer.py +35 -0
- opik/api_objects/dataset/rest_operations.py +5 -0
- opik/api_objects/experiment/experiment.py +46 -49
- opik/api_objects/experiment/helpers.py +34 -10
- opik/api_objects/local_recording.py +8 -3
- opik/api_objects/opik_client.py +230 -48
- opik/api_objects/opik_query_language.py +9 -0
- opik/api_objects/prompt/__init__.py +11 -3
- opik/api_objects/prompt/base_prompt.py +69 -0
- opik/api_objects/prompt/base_prompt_template.py +29 -0
- opik/api_objects/prompt/chat/__init__.py +1 -0
- opik/api_objects/prompt/chat/chat_prompt.py +193 -0
- opik/api_objects/prompt/chat/chat_prompt_template.py +350 -0
- opik/api_objects/prompt/{chat_content_renderer_registry.py → chat/content_renderer_registry.py} +37 -35
- opik/api_objects/prompt/client.py +101 -30
- opik/api_objects/prompt/text/__init__.py +1 -0
- opik/api_objects/prompt/text/prompt.py +174 -0
- opik/api_objects/prompt/{prompt_template.py → text/prompt_template.py} +10 -6
- opik/api_objects/prompt/types.py +1 -1
- opik/cli/export.py +6 -2
- opik/cli/usage_report/charts.py +39 -10
- opik/cli/usage_report/cli.py +164 -45
- opik/cli/usage_report/pdf.py +14 -1
- opik/config.py +0 -5
- opik/decorator/base_track_decorator.py +37 -40
- opik/decorator/context_manager/span_context_manager.py +9 -0
- opik/decorator/context_manager/trace_context_manager.py +5 -0
- opik/dict_utils.py +3 -3
- opik/evaluation/__init__.py +13 -2
- opik/evaluation/engine/engine.py +195 -223
- opik/evaluation/engine/helpers.py +8 -7
- opik/evaluation/engine/metrics_evaluator.py +237 -0
- opik/evaluation/evaluation_result.py +35 -1
- opik/evaluation/evaluator.py +318 -30
- opik/evaluation/models/litellm/util.py +78 -6
- opik/evaluation/models/model_capabilities.py +33 -0
- opik/evaluation/report.py +14 -2
- opik/evaluation/rest_operations.py +36 -33
- opik/evaluation/test_case.py +2 -2
- opik/evaluation/types.py +9 -1
- opik/exceptions.py +17 -0
- opik/hooks/__init__.py +17 -1
- opik/hooks/anonymizer_hook.py +36 -0
- opik/id_helpers.py +18 -0
- opik/integrations/adk/helpers.py +16 -7
- opik/integrations/adk/legacy_opik_tracer.py +7 -4
- opik/integrations/adk/opik_tracer.py +3 -1
- opik/integrations/adk/patchers/adk_otel_tracer/opik_adk_otel_tracer.py +7 -3
- opik/integrations/adk/recursive_callback_injector.py +1 -6
- opik/integrations/dspy/callback.py +1 -4
- opik/integrations/haystack/opik_connector.py +2 -2
- opik/integrations/haystack/opik_tracer.py +2 -4
- opik/integrations/langchain/opik_tracer.py +273 -82
- opik/integrations/llama_index/callback.py +110 -108
- opik/integrations/openai/agents/opik_tracing_processor.py +1 -2
- opik/integrations/openai/opik_tracker.py +1 -1
- opik/message_processing/batching/batchers.py +11 -7
- opik/message_processing/encoder_helpers.py +79 -0
- opik/message_processing/messages.py +25 -1
- opik/message_processing/online_message_processor.py +23 -8
- opik/opik_context.py +7 -7
- opik/rest_api/__init__.py +188 -12
- opik/rest_api/client.py +3 -0
- opik/rest_api/dashboards/__init__.py +4 -0
- opik/rest_api/dashboards/client.py +462 -0
- opik/rest_api/dashboards/raw_client.py +648 -0
- opik/rest_api/datasets/client.py +893 -89
- opik/rest_api/datasets/raw_client.py +1328 -87
- opik/rest_api/experiments/client.py +30 -2
- opik/rest_api/experiments/raw_client.py +26 -0
- opik/rest_api/feedback_definitions/types/find_feedback_definitions_request_type.py +1 -1
- opik/rest_api/optimizations/client.py +302 -0
- opik/rest_api/optimizations/raw_client.py +463 -0
- opik/rest_api/optimizations/types/optimization_update_status.py +3 -1
- opik/rest_api/prompts/__init__.py +2 -2
- opik/rest_api/prompts/client.py +34 -4
- opik/rest_api/prompts/raw_client.py +32 -2
- opik/rest_api/prompts/types/__init__.py +3 -1
- opik/rest_api/prompts/types/create_prompt_version_detail_template_structure.py +5 -0
- opik/rest_api/prompts/types/prompt_write_template_structure.py +5 -0
- opik/rest_api/spans/__init__.py +0 -2
- opik/rest_api/spans/client.py +148 -64
- opik/rest_api/spans/raw_client.py +210 -83
- opik/rest_api/spans/types/__init__.py +0 -2
- opik/rest_api/traces/client.py +241 -73
- opik/rest_api/traces/raw_client.py +344 -90
- opik/rest_api/types/__init__.py +200 -15
- opik/rest_api/types/aggregation_data.py +1 -0
- opik/rest_api/types/alert_trigger_config_public_type.py +6 -1
- opik/rest_api/types/alert_trigger_config_type.py +6 -1
- opik/rest_api/types/alert_trigger_config_write_type.py +6 -1
- opik/rest_api/types/automation_rule_evaluator.py +23 -1
- opik/rest_api/types/automation_rule_evaluator_llm_as_judge.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_llm_as_judge_public.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_llm_as_judge_write.py +2 -0
- opik/rest_api/types/{automation_rule_evaluator_object_public.py → automation_rule_evaluator_object_object_public.py} +32 -10
- opik/rest_api/types/automation_rule_evaluator_page_public.py +2 -2
- opik/rest_api/types/automation_rule_evaluator_public.py +23 -1
- opik/rest_api/types/automation_rule_evaluator_span_llm_as_judge.py +22 -0
- opik/rest_api/types/automation_rule_evaluator_span_llm_as_judge_public.py +22 -0
- opik/rest_api/types/automation_rule_evaluator_span_llm_as_judge_write.py +22 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_llm_as_judge.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_llm_as_judge_public.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_llm_as_judge_write.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_user_defined_metric_python.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_user_defined_metric_python_public.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_trace_thread_user_defined_metric_python_write.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_update.py +23 -1
- opik/rest_api/types/automation_rule_evaluator_update_llm_as_judge.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_update_span_llm_as_judge.py +22 -0
- opik/rest_api/types/automation_rule_evaluator_update_trace_thread_llm_as_judge.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_update_trace_thread_user_defined_metric_python.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_update_user_defined_metric_python.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_user_defined_metric_python.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_user_defined_metric_python_public.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_user_defined_metric_python_write.py +2 -0
- opik/rest_api/types/automation_rule_evaluator_write.py +23 -1
- opik/rest_api/types/boolean_feedback_definition.py +25 -0
- opik/rest_api/types/boolean_feedback_definition_create.py +20 -0
- opik/rest_api/types/boolean_feedback_definition_public.py +25 -0
- opik/rest_api/types/boolean_feedback_definition_update.py +20 -0
- opik/rest_api/types/boolean_feedback_detail.py +29 -0
- opik/rest_api/types/boolean_feedback_detail_create.py +29 -0
- opik/rest_api/types/boolean_feedback_detail_public.py +29 -0
- opik/rest_api/types/boolean_feedback_detail_update.py +29 -0
- opik/rest_api/types/dashboard_page_public.py +24 -0
- opik/rest_api/types/dashboard_public.py +30 -0
- opik/rest_api/types/dataset.py +2 -0
- opik/rest_api/types/dataset_item.py +2 -0
- opik/rest_api/types/dataset_item_compare.py +2 -0
- opik/rest_api/types/dataset_item_filter.py +23 -0
- opik/rest_api/types/dataset_item_filter_operator.py +21 -0
- opik/rest_api/types/dataset_item_page_compare.py +1 -0
- opik/rest_api/types/dataset_item_page_public.py +1 -0
- opik/rest_api/types/dataset_item_public.py +2 -0
- opik/rest_api/types/dataset_item_update.py +39 -0
- opik/rest_api/types/dataset_item_write.py +1 -0
- opik/rest_api/types/dataset_public.py +2 -0
- opik/rest_api/types/dataset_public_status.py +5 -0
- opik/rest_api/types/dataset_status.py +5 -0
- opik/rest_api/types/dataset_version_diff.py +22 -0
- opik/rest_api/types/dataset_version_diff_stats.py +24 -0
- opik/rest_api/types/dataset_version_page_public.py +23 -0
- opik/rest_api/types/dataset_version_public.py +49 -0
- opik/rest_api/types/experiment.py +2 -0
- opik/rest_api/types/experiment_public.py +2 -0
- opik/rest_api/types/experiment_score.py +20 -0
- opik/rest_api/types/experiment_score_public.py +20 -0
- opik/rest_api/types/experiment_score_write.py +20 -0
- opik/rest_api/types/feedback.py +20 -1
- opik/rest_api/types/feedback_create.py +16 -1
- opik/rest_api/types/feedback_object_public.py +22 -1
- opik/rest_api/types/feedback_public.py +20 -1
- opik/rest_api/types/feedback_score_public.py +4 -0
- opik/rest_api/types/feedback_update.py +16 -1
- opik/rest_api/types/image_url.py +20 -0
- opik/rest_api/types/image_url_public.py +20 -0
- opik/rest_api/types/image_url_write.py +20 -0
- opik/rest_api/types/llm_as_judge_message.py +5 -1
- opik/rest_api/types/llm_as_judge_message_content.py +24 -0
- opik/rest_api/types/llm_as_judge_message_content_public.py +24 -0
- opik/rest_api/types/llm_as_judge_message_content_write.py +24 -0
- opik/rest_api/types/llm_as_judge_message_public.py +5 -1
- opik/rest_api/types/llm_as_judge_message_write.py +5 -1
- opik/rest_api/types/llm_as_judge_model_parameters.py +2 -0
- opik/rest_api/types/llm_as_judge_model_parameters_public.py +2 -0
- opik/rest_api/types/llm_as_judge_model_parameters_write.py +2 -0
- opik/rest_api/types/optimization.py +2 -0
- opik/rest_api/types/optimization_public.py +2 -0
- opik/rest_api/types/optimization_public_status.py +3 -1
- opik/rest_api/types/optimization_status.py +3 -1
- opik/rest_api/types/optimization_studio_config.py +27 -0
- opik/rest_api/types/optimization_studio_config_public.py +27 -0
- opik/rest_api/types/optimization_studio_config_write.py +27 -0
- opik/rest_api/types/optimization_studio_log.py +22 -0
- opik/rest_api/types/optimization_write.py +2 -0
- opik/rest_api/types/optimization_write_status.py +3 -1
- opik/rest_api/types/prompt.py +6 -0
- opik/rest_api/types/prompt_detail.py +6 -0
- opik/rest_api/types/prompt_detail_template_structure.py +5 -0
- opik/rest_api/types/prompt_public.py +6 -0
- opik/rest_api/types/prompt_public_template_structure.py +5 -0
- opik/rest_api/types/prompt_template_structure.py +5 -0
- opik/rest_api/types/prompt_version.py +2 -0
- opik/rest_api/types/prompt_version_detail.py +2 -0
- opik/rest_api/types/prompt_version_detail_template_structure.py +5 -0
- opik/rest_api/types/prompt_version_public.py +2 -0
- opik/rest_api/types/prompt_version_public_template_structure.py +5 -0
- opik/rest_api/types/prompt_version_template_structure.py +5 -0
- opik/rest_api/types/score_name.py +1 -0
- opik/rest_api/types/service_toggles_config.py +6 -0
- opik/rest_api/types/span_enrichment_options.py +31 -0
- opik/rest_api/types/span_filter.py +23 -0
- opik/rest_api/types/span_filter_operator.py +21 -0
- opik/rest_api/types/span_filter_write.py +23 -0
- opik/rest_api/types/span_filter_write_operator.py +21 -0
- opik/rest_api/types/span_llm_as_judge_code.py +27 -0
- opik/rest_api/types/span_llm_as_judge_code_public.py +27 -0
- opik/rest_api/types/span_llm_as_judge_code_write.py +27 -0
- opik/rest_api/types/span_update.py +46 -0
- opik/rest_api/types/studio_evaluation.py +20 -0
- opik/rest_api/types/studio_evaluation_public.py +20 -0
- opik/rest_api/types/studio_evaluation_write.py +20 -0
- opik/rest_api/types/studio_llm_model.py +21 -0
- opik/rest_api/types/studio_llm_model_public.py +21 -0
- opik/rest_api/types/studio_llm_model_write.py +21 -0
- opik/rest_api/types/studio_message.py +20 -0
- opik/rest_api/types/studio_message_public.py +20 -0
- opik/rest_api/types/studio_message_write.py +20 -0
- opik/rest_api/types/studio_metric.py +21 -0
- opik/rest_api/types/studio_metric_public.py +21 -0
- opik/rest_api/types/studio_metric_write.py +21 -0
- opik/rest_api/types/studio_optimizer.py +21 -0
- opik/rest_api/types/studio_optimizer_public.py +21 -0
- opik/rest_api/types/studio_optimizer_write.py +21 -0
- opik/rest_api/types/studio_prompt.py +20 -0
- opik/rest_api/types/studio_prompt_public.py +20 -0
- opik/rest_api/types/studio_prompt_write.py +20 -0
- opik/rest_api/types/trace.py +6 -0
- opik/rest_api/types/trace_public.py +6 -0
- opik/rest_api/types/trace_thread_filter_write.py +23 -0
- opik/rest_api/types/trace_thread_filter_write_operator.py +21 -0
- opik/rest_api/types/trace_thread_update.py +19 -0
- opik/rest_api/types/trace_update.py +39 -0
- opik/rest_api/types/value_entry.py +2 -0
- opik/rest_api/types/value_entry_compare.py +2 -0
- opik/rest_api/types/value_entry_experiment_item_bulk_write_view.py +2 -0
- opik/rest_api/types/value_entry_public.py +2 -0
- opik/rest_api/types/video_url.py +19 -0
- opik/rest_api/types/video_url_public.py +19 -0
- opik/rest_api/types/video_url_write.py +19 -0
- opik/synchronization.py +5 -6
- opik/{decorator/tracing_runtime_config.py → tracing_runtime_config.py} +6 -7
- {opik-1.9.5.dist-info → opik-1.9.39.dist-info}/METADATA +5 -4
- {opik-1.9.5.dist-info → opik-1.9.39.dist-info}/RECORD +246 -151
- opik/api_objects/prompt/chat_prompt_template.py +0 -164
- opik/api_objects/prompt/prompt.py +0 -131
- /opik/rest_api/{spans/types → types}/span_update_type.py +0 -0
- {opik-1.9.5.dist-info → opik-1.9.39.dist-info}/WHEEL +0 -0
- {opik-1.9.5.dist-info → opik-1.9.39.dist-info}/entry_points.txt +0 -0
- {opik-1.9.5.dist-info → opik-1.9.39.dist-info}/licenses/LICENSE +0 -0
- {opik-1.9.5.dist-info → opik-1.9.39.dist-info}/top_level.txt +0 -0
|
@@ -7,7 +7,10 @@ import typing
|
|
|
7
7
|
import pydantic
|
|
8
8
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
9
9
|
from .llm_as_judge_code_write import LlmAsJudgeCodeWrite
|
|
10
|
+
from .span_filter_write import SpanFilterWrite
|
|
11
|
+
from .span_llm_as_judge_code_write import SpanLlmAsJudgeCodeWrite
|
|
10
12
|
from .trace_filter_write import TraceFilterWrite
|
|
13
|
+
from .trace_thread_filter_write import TraceThreadFilterWrite
|
|
11
14
|
from .trace_thread_llm_as_judge_code_write import TraceThreadLlmAsJudgeCodeWrite
|
|
12
15
|
from .trace_thread_user_defined_metric_python_code_write import TraceThreadUserDefinedMetricPythonCodeWrite
|
|
13
16
|
from .user_defined_metric_python_code_write import UserDefinedMetricPythonCodeWrite
|
|
@@ -18,7 +21,6 @@ class Base(UniversalBaseModel):
|
|
|
18
21
|
name: str
|
|
19
22
|
sampling_rate: typing.Optional[float] = None
|
|
20
23
|
enabled: typing.Optional[bool] = None
|
|
21
|
-
filters: typing.Optional[typing.List[TraceFilterWrite]] = None
|
|
22
24
|
action: typing.Literal["evaluator"] = "evaluator"
|
|
23
25
|
|
|
24
26
|
if IS_PYDANTIC_V2:
|
|
@@ -33,6 +35,7 @@ class Base(UniversalBaseModel):
|
|
|
33
35
|
|
|
34
36
|
class AutomationRuleEvaluatorWrite_LlmAsJudge(Base):
|
|
35
37
|
type: typing.Literal["llm_as_judge"] = "llm_as_judge"
|
|
38
|
+
filters: typing.Optional[typing.List[TraceFilterWrite]] = None
|
|
36
39
|
code: typing.Optional[LlmAsJudgeCodeWrite] = None
|
|
37
40
|
|
|
38
41
|
if IS_PYDANTIC_V2:
|
|
@@ -47,6 +50,7 @@ class AutomationRuleEvaluatorWrite_LlmAsJudge(Base):
|
|
|
47
50
|
|
|
48
51
|
class AutomationRuleEvaluatorWrite_UserDefinedMetricPython(Base):
|
|
49
52
|
type: typing.Literal["user_defined_metric_python"] = "user_defined_metric_python"
|
|
53
|
+
filters: typing.Optional[typing.List[TraceFilterWrite]] = None
|
|
50
54
|
code: typing.Optional[UserDefinedMetricPythonCodeWrite] = None
|
|
51
55
|
|
|
52
56
|
if IS_PYDANTIC_V2:
|
|
@@ -61,6 +65,7 @@ class AutomationRuleEvaluatorWrite_UserDefinedMetricPython(Base):
|
|
|
61
65
|
|
|
62
66
|
class AutomationRuleEvaluatorWrite_TraceThreadLlmAsJudge(Base):
|
|
63
67
|
type: typing.Literal["trace_thread_llm_as_judge"] = "trace_thread_llm_as_judge"
|
|
68
|
+
filters: typing.Optional[typing.List[TraceThreadFilterWrite]] = None
|
|
64
69
|
code: typing.Optional[TraceThreadLlmAsJudgeCodeWrite] = None
|
|
65
70
|
|
|
66
71
|
if IS_PYDANTIC_V2:
|
|
@@ -75,6 +80,7 @@ class AutomationRuleEvaluatorWrite_TraceThreadLlmAsJudge(Base):
|
|
|
75
80
|
|
|
76
81
|
class AutomationRuleEvaluatorWrite_TraceThreadUserDefinedMetricPython(Base):
|
|
77
82
|
type: typing.Literal["trace_thread_user_defined_metric_python"] = "trace_thread_user_defined_metric_python"
|
|
83
|
+
filters: typing.Optional[typing.List[TraceThreadFilterWrite]] = None
|
|
78
84
|
code: typing.Optional[TraceThreadUserDefinedMetricPythonCodeWrite] = None
|
|
79
85
|
|
|
80
86
|
if IS_PYDANTIC_V2:
|
|
@@ -87,9 +93,25 @@ class AutomationRuleEvaluatorWrite_TraceThreadUserDefinedMetricPython(Base):
|
|
|
87
93
|
extra = pydantic.Extra.allow
|
|
88
94
|
|
|
89
95
|
|
|
96
|
+
class AutomationRuleEvaluatorWrite_SpanLlmAsJudge(Base):
|
|
97
|
+
type: typing.Literal["span_llm_as_judge"] = "span_llm_as_judge"
|
|
98
|
+
filters: typing.Optional[typing.List[SpanFilterWrite]] = None
|
|
99
|
+
code: typing.Optional[SpanLlmAsJudgeCodeWrite] = None
|
|
100
|
+
|
|
101
|
+
if IS_PYDANTIC_V2:
|
|
102
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
103
|
+
else:
|
|
104
|
+
|
|
105
|
+
class Config:
|
|
106
|
+
frozen = True
|
|
107
|
+
smart_union = True
|
|
108
|
+
extra = pydantic.Extra.allow
|
|
109
|
+
|
|
110
|
+
|
|
90
111
|
AutomationRuleEvaluatorWrite = typing.Union[
|
|
91
112
|
AutomationRuleEvaluatorWrite_LlmAsJudge,
|
|
92
113
|
AutomationRuleEvaluatorWrite_UserDefinedMetricPython,
|
|
93
114
|
AutomationRuleEvaluatorWrite_TraceThreadLlmAsJudge,
|
|
94
115
|
AutomationRuleEvaluatorWrite_TraceThreadUserDefinedMetricPython,
|
|
116
|
+
AutomationRuleEvaluatorWrite_SpanLlmAsJudge,
|
|
95
117
|
]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
import pydantic
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .boolean_feedback_detail import BooleanFeedbackDetail
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class BooleanFeedbackDefinition(UniversalBaseModel):
|
|
12
|
+
details: typing.Optional[BooleanFeedbackDetail] = None
|
|
13
|
+
created_at: typing.Optional[dt.datetime] = None
|
|
14
|
+
created_by: typing.Optional[str] = None
|
|
15
|
+
last_updated_at: typing.Optional[dt.datetime] = None
|
|
16
|
+
last_updated_by: typing.Optional[str] = None
|
|
17
|
+
|
|
18
|
+
if IS_PYDANTIC_V2:
|
|
19
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
20
|
+
else:
|
|
21
|
+
|
|
22
|
+
class Config:
|
|
23
|
+
frozen = True
|
|
24
|
+
smart_union = True
|
|
25
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .boolean_feedback_detail_create import BooleanFeedbackDetailCreate
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class BooleanFeedbackDefinitionCreate(UniversalBaseModel):
|
|
11
|
+
details: typing.Optional[BooleanFeedbackDetailCreate] = None
|
|
12
|
+
|
|
13
|
+
if IS_PYDANTIC_V2:
|
|
14
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
15
|
+
else:
|
|
16
|
+
|
|
17
|
+
class Config:
|
|
18
|
+
frozen = True
|
|
19
|
+
smart_union = True
|
|
20
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
import pydantic
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .boolean_feedback_detail_public import BooleanFeedbackDetailPublic
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class BooleanFeedbackDefinitionPublic(UniversalBaseModel):
|
|
12
|
+
details: typing.Optional[BooleanFeedbackDetailPublic] = None
|
|
13
|
+
created_at: typing.Optional[dt.datetime] = None
|
|
14
|
+
created_by: typing.Optional[str] = None
|
|
15
|
+
last_updated_at: typing.Optional[dt.datetime] = None
|
|
16
|
+
last_updated_by: typing.Optional[str] = None
|
|
17
|
+
|
|
18
|
+
if IS_PYDANTIC_V2:
|
|
19
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
20
|
+
else:
|
|
21
|
+
|
|
22
|
+
class Config:
|
|
23
|
+
frozen = True
|
|
24
|
+
smart_union = True
|
|
25
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .boolean_feedback_detail_update import BooleanFeedbackDetailUpdate
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class BooleanFeedbackDefinitionUpdate(UniversalBaseModel):
|
|
11
|
+
details: typing.Optional[BooleanFeedbackDetailUpdate] = None
|
|
12
|
+
|
|
13
|
+
if IS_PYDANTIC_V2:
|
|
14
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
15
|
+
else:
|
|
16
|
+
|
|
17
|
+
class Config:
|
|
18
|
+
frozen = True
|
|
19
|
+
smart_union = True
|
|
20
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class BooleanFeedbackDetail(UniversalBaseModel):
|
|
12
|
+
true_label: typing_extensions.Annotated[str, FieldMetadata(alias="trueLabel")] = pydantic.Field()
|
|
13
|
+
"""
|
|
14
|
+
Label for true/1 value
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
false_label: typing_extensions.Annotated[str, FieldMetadata(alias="falseLabel")] = pydantic.Field()
|
|
18
|
+
"""
|
|
19
|
+
Label for false/0 value
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
if IS_PYDANTIC_V2:
|
|
23
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
24
|
+
else:
|
|
25
|
+
|
|
26
|
+
class Config:
|
|
27
|
+
frozen = True
|
|
28
|
+
smart_union = True
|
|
29
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class BooleanFeedbackDetailCreate(UniversalBaseModel):
|
|
12
|
+
true_label: typing_extensions.Annotated[str, FieldMetadata(alias="trueLabel")] = pydantic.Field()
|
|
13
|
+
"""
|
|
14
|
+
Label for true/1 value
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
false_label: typing_extensions.Annotated[str, FieldMetadata(alias="falseLabel")] = pydantic.Field()
|
|
18
|
+
"""
|
|
19
|
+
Label for false/0 value
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
if IS_PYDANTIC_V2:
|
|
23
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
24
|
+
else:
|
|
25
|
+
|
|
26
|
+
class Config:
|
|
27
|
+
frozen = True
|
|
28
|
+
smart_union = True
|
|
29
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class BooleanFeedbackDetailPublic(UniversalBaseModel):
|
|
12
|
+
true_label: typing_extensions.Annotated[str, FieldMetadata(alias="trueLabel")] = pydantic.Field()
|
|
13
|
+
"""
|
|
14
|
+
Label for true/1 value
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
false_label: typing_extensions.Annotated[str, FieldMetadata(alias="falseLabel")] = pydantic.Field()
|
|
18
|
+
"""
|
|
19
|
+
Label for false/0 value
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
if IS_PYDANTIC_V2:
|
|
23
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
24
|
+
else:
|
|
25
|
+
|
|
26
|
+
class Config:
|
|
27
|
+
frozen = True
|
|
28
|
+
smart_union = True
|
|
29
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class BooleanFeedbackDetailUpdate(UniversalBaseModel):
|
|
12
|
+
true_label: typing_extensions.Annotated[str, FieldMetadata(alias="trueLabel")] = pydantic.Field()
|
|
13
|
+
"""
|
|
14
|
+
Label for true/1 value
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
false_label: typing_extensions.Annotated[str, FieldMetadata(alias="falseLabel")] = pydantic.Field()
|
|
18
|
+
"""
|
|
19
|
+
Label for false/0 value
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
if IS_PYDANTIC_V2:
|
|
23
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
24
|
+
else:
|
|
25
|
+
|
|
26
|
+
class Config:
|
|
27
|
+
frozen = True
|
|
28
|
+
smart_union = True
|
|
29
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .dashboard_public import DashboardPublic
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DashboardPagePublic(UniversalBaseModel):
|
|
11
|
+
content: typing.Optional[typing.List[DashboardPublic]] = None
|
|
12
|
+
page: typing.Optional[int] = None
|
|
13
|
+
size: typing.Optional[int] = None
|
|
14
|
+
total: typing.Optional[int] = None
|
|
15
|
+
sortable_by: typing.Optional[typing.List[str]] = None
|
|
16
|
+
|
|
17
|
+
if IS_PYDANTIC_V2:
|
|
18
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
19
|
+
else:
|
|
20
|
+
|
|
21
|
+
class Config:
|
|
22
|
+
frozen = True
|
|
23
|
+
smart_union = True
|
|
24
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
import pydantic
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .json_node_public import JsonNodePublic
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DashboardPublic(UniversalBaseModel):
|
|
12
|
+
id: typing.Optional[str] = None
|
|
13
|
+
workspace_id: typing.Optional[str] = None
|
|
14
|
+
name: str
|
|
15
|
+
slug: typing.Optional[str] = None
|
|
16
|
+
description: typing.Optional[str] = None
|
|
17
|
+
config: JsonNodePublic
|
|
18
|
+
created_by: typing.Optional[str] = None
|
|
19
|
+
last_updated_by: typing.Optional[str] = None
|
|
20
|
+
created_at: typing.Optional[dt.datetime] = None
|
|
21
|
+
last_updated_at: typing.Optional[dt.datetime] = None
|
|
22
|
+
|
|
23
|
+
if IS_PYDANTIC_V2:
|
|
24
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
25
|
+
else:
|
|
26
|
+
|
|
27
|
+
class Config:
|
|
28
|
+
frozen = True
|
|
29
|
+
smart_union = True
|
|
30
|
+
extra = pydantic.Extra.allow
|
opik/rest_api/types/dataset.py
CHANGED
|
@@ -5,6 +5,7 @@ import typing
|
|
|
5
5
|
|
|
6
6
|
import pydantic
|
|
7
7
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .dataset_status import DatasetStatus
|
|
8
9
|
from .dataset_visibility import DatasetVisibility
|
|
9
10
|
|
|
10
11
|
|
|
@@ -25,6 +26,7 @@ class Dataset(UniversalBaseModel):
|
|
|
25
26
|
last_created_experiment_at: typing.Optional[dt.datetime] = None
|
|
26
27
|
most_recent_optimization_at: typing.Optional[dt.datetime] = None
|
|
27
28
|
last_created_optimization_at: typing.Optional[dt.datetime] = None
|
|
29
|
+
status: typing.Optional[DatasetStatus] = None
|
|
28
30
|
|
|
29
31
|
if IS_PYDANTIC_V2:
|
|
30
32
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
@@ -12,10 +12,12 @@ from .json_node import JsonNode
|
|
|
12
12
|
|
|
13
13
|
class DatasetItem(UniversalBaseModel):
|
|
14
14
|
id: typing.Optional[str] = None
|
|
15
|
+
draft_item_id: typing.Optional[str] = None
|
|
15
16
|
trace_id: typing.Optional[str] = None
|
|
16
17
|
span_id: typing.Optional[str] = None
|
|
17
18
|
source: DatasetItemSource
|
|
18
19
|
data: JsonNode
|
|
20
|
+
tags: typing.Optional[typing.List[str]] = None
|
|
19
21
|
experiment_items: typing.Optional[typing.List[ExperimentItem]] = None
|
|
20
22
|
dataset_id: typing.Optional[str] = None
|
|
21
23
|
created_at: typing.Optional[dt.datetime] = None
|
|
@@ -12,10 +12,12 @@ from .json_node import JsonNode
|
|
|
12
12
|
|
|
13
13
|
class DatasetItemCompare(UniversalBaseModel):
|
|
14
14
|
id: typing.Optional[str] = None
|
|
15
|
+
draft_item_id: typing.Optional[str] = None
|
|
15
16
|
trace_id: typing.Optional[str] = None
|
|
16
17
|
span_id: typing.Optional[str] = None
|
|
17
18
|
source: DatasetItemCompareSource
|
|
18
19
|
data: JsonNode
|
|
20
|
+
tags: typing.Optional[typing.List[str]] = None
|
|
19
21
|
experiment_items: typing.Optional[typing.List[ExperimentItemCompare]] = None
|
|
20
22
|
dataset_id: typing.Optional[str] = None
|
|
21
23
|
created_at: typing.Optional[dt.datetime] = None
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .dataset_item_filter_operator import DatasetItemFilterOperator
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DatasetItemFilter(UniversalBaseModel):
|
|
11
|
+
field: typing.Optional[str] = None
|
|
12
|
+
operator: typing.Optional[DatasetItemFilterOperator] = None
|
|
13
|
+
key: typing.Optional[str] = None
|
|
14
|
+
value: typing.Optional[str] = None
|
|
15
|
+
|
|
16
|
+
if IS_PYDANTIC_V2:
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
18
|
+
else:
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True
|
|
22
|
+
smart_union = True
|
|
23
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
DatasetItemFilterOperator = typing.Union[
|
|
6
|
+
typing.Literal[
|
|
7
|
+
"contains",
|
|
8
|
+
"not_contains",
|
|
9
|
+
"starts_with",
|
|
10
|
+
"ends_with",
|
|
11
|
+
"=",
|
|
12
|
+
"!=",
|
|
13
|
+
">",
|
|
14
|
+
">=",
|
|
15
|
+
"<",
|
|
16
|
+
"<=",
|
|
17
|
+
"is_empty",
|
|
18
|
+
"is_not_empty",
|
|
19
|
+
],
|
|
20
|
+
typing.Any,
|
|
21
|
+
]
|
|
@@ -19,6 +19,7 @@ class DatasetItemPageCompare(UniversalBaseModel):
|
|
|
19
19
|
sortable_by: typing_extensions.Annotated[typing.Optional[typing.List[str]], FieldMetadata(alias="sortableBy")] = (
|
|
20
20
|
None
|
|
21
21
|
)
|
|
22
|
+
has_draft: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="hasDraft")] = None
|
|
22
23
|
|
|
23
24
|
if IS_PYDANTIC_V2:
|
|
24
25
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
@@ -19,6 +19,7 @@ class DatasetItemPagePublic(UniversalBaseModel):
|
|
|
19
19
|
sortable_by: typing_extensions.Annotated[typing.Optional[typing.List[str]], FieldMetadata(alias="sortableBy")] = (
|
|
20
20
|
None
|
|
21
21
|
)
|
|
22
|
+
has_draft: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="hasDraft")] = None
|
|
22
23
|
|
|
23
24
|
if IS_PYDANTIC_V2:
|
|
24
25
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
@@ -12,10 +12,12 @@ from .json_node import JsonNode
|
|
|
12
12
|
|
|
13
13
|
class DatasetItemPublic(UniversalBaseModel):
|
|
14
14
|
id: typing.Optional[str] = None
|
|
15
|
+
draft_item_id: typing.Optional[str] = None
|
|
15
16
|
trace_id: typing.Optional[str] = None
|
|
16
17
|
span_id: typing.Optional[str] = None
|
|
17
18
|
source: DatasetItemPublicSource
|
|
18
19
|
data: JsonNode
|
|
20
|
+
tags: typing.Optional[typing.List[str]] = None
|
|
19
21
|
experiment_items: typing.Optional[typing.List[ExperimentItemPublic]] = None
|
|
20
22
|
dataset_id: typing.Optional[str] = None
|
|
21
23
|
created_at: typing.Optional[dt.datetime] = None
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .json_node import JsonNode
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DatasetItemUpdate(UniversalBaseModel):
|
|
11
|
+
"""
|
|
12
|
+
Dataset item update request
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
input: typing.Optional[str] = pydantic.Field(default=None)
|
|
16
|
+
"""
|
|
17
|
+
Dataset item input
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
expected_output: typing.Optional[str] = pydantic.Field(default=None)
|
|
21
|
+
"""
|
|
22
|
+
Dataset item expected output
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
metadata: typing.Optional[JsonNode] = None
|
|
26
|
+
data: typing.Optional[JsonNode] = None
|
|
27
|
+
tags: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
28
|
+
"""
|
|
29
|
+
Tags
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
if IS_PYDANTIC_V2:
|
|
33
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
34
|
+
else:
|
|
35
|
+
|
|
36
|
+
class Config:
|
|
37
|
+
frozen = True
|
|
38
|
+
smart_union = True
|
|
39
|
+
extra = pydantic.Extra.allow
|
|
@@ -14,6 +14,7 @@ class DatasetItemWrite(UniversalBaseModel):
|
|
|
14
14
|
span_id: typing.Optional[str] = None
|
|
15
15
|
source: DatasetItemWriteSource
|
|
16
16
|
data: JsonNode
|
|
17
|
+
tags: typing.Optional[typing.List[str]] = None
|
|
17
18
|
|
|
18
19
|
if IS_PYDANTIC_V2:
|
|
19
20
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
@@ -5,6 +5,7 @@ import typing
|
|
|
5
5
|
|
|
6
6
|
import pydantic
|
|
7
7
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .dataset_public_status import DatasetPublicStatus
|
|
8
9
|
from .dataset_public_visibility import DatasetPublicVisibility
|
|
9
10
|
|
|
10
11
|
|
|
@@ -25,6 +26,7 @@ class DatasetPublic(UniversalBaseModel):
|
|
|
25
26
|
last_created_experiment_at: typing.Optional[dt.datetime] = None
|
|
26
27
|
most_recent_optimization_at: typing.Optional[dt.datetime] = None
|
|
27
28
|
last_created_optimization_at: typing.Optional[dt.datetime] = None
|
|
29
|
+
status: typing.Optional[DatasetPublicStatus] = None
|
|
28
30
|
|
|
29
31
|
if IS_PYDANTIC_V2:
|
|
30
32
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .dataset_version_diff_stats import DatasetVersionDiffStats
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DatasetVersionDiff(UniversalBaseModel):
|
|
11
|
+
from_version: typing.Optional[str] = None
|
|
12
|
+
to_version: typing.Optional[str] = None
|
|
13
|
+
statistics: typing.Optional[DatasetVersionDiffStats] = None
|
|
14
|
+
|
|
15
|
+
if IS_PYDANTIC_V2:
|
|
16
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
17
|
+
else:
|
|
18
|
+
|
|
19
|
+
class Config:
|
|
20
|
+
frozen = True
|
|
21
|
+
smart_union = True
|
|
22
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DatasetVersionDiffStats(UniversalBaseModel):
|
|
12
|
+
items_added: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="itemsAdded")] = None
|
|
13
|
+
items_modified: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="itemsModified")] = None
|
|
14
|
+
items_deleted: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="itemsDeleted")] = None
|
|
15
|
+
items_unchanged: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="itemsUnchanged")] = None
|
|
16
|
+
|
|
17
|
+
if IS_PYDANTIC_V2:
|
|
18
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
19
|
+
else:
|
|
20
|
+
|
|
21
|
+
class Config:
|
|
22
|
+
frozen = True
|
|
23
|
+
smart_union = True
|
|
24
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .dataset_version_public import DatasetVersionPublic
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DatasetVersionPagePublic(UniversalBaseModel):
|
|
11
|
+
content: typing.Optional[typing.List[DatasetVersionPublic]] = None
|
|
12
|
+
page: typing.Optional[int] = None
|
|
13
|
+
size: typing.Optional[int] = None
|
|
14
|
+
total: typing.Optional[int] = None
|
|
15
|
+
|
|
16
|
+
if IS_PYDANTIC_V2:
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
18
|
+
else:
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True
|
|
22
|
+
smart_union = True
|
|
23
|
+
extra = pydantic.Extra.allow
|