eval-studio-client 1.2.1a4__py3-none-any.whl → 1.2.2a2__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.
- eval_studio_client/api/models/adversarial_inputs_service_test_adversarial_inputs_robustness_request.py +5 -5
- eval_studio_client/api/models/perturbation_service_create_perturbation_request.py +11 -11
- eval_studio_client/api/models/prompt_generation_service_auto_generate_prompts_request.py +2 -2
- eval_studio_client/api/models/protobuf_any.py +2 -2
- eval_studio_client/api/models/required_the_dashboard_to_update.py +2 -2
- eval_studio_client/api/models/required_the_document_to_update.py +2 -2
- eval_studio_client/api/models/required_the_leaderboard_to_update.py +8 -8
- eval_studio_client/api/models/required_the_model_to_update.py +2 -2
- eval_studio_client/api/models/required_the_operation_to_finalize.py +2 -2
- eval_studio_client/api/models/required_the_operation_to_update.py +2 -2
- eval_studio_client/api/models/required_the_test_case_to_update.py +2 -2
- eval_studio_client/api/models/required_the_test_to_update.py +2 -2
- eval_studio_client/api/models/required_the_updated_workflow.py +5 -5
- eval_studio_client/api/models/required_the_updated_workflow_node.py +5 -5
- eval_studio_client/api/models/rpc_status.py +5 -5
- eval_studio_client/api/models/test_case_service_batch_delete_test_cases_request.py +2 -2
- eval_studio_client/api/models/test_service_clone_test_request.py +2 -2
- eval_studio_client/api/models/test_service_generate_test_cases_request.py +5 -5
- eval_studio_client/api/models/test_service_grant_test_access_request.py +2 -2
- eval_studio_client/api/models/test_service_import_test_cases_from_library_request.py +2 -2
- eval_studio_client/api/models/test_service_list_test_case_library_items_request.py +2 -2
- eval_studio_client/api/models/test_service_perturb_test_in_place_request.py +5 -5
- eval_studio_client/api/models/test_service_perturb_test_request.py +5 -5
- eval_studio_client/api/models/test_service_revoke_test_access_request.py +2 -2
- eval_studio_client/api/models/v1_abort_operation_response.py +2 -2
- eval_studio_client/api/models/v1_batch_create_leaderboards_request.py +5 -5
- eval_studio_client/api/models/v1_batch_create_leaderboards_response.py +2 -2
- eval_studio_client/api/models/v1_batch_delete_dashboards_request.py +2 -2
- eval_studio_client/api/models/v1_batch_delete_dashboards_response.py +5 -5
- eval_studio_client/api/models/v1_batch_delete_documents_request.py +2 -2
- eval_studio_client/api/models/v1_batch_delete_documents_response.py +5 -5
- eval_studio_client/api/models/v1_batch_delete_evaluators_request.py +2 -2
- eval_studio_client/api/models/v1_batch_delete_evaluators_response.py +5 -5
- eval_studio_client/api/models/v1_batch_delete_leaderboards_request.py +2 -2
- eval_studio_client/api/models/v1_batch_delete_leaderboards_response.py +5 -5
- eval_studio_client/api/models/v1_batch_delete_models_request.py +2 -2
- eval_studio_client/api/models/v1_batch_delete_models_response.py +5 -5
- eval_studio_client/api/models/v1_batch_delete_test_cases_response.py +5 -5
- eval_studio_client/api/models/v1_batch_delete_tests_request.py +2 -2
- eval_studio_client/api/models/v1_batch_delete_tests_response.py +5 -5
- eval_studio_client/api/models/v1_batch_delete_workflows_request.py +2 -2
- eval_studio_client/api/models/v1_batch_delete_workflows_response.py +5 -5
- eval_studio_client/api/models/v1_batch_get_dashboards_response.py +5 -5
- eval_studio_client/api/models/v1_batch_get_documents_response.py +5 -5
- eval_studio_client/api/models/v1_batch_get_leaderboards_response.py +5 -5
- eval_studio_client/api/models/v1_batch_get_models_response.py +5 -5
- eval_studio_client/api/models/v1_batch_get_operations_response.py +5 -5
- eval_studio_client/api/models/v1_batch_get_tests_response.py +5 -5
- eval_studio_client/api/models/v1_batch_get_workflow_edges_response.py +5 -5
- eval_studio_client/api/models/v1_batch_get_workflow_nodes_response.py +5 -5
- eval_studio_client/api/models/v1_batch_import_leaderboard_request.py +2 -2
- eval_studio_client/api/models/v1_batch_import_leaderboard_response.py +2 -2
- eval_studio_client/api/models/v1_batch_import_tests_request.py +2 -2
- eval_studio_client/api/models/v1_batch_import_tests_response.py +5 -5
- eval_studio_client/api/models/v1_check_base_models_response.py +2 -2
- eval_studio_client/api/models/v1_clone_test_response.py +2 -2
- eval_studio_client/api/models/v1_clone_workflow_response.py +2 -2
- eval_studio_client/api/models/v1_collection_info.py +2 -2
- eval_studio_client/api/models/v1_context.py +2 -2
- eval_studio_client/api/models/v1_create_dashboard_response.py +2 -2
- eval_studio_client/api/models/v1_create_document_response.py +2 -2
- eval_studio_client/api/models/v1_create_evaluation_request.py +5 -5
- eval_studio_client/api/models/v1_create_evaluator_response.py +2 -2
- eval_studio_client/api/models/v1_create_leaderboard_request.py +2 -2
- eval_studio_client/api/models/v1_create_leaderboard_response.py +2 -2
- eval_studio_client/api/models/v1_create_leaderboard_without_cache_response.py +2 -2
- eval_studio_client/api/models/v1_create_model_response.py +2 -2
- eval_studio_client/api/models/v1_create_perturbation_response.py +2 -2
- eval_studio_client/api/models/v1_create_test_case_response.py +2 -2
- eval_studio_client/api/models/v1_create_test_lab_response.py +2 -2
- eval_studio_client/api/models/v1_create_test_response.py +2 -2
- eval_studio_client/api/models/v1_create_workflow_edge_response.py +2 -2
- eval_studio_client/api/models/v1_create_workflow_node_response.py +2 -2
- eval_studio_client/api/models/v1_create_workflow_response.py +2 -2
- eval_studio_client/api/models/v1_dashboard.py +2 -2
- eval_studio_client/api/models/v1_delete_dashboard_response.py +2 -2
- eval_studio_client/api/models/v1_delete_document_response.py +2 -2
- eval_studio_client/api/models/v1_delete_evaluator_response.py +2 -2
- eval_studio_client/api/models/v1_delete_leaderboard_response.py +2 -2
- eval_studio_client/api/models/v1_delete_model_response.py +2 -2
- eval_studio_client/api/models/v1_delete_test_case_response.py +2 -2
- eval_studio_client/api/models/v1_delete_test_response.py +2 -2
- eval_studio_client/api/models/v1_delete_workflow_edge_response.py +2 -2
- eval_studio_client/api/models/v1_delete_workflow_node_response.py +2 -2
- eval_studio_client/api/models/v1_delete_workflow_response.py +2 -2
- eval_studio_client/api/models/v1_dependency_list.py +5 -5
- eval_studio_client/api/models/v1_document.py +2 -2
- eval_studio_client/api/models/v1_estimate_threshold_request.py +5 -5
- eval_studio_client/api/models/v1_evaluation_test.py +8 -8
- eval_studio_client/api/models/v1_evaluator.py +5 -5
- eval_studio_client/api/models/v1_evaluator_parameter.py +2 -2
- eval_studio_client/api/models/v1_finalize_operation_response.py +2 -2
- eval_studio_client/api/models/v1_find_all_test_cases_by_id_response.py +5 -5
- eval_studio_client/api/models/v1_find_test_lab_response.py +2 -2
- eval_studio_client/api/models/v1_find_workflows_by_collection_id_response.py +5 -5
- eval_studio_client/api/models/v1_generate_test_cases_response.py +2 -2
- eval_studio_client/api/models/v1_get_dashboard_response.py +2 -2
- eval_studio_client/api/models/v1_get_document_response.py +2 -2
- eval_studio_client/api/models/v1_get_evaluator_response.py +2 -2
- eval_studio_client/api/models/v1_get_guardrails_configuration_response.py +2 -2
- eval_studio_client/api/models/v1_get_info_response.py +2 -2
- eval_studio_client/api/models/v1_get_leaderboard_report_response.py +2 -2
- eval_studio_client/api/models/v1_get_leaderboard_response.py +2 -2
- eval_studio_client/api/models/v1_get_model_response.py +2 -2
- eval_studio_client/api/models/v1_get_operation_progress_by_parent_response.py +2 -2
- eval_studio_client/api/models/v1_get_operation_response.py +2 -2
- eval_studio_client/api/models/v1_get_perturbator_response.py +2 -2
- eval_studio_client/api/models/v1_get_stats_response.py +2 -2
- eval_studio_client/api/models/v1_get_test_case_response.py +2 -2
- eval_studio_client/api/models/v1_get_test_class_response.py +2 -2
- eval_studio_client/api/models/v1_get_test_response.py +2 -2
- eval_studio_client/api/models/v1_get_workflow_node_prerequisites_response.py +2 -2
- eval_studio_client/api/models/v1_get_workflow_node_response.py +2 -2
- eval_studio_client/api/models/v1_get_workflow_response.py +2 -2
- eval_studio_client/api/models/v1_get_workflow_result_corpus_patch_response.py +2 -2
- eval_studio_client/api/models/v1_get_workflow_result_report_response.py +2 -2
- eval_studio_client/api/models/v1_get_workflow_result_summary_response.py +2 -2
- eval_studio_client/api/models/v1_get_workflow_result_system_prompt_patch_response.py +2 -2
- eval_studio_client/api/models/v1_import_evaluation_request.py +2 -2
- eval_studio_client/api/models/v1_import_leaderboard_request.py +2 -2
- eval_studio_client/api/models/v1_import_leaderboard_response.py +2 -2
- eval_studio_client/api/models/v1_import_test_cases_from_library_response.py +2 -2
- eval_studio_client/api/models/v1_import_test_cases_request.py +2 -2
- eval_studio_client/api/models/v1_info.py +2 -2
- eval_studio_client/api/models/v1_init_workflow_node_response.py +2 -2
- eval_studio_client/api/models/v1_insight.py +2 -2
- eval_studio_client/api/models/v1_labeled_test_case.py +2 -2
- eval_studio_client/api/models/v1_leaderboard.py +8 -8
- eval_studio_client/api/models/v1_leaderboard_report.py +8 -8
- eval_studio_client/api/models/v1_leaderboard_report_actual_output_data.py +2 -2
- eval_studio_client/api/models/v1_leaderboard_report_actual_output_meta.py +5 -5
- eval_studio_client/api/models/v1_leaderboard_report_evaluator.py +11 -11
- eval_studio_client/api/models/v1_leaderboard_report_evaluator_parameter.py +2 -2
- eval_studio_client/api/models/v1_leaderboard_report_explanation.py +2 -2
- eval_studio_client/api/models/v1_leaderboard_report_metrics_meta_entry.py +2 -2
- eval_studio_client/api/models/v1_leaderboard_report_model.py +2 -2
- eval_studio_client/api/models/v1_leaderboard_report_result.py +11 -11
- eval_studio_client/api/models/v1_leaderboard_report_result_relationship.py +2 -2
- eval_studio_client/api/models/v1_list_base_models_response.py +2 -2
- eval_studio_client/api/models/v1_list_dashboard_access_response.py +5 -5
- eval_studio_client/api/models/v1_list_dashboards_response.py +5 -5
- eval_studio_client/api/models/v1_list_dashboards_shared_with_me_response.py +5 -5
- eval_studio_client/api/models/v1_list_documents_response.py +5 -5
- eval_studio_client/api/models/v1_list_evaluators_response.py +5 -5
- eval_studio_client/api/models/v1_list_leaderboards_response.py +5 -5
- eval_studio_client/api/models/v1_list_llm_models_response.py +2 -2
- eval_studio_client/api/models/v1_list_model_collections_response.py +5 -5
- eval_studio_client/api/models/v1_list_models_response.py +5 -5
- eval_studio_client/api/models/v1_list_most_recent_dashboards_response.py +5 -5
- eval_studio_client/api/models/v1_list_most_recent_leaderboards_response.py +5 -5
- eval_studio_client/api/models/v1_list_most_recent_models_response.py +5 -5
- eval_studio_client/api/models/v1_list_most_recent_tests_response.py +5 -5
- eval_studio_client/api/models/v1_list_operations_response.py +5 -5
- eval_studio_client/api/models/v1_list_perturbators_response.py +5 -5
- eval_studio_client/api/models/v1_list_prompt_library_items_response.py +5 -5
- eval_studio_client/api/models/v1_list_rag_collections_response.py +5 -5
- eval_studio_client/api/models/v1_list_test_access_response.py +5 -5
- eval_studio_client/api/models/v1_list_test_case_library_items_response.py +5 -5
- eval_studio_client/api/models/v1_list_test_case_relationships_response.py +5 -5
- eval_studio_client/api/models/v1_list_test_cases_response.py +5 -5
- eval_studio_client/api/models/v1_list_test_classes_response.py +5 -5
- eval_studio_client/api/models/v1_list_tests_response.py +5 -5
- eval_studio_client/api/models/v1_list_tests_shared_with_me_response.py +5 -5
- eval_studio_client/api/models/v1_list_workflow_access_response.py +5 -5
- eval_studio_client/api/models/v1_list_workflow_dependencies_response.py +8 -8
- eval_studio_client/api/models/v1_list_workflows_response.py +5 -5
- eval_studio_client/api/models/v1_list_workflows_shared_with_me_response.py +5 -5
- eval_studio_client/api/models/v1_metric_score.py +2 -2
- eval_studio_client/api/models/v1_metric_scores.py +5 -5
- eval_studio_client/api/models/v1_model.py +2 -2
- eval_studio_client/api/models/v1_operation.py +2 -2
- eval_studio_client/api/models/v1_operation_progress.py +2 -2
- eval_studio_client/api/models/v1_perturb_test_in_place_response.py +2 -2
- eval_studio_client/api/models/v1_perturb_test_response.py +2 -2
- eval_studio_client/api/models/v1_perturbator.py +2 -2
- eval_studio_client/api/models/v1_perturbator_configuration.py +2 -2
- eval_studio_client/api/models/v1_problem_and_action.py +2 -2
- eval_studio_client/api/models/v1_process_workflow_node_response.py +2 -2
- eval_studio_client/api/models/v1_prompt_library_item.py +2 -2
- eval_studio_client/api/models/v1_repeated_context.py +5 -5
- eval_studio_client/api/models/v1_repeated_string.py +2 -2
- eval_studio_client/api/models/v1_reset_workflow_node_response.py +2 -2
- eval_studio_client/api/models/v1_role_binding.py +2 -2
- eval_studio_client/api/models/v1_stats.py +2 -2
- eval_studio_client/api/models/v1_test.py +2 -2
- eval_studio_client/api/models/v1_test_case.py +2 -2
- eval_studio_client/api/models/v1_test_case_relationship.py +2 -2
- eval_studio_client/api/models/v1_test_class.py +2 -2
- eval_studio_client/api/models/v1_test_lab.py +2 -2
- eval_studio_client/api/models/v1_update_dashboard_response.py +2 -2
- eval_studio_client/api/models/v1_update_document_response.py +2 -2
- eval_studio_client/api/models/v1_update_leaderboard_response.py +2 -2
- eval_studio_client/api/models/v1_update_model_response.py +2 -2
- eval_studio_client/api/models/v1_update_operation_response.py +2 -2
- eval_studio_client/api/models/v1_update_test_case_response.py +2 -2
- eval_studio_client/api/models/v1_update_test_response.py +2 -2
- eval_studio_client/api/models/v1_update_workflow_node_response.py +2 -2
- eval_studio_client/api/models/v1_update_workflow_response.py +2 -2
- eval_studio_client/api/models/v1_who_am_i_response.py +2 -2
- eval_studio_client/api/models/v1_workflow.py +5 -5
- eval_studio_client/api/models/v1_workflow_dependency.py +2 -2
- eval_studio_client/api/models/v1_workflow_edge.py +2 -2
- eval_studio_client/api/models/v1_workflow_node.py +5 -5
- eval_studio_client/api/models/v1_workflow_node_artifact.py +2 -2
- eval_studio_client/api/models/v1_workflow_node_artifacts.py +5 -5
- eval_studio_client/api/models/v1_workflow_node_attributes.py +2 -2
- eval_studio_client/api/models/workflow_service_clone_workflow_request.py +2 -2
- eval_studio_client/api/models/workflow_service_revoke_workflow_access_request.py +2 -2
- eval_studio_client/leaderboards.py +17 -0
- eval_studio_client/models.py +153 -8
- {eval_studio_client-1.2.1a4.dist-info → eval_studio_client-1.2.2a2.dist-info}/METADATA +1 -1
- {eval_studio_client-1.2.1a4.dist-info → eval_studio_client-1.2.2a2.dist-info}/RECORD +213 -213
- {eval_studio_client-1.2.1a4.dist-info → eval_studio_client-1.2.2a2.dist-info}/WHEEL +0 -0
|
@@ -72,9 +72,9 @@ class V1ListOperationsResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in operations (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.operations:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_operations in self.operations:
|
|
76
|
+
if _item_operations:
|
|
77
|
+
_items.append(_item_operations.to_dict())
|
|
78
78
|
_dict['operations'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListOperationsResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"operations": [V1Operation.from_dict(_item) for _item in obj["operations"]] if obj.get("operations") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListPerturbatorsResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in perturbators (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.perturbators:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_perturbators in self.perturbators:
|
|
76
|
+
if _item_perturbators:
|
|
77
|
+
_items.append(_item_perturbators.to_dict())
|
|
78
78
|
_dict['perturbators'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListPerturbatorsResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"perturbators": [V1Perturbator.from_dict(_item) for _item in obj["perturbators"]] if obj.get("perturbators") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListPromptLibraryItemsResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in prompt_library_items (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.prompt_library_items:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_prompt_library_items in self.prompt_library_items:
|
|
76
|
+
if _item_prompt_library_items:
|
|
77
|
+
_items.append(_item_prompt_library_items.to_dict())
|
|
78
78
|
_dict['promptLibraryItems'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListPromptLibraryItemsResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"promptLibraryItems": [V1PromptLibraryItem.from_dict(_item) for _item in obj["promptLibraryItems"]] if obj.get("promptLibraryItems") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListRAGCollectionsResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in collections (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.collections:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_collections in self.collections:
|
|
76
|
+
if _item_collections:
|
|
77
|
+
_items.append(_item_collections.to_dict())
|
|
78
78
|
_dict['collections'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListRAGCollectionsResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"collections": [V1CollectionInfo.from_dict(_item) for _item in obj["collections"]] if obj.get("collections") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListTestAccessResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in role_bindings (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.role_bindings:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_role_bindings in self.role_bindings:
|
|
76
|
+
if _item_role_bindings:
|
|
77
|
+
_items.append(_item_role_bindings.to_dict())
|
|
78
78
|
_dict['roleBindings'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListTestAccessResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"roleBindings": [V1RoleBinding.from_dict(_item) for _item in obj["roleBindings"]] if obj.get("roleBindings") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListTestCaseLibraryItemsResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in prompt_library_items (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.prompt_library_items:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_prompt_library_items in self.prompt_library_items:
|
|
76
|
+
if _item_prompt_library_items:
|
|
77
|
+
_items.append(_item_prompt_library_items.to_dict())
|
|
78
78
|
_dict['promptLibraryItems'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListTestCaseLibraryItemsResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"promptLibraryItems": [V1PromptLibraryItem.from_dict(_item) for _item in obj["promptLibraryItems"]] if obj.get("promptLibraryItems") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListTestCaseRelationshipsResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in test_case_relationships (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.test_case_relationships:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_test_case_relationships in self.test_case_relationships:
|
|
76
|
+
if _item_test_case_relationships:
|
|
77
|
+
_items.append(_item_test_case_relationships.to_dict())
|
|
78
78
|
_dict['testCaseRelationships'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListTestCaseRelationshipsResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"testCaseRelationships": [V1TestCaseRelationship.from_dict(_item) for _item in obj["testCaseRelationships"]] if obj.get("testCaseRelationships") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListTestCasesResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in test_cases (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.test_cases:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_test_cases in self.test_cases:
|
|
76
|
+
if _item_test_cases:
|
|
77
|
+
_items.append(_item_test_cases.to_dict())
|
|
78
78
|
_dict['testCases'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListTestCasesResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"testCases": [V1TestCase.from_dict(_item) for _item in obj["testCases"]] if obj.get("testCases") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListTestClassesResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in test_classes (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.test_classes:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_test_classes in self.test_classes:
|
|
76
|
+
if _item_test_classes:
|
|
77
|
+
_items.append(_item_test_classes.to_dict())
|
|
78
78
|
_dict['testClasses'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListTestClassesResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"testClasses": [V1TestClass.from_dict(_item) for _item in obj["testClasses"]] if obj.get("testClasses") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListTestsResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in tests (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.tests:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_tests in self.tests:
|
|
76
|
+
if _item_tests:
|
|
77
|
+
_items.append(_item_tests.to_dict())
|
|
78
78
|
_dict['tests'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListTestsResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"tests": [V1Test.from_dict(_item) for _item in obj["tests"]] if obj.get("tests") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListTestsSharedWithMeResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in tests (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.tests:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_tests in self.tests:
|
|
76
|
+
if _item_tests:
|
|
77
|
+
_items.append(_item_tests.to_dict())
|
|
78
78
|
_dict['tests'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListTestsSharedWithMeResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"tests": [V1Test.from_dict(_item) for _item in obj["tests"]] if obj.get("tests") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListWorkflowAccessResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in role_bindings (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.role_bindings:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_role_bindings in self.role_bindings:
|
|
76
|
+
if _item_role_bindings:
|
|
77
|
+
_items.append(_item_role_bindings.to_dict())
|
|
78
78
|
_dict['roleBindings'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListWorkflowAccessResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"roleBindings": [V1RoleBinding.from_dict(_item) for _item in obj["roleBindings"]] if obj.get("roleBindings") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -74,16 +74,16 @@ class V1ListWorkflowDependenciesResponse(BaseModel):
|
|
|
74
74
|
# override the default output from pydantic by calling `to_dict()` of each item in nodes (list)
|
|
75
75
|
_items = []
|
|
76
76
|
if self.nodes:
|
|
77
|
-
for
|
|
78
|
-
if
|
|
79
|
-
_items.append(
|
|
77
|
+
for _item_nodes in self.nodes:
|
|
78
|
+
if _item_nodes:
|
|
79
|
+
_items.append(_item_nodes.to_dict())
|
|
80
80
|
_dict['nodes'] = _items
|
|
81
81
|
# override the default output from pydantic by calling `to_dict()` of each item in dependencies (list)
|
|
82
82
|
_items = []
|
|
83
83
|
if self.dependencies:
|
|
84
|
-
for
|
|
85
|
-
if
|
|
86
|
-
_items.append(
|
|
84
|
+
for _item_dependencies in self.dependencies:
|
|
85
|
+
if _item_dependencies:
|
|
86
|
+
_items.append(_item_dependencies.to_dict())
|
|
87
87
|
_dict['dependencies'] = _items
|
|
88
88
|
return _dict
|
|
89
89
|
|
|
@@ -94,12 +94,12 @@ class V1ListWorkflowDependenciesResponse(BaseModel):
|
|
|
94
94
|
return None
|
|
95
95
|
|
|
96
96
|
if not isinstance(obj, dict):
|
|
97
|
-
return cls.model_validate(obj)
|
|
97
|
+
return cls.model_validate(obj, strict=False)
|
|
98
98
|
|
|
99
99
|
_obj = cls.model_validate({
|
|
100
100
|
"nodes": [V1WorkflowNode.from_dict(_item) for _item in obj["nodes"]] if obj.get("nodes") is not None else None,
|
|
101
101
|
"dependencies": [V1DependencyList.from_dict(_item) for _item in obj["dependencies"]] if obj.get("dependencies") is not None else None
|
|
102
|
-
})
|
|
102
|
+
}, strict=False)
|
|
103
103
|
return _obj
|
|
104
104
|
|
|
105
105
|
|
|
@@ -72,9 +72,9 @@ class V1ListWorkflowsResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in workflows (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.workflows:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_workflows in self.workflows:
|
|
76
|
+
if _item_workflows:
|
|
77
|
+
_items.append(_item_workflows.to_dict())
|
|
78
78
|
_dict['workflows'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListWorkflowsResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"workflows": [V1Workflow.from_dict(_item) for _item in obj["workflows"]] if obj.get("workflows") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -72,9 +72,9 @@ class V1ListWorkflowsSharedWithMeResponse(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in workflows (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.workflows:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_workflows in self.workflows:
|
|
76
|
+
if _item_workflows:
|
|
77
|
+
_items.append(_item_workflows.to_dict())
|
|
78
78
|
_dict['workflows'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1ListWorkflowsSharedWithMeResponse(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"workflows": [V1Workflow.from_dict(_item) for _item in obj["workflows"]] if obj.get("workflows") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -78,12 +78,12 @@ class V1MetricScore(BaseModel):
|
|
|
78
78
|
return None
|
|
79
79
|
|
|
80
80
|
if not isinstance(obj, dict):
|
|
81
|
-
return cls.model_validate(obj)
|
|
81
|
+
return cls.model_validate(obj, strict=False)
|
|
82
82
|
|
|
83
83
|
_obj = cls.model_validate({
|
|
84
84
|
"key": obj.get("key"),
|
|
85
85
|
"value": obj.get("value")
|
|
86
|
-
})
|
|
86
|
+
}, strict=False)
|
|
87
87
|
return _obj
|
|
88
88
|
|
|
89
89
|
|
|
@@ -72,9 +72,9 @@ class V1MetricScores(BaseModel):
|
|
|
72
72
|
# override the default output from pydantic by calling `to_dict()` of each item in scores (list)
|
|
73
73
|
_items = []
|
|
74
74
|
if self.scores:
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
75
|
+
for _item_scores in self.scores:
|
|
76
|
+
if _item_scores:
|
|
77
|
+
_items.append(_item_scores.to_dict())
|
|
78
78
|
_dict['scores'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
@@ -85,11 +85,11 @@ class V1MetricScores(BaseModel):
|
|
|
85
85
|
return None
|
|
86
86
|
|
|
87
87
|
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
88
|
+
return cls.model_validate(obj, strict=False)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
91
|
"scores": [V1MetricScore.from_dict(_item) for _item in obj["scores"]] if obj.get("scores") is not None else None
|
|
92
|
-
})
|
|
92
|
+
}, strict=False)
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
95
95
|
|
|
@@ -108,7 +108,7 @@ class V1Model(BaseModel):
|
|
|
108
108
|
return None
|
|
109
109
|
|
|
110
110
|
if not isinstance(obj, dict):
|
|
111
|
-
return cls.model_validate(obj)
|
|
111
|
+
return cls.model_validate(obj, strict=False)
|
|
112
112
|
|
|
113
113
|
_obj = cls.model_validate({
|
|
114
114
|
"name": obj.get("name"),
|
|
@@ -125,7 +125,7 @@ class V1Model(BaseModel):
|
|
|
125
125
|
"type": obj.get("type"),
|
|
126
126
|
"parameters": obj.get("parameters"),
|
|
127
127
|
"demo": obj.get("demo")
|
|
128
|
-
})
|
|
128
|
+
}, strict=False)
|
|
129
129
|
return _obj
|
|
130
130
|
|
|
131
131
|
|
|
@@ -113,7 +113,7 @@ class V1Operation(BaseModel):
|
|
|
113
113
|
return None
|
|
114
114
|
|
|
115
115
|
if not isinstance(obj, dict):
|
|
116
|
-
return cls.model_validate(obj)
|
|
116
|
+
return cls.model_validate(obj, strict=False)
|
|
117
117
|
|
|
118
118
|
_obj = cls.model_validate({
|
|
119
119
|
"name": obj.get("name"),
|
|
@@ -127,7 +127,7 @@ class V1Operation(BaseModel):
|
|
|
127
127
|
"done": obj.get("done"),
|
|
128
128
|
"error": RpcStatus.from_dict(obj["error"]) if obj.get("error") is not None else None,
|
|
129
129
|
"response": ProtobufAny.from_dict(obj["response"]) if obj.get("response") is not None else None
|
|
130
|
-
})
|
|
130
|
+
}, strict=False)
|
|
131
131
|
return _obj
|
|
132
132
|
|
|
133
133
|
|
|
@@ -86,14 +86,14 @@ class V1OperationProgress(BaseModel):
|
|
|
86
86
|
return None
|
|
87
87
|
|
|
88
88
|
if not isinstance(obj, dict):
|
|
89
|
-
return cls.model_validate(obj)
|
|
89
|
+
return cls.model_validate(obj, strict=False)
|
|
90
90
|
|
|
91
91
|
_obj = cls.model_validate({
|
|
92
92
|
"name": obj.get("name"),
|
|
93
93
|
"parent": obj.get("parent"),
|
|
94
94
|
"progress": obj.get("progress"),
|
|
95
95
|
"message": obj.get("message")
|
|
96
|
-
})
|
|
96
|
+
}, strict=False)
|
|
97
97
|
return _obj
|
|
98
98
|
|
|
99
99
|
|
|
@@ -81,11 +81,11 @@ class V1PerturbTestInPlaceResponse(BaseModel):
|
|
|
81
81
|
return None
|
|
82
82
|
|
|
83
83
|
if not isinstance(obj, dict):
|
|
84
|
-
return cls.model_validate(obj)
|
|
84
|
+
return cls.model_validate(obj, strict=False)
|
|
85
85
|
|
|
86
86
|
_obj = cls.model_validate({
|
|
87
87
|
"test": V1Test.from_dict(obj["test"]) if obj.get("test") is not None else None
|
|
88
|
-
})
|
|
88
|
+
}, strict=False)
|
|
89
89
|
return _obj
|
|
90
90
|
|
|
91
91
|
|
|
@@ -81,11 +81,11 @@ class V1PerturbTestResponse(BaseModel):
|
|
|
81
81
|
return None
|
|
82
82
|
|
|
83
83
|
if not isinstance(obj, dict):
|
|
84
|
-
return cls.model_validate(obj)
|
|
84
|
+
return cls.model_validate(obj, strict=False)
|
|
85
85
|
|
|
86
86
|
_obj = cls.model_validate({
|
|
87
87
|
"test": V1Test.from_dict(obj["test"]) if obj.get("test") is not None else None
|
|
88
|
-
})
|
|
88
|
+
}, strict=False)
|
|
89
89
|
return _obj
|
|
90
90
|
|
|
91
91
|
|
|
@@ -102,7 +102,7 @@ class V1Perturbator(BaseModel):
|
|
|
102
102
|
return None
|
|
103
103
|
|
|
104
104
|
if not isinstance(obj, dict):
|
|
105
|
-
return cls.model_validate(obj)
|
|
105
|
+
return cls.model_validate(obj, strict=False)
|
|
106
106
|
|
|
107
107
|
_obj = cls.model_validate({
|
|
108
108
|
"name": obj.get("name"),
|
|
@@ -116,7 +116,7 @@ class V1Perturbator(BaseModel):
|
|
|
116
116
|
"description": obj.get("description"),
|
|
117
117
|
"identifier": obj.get("identifier"),
|
|
118
118
|
"tags": obj.get("tags")
|
|
119
|
-
})
|
|
119
|
+
}, strict=False)
|
|
120
120
|
return _obj
|
|
121
121
|
|
|
122
122
|
|
|
@@ -80,13 +80,13 @@ class V1PerturbatorConfiguration(BaseModel):
|
|
|
80
80
|
return None
|
|
81
81
|
|
|
82
82
|
if not isinstance(obj, dict):
|
|
83
|
-
return cls.model_validate(obj)
|
|
83
|
+
return cls.model_validate(obj, strict=False)
|
|
84
84
|
|
|
85
85
|
_obj = cls.model_validate({
|
|
86
86
|
"name": obj.get("name"),
|
|
87
87
|
"intensity": obj.get("intensity"),
|
|
88
88
|
"params": obj.get("params")
|
|
89
|
-
})
|
|
89
|
+
}, strict=False)
|
|
90
90
|
return _obj
|
|
91
91
|
|
|
92
92
|
|
|
@@ -109,7 +109,7 @@ class V1ProblemAndAction(BaseModel):
|
|
|
109
109
|
return None
|
|
110
110
|
|
|
111
111
|
if not isinstance(obj, dict):
|
|
112
|
-
return cls.model_validate(obj)
|
|
112
|
+
return cls.model_validate(obj, strict=False)
|
|
113
113
|
|
|
114
114
|
_obj = cls.model_validate({
|
|
115
115
|
"description": obj.get("description"),
|
|
@@ -123,7 +123,7 @@ class V1ProblemAndAction(BaseModel):
|
|
|
123
123
|
"explanationName": obj.get("explanationName"),
|
|
124
124
|
"explanationMime": obj.get("explanationMime"),
|
|
125
125
|
"resources": obj.get("resources")
|
|
126
|
-
})
|
|
126
|
+
}, strict=False)
|
|
127
127
|
return _obj
|
|
128
128
|
|
|
129
129
|
|
|
@@ -81,11 +81,11 @@ class V1ProcessWorkflowNodeResponse(BaseModel):
|
|
|
81
81
|
return None
|
|
82
82
|
|
|
83
83
|
if not isinstance(obj, dict):
|
|
84
|
-
return cls.model_validate(obj)
|
|
84
|
+
return cls.model_validate(obj, strict=False)
|
|
85
85
|
|
|
86
86
|
_obj = cls.model_validate({
|
|
87
87
|
"operation": V1Operation.from_dict(obj["operation"]) if obj.get("operation") is not None else None
|
|
88
|
-
})
|
|
88
|
+
}, strict=False)
|
|
89
89
|
return _obj
|
|
90
90
|
|
|
91
91
|
|
|
@@ -106,7 +106,7 @@ class V1PromptLibraryItem(BaseModel):
|
|
|
106
106
|
return None
|
|
107
107
|
|
|
108
108
|
if not isinstance(obj, dict):
|
|
109
|
-
return cls.model_validate(obj)
|
|
109
|
+
return cls.model_validate(obj, strict=False)
|
|
110
110
|
|
|
111
111
|
_obj = cls.model_validate({
|
|
112
112
|
"name": obj.get("name"),
|
|
@@ -123,7 +123,7 @@ class V1PromptLibraryItem(BaseModel):
|
|
|
123
123
|
"testCaseCount": obj.get("testCaseCount"),
|
|
124
124
|
"evaluates": obj.get("evaluates"),
|
|
125
125
|
"categories": obj.get("categories")
|
|
126
|
-
})
|
|
126
|
+
}, strict=False)
|
|
127
127
|
return _obj
|
|
128
128
|
|
|
129
129
|
|