eval-studio-client 1.0.0a1__py3-none-any.whl → 1.0.1__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/__init__.py +43 -0
- eval_studio_client/api/api/__init__.py +5 -0
- eval_studio_client/api/api/human_calibration_service_api.py +304 -0
- eval_studio_client/api/api/perturbator_service_api.py +268 -1
- eval_studio_client/api/api/prompt_library_service_api.py +669 -0
- eval_studio_client/api/api/test_service_api.py +568 -0
- eval_studio_client/api/api/workflow_edge_service_api.py +296 -0
- eval_studio_client/api/api/workflow_node_service_api.py +1634 -0
- eval_studio_client/api/api/workflow_service_api.py +1609 -0
- eval_studio_client/api/docs/HumanCalibrationServiceApi.md +77 -0
- eval_studio_client/api/docs/PerturbationServiceCreatePerturbationRequest.md +1 -0
- eval_studio_client/api/docs/PerturbatorServiceApi.md +33 -3
- eval_studio_client/api/docs/PromptGenerationServiceAutoGeneratePromptsRequest.md +2 -1
- eval_studio_client/api/docs/PromptLibraryServiceApi.md +155 -0
- eval_studio_client/api/docs/ProtobufNullValue.md +12 -0
- eval_studio_client/api/docs/RequiredTheTestCaseToUpdate.md +1 -0
- eval_studio_client/api/docs/RequiredTheUpdatedWorkflow.md +44 -0
- eval_studio_client/api/docs/RequiredTheUpdatedWorkflowNode.md +44 -0
- eval_studio_client/api/docs/TestServiceApi.md +140 -0
- eval_studio_client/api/docs/TestServiceGenerateTestCasesRequest.md +1 -0
- eval_studio_client/api/docs/TestServiceImportTestCasesFromLibraryRequest.md +32 -0
- eval_studio_client/api/docs/TestServiceListTestCaseLibraryItemsRequest.md +35 -0
- eval_studio_client/api/docs/TestServicePerturbTestRequest.md +1 -0
- eval_studio_client/api/docs/V1BatchDeleteWorkflowsRequest.md +29 -0
- eval_studio_client/api/docs/V1BatchDeleteWorkflowsResponse.md +29 -0
- eval_studio_client/api/docs/V1BatchGetWorkflowEdgesResponse.md +29 -0
- eval_studio_client/api/docs/V1BatchGetWorkflowNodesResponse.md +29 -0
- eval_studio_client/api/docs/V1CreateEvaluationRequest.md +1 -0
- eval_studio_client/api/docs/V1CreateWorkflowResponse.md +29 -0
- eval_studio_client/api/docs/V1DeleteWorkflowNodeResponse.md +29 -0
- eval_studio_client/api/docs/V1DeleteWorkflowResponse.md +29 -0
- eval_studio_client/api/docs/V1EstimateThresholdRequest.md +33 -0
- eval_studio_client/api/docs/V1GetWorkflowNodePrerequisitesResponse.md +30 -0
- eval_studio_client/api/docs/V1GetWorkflowNodeResponse.md +29 -0
- eval_studio_client/api/docs/V1GetWorkflowResponse.md +29 -0
- eval_studio_client/api/docs/V1ImportEvaluationRequest.md +1 -0
- eval_studio_client/api/docs/V1ImportTestCasesFromLibraryResponse.md +29 -0
- eval_studio_client/api/docs/V1ImportTestCasesRequest.md +33 -0
- eval_studio_client/api/docs/V1LabeledTestCase.md +31 -0
- eval_studio_client/api/docs/V1ListPromptLibraryItemsResponse.md +29 -0
- eval_studio_client/api/docs/V1ListTestCaseLibraryItemsResponse.md +29 -0
- eval_studio_client/api/docs/V1ListWorkflowsResponse.md +29 -0
- eval_studio_client/api/docs/V1ProcessWorkflowNodeResponse.md +29 -0
- eval_studio_client/api/docs/V1PromptLibraryItem.md +42 -0
- eval_studio_client/api/docs/V1TestCase.md +1 -0
- eval_studio_client/api/docs/V1TestSuiteEvaluates.md +11 -0
- eval_studio_client/api/docs/V1UpdateWorkflowNodeResponse.md +29 -0
- eval_studio_client/api/docs/V1UpdateWorkflowResponse.md +29 -0
- eval_studio_client/api/docs/V1Workflow.md +46 -0
- eval_studio_client/api/docs/V1WorkflowEdge.md +40 -0
- eval_studio_client/api/docs/V1WorkflowEdgeType.md +12 -0
- eval_studio_client/api/docs/V1WorkflowNode.md +46 -0
- eval_studio_client/api/docs/V1WorkflowNodeArtifact.md +40 -0
- eval_studio_client/api/docs/V1WorkflowNodeArtifacts.md +29 -0
- eval_studio_client/api/docs/V1WorkflowNodeAttributes.md +30 -0
- eval_studio_client/api/docs/V1WorkflowNodeStatus.md +12 -0
- eval_studio_client/api/docs/V1WorkflowNodeType.md +12 -0
- eval_studio_client/api/docs/V1WorkflowNodeView.md +12 -0
- eval_studio_client/api/docs/V1WorkflowType.md +12 -0
- eval_studio_client/api/docs/WorkflowEdgeServiceApi.md +76 -0
- eval_studio_client/api/docs/WorkflowNodeServiceApi.md +423 -0
- eval_studio_client/api/docs/WorkflowServiceApi.md +417 -0
- eval_studio_client/api/models/__init__.py +38 -0
- eval_studio_client/api/models/perturbation_service_create_perturbation_request.py +8 -2
- eval_studio_client/api/models/prompt_generation_service_auto_generate_prompts_request.py +5 -3
- eval_studio_client/api/models/protobuf_null_value.py +36 -0
- eval_studio_client/api/models/required_the_test_case_to_update.py +6 -2
- eval_studio_client/api/models/required_the_updated_workflow.py +152 -0
- eval_studio_client/api/models/required_the_updated_workflow_node.py +152 -0
- eval_studio_client/api/models/test_service_generate_test_cases_request.py +4 -2
- eval_studio_client/api/models/test_service_import_test_cases_from_library_request.py +93 -0
- eval_studio_client/api/models/test_service_list_test_case_library_items_request.py +99 -0
- eval_studio_client/api/models/test_service_perturb_test_request.py +4 -2
- eval_studio_client/api/models/v1_batch_delete_workflows_request.py +87 -0
- eval_studio_client/api/models/v1_batch_delete_workflows_response.py +95 -0
- eval_studio_client/api/models/v1_batch_get_workflow_edges_response.py +95 -0
- eval_studio_client/api/models/v1_batch_get_workflow_nodes_response.py +95 -0
- eval_studio_client/api/models/v1_create_evaluation_request.py +7 -2
- eval_studio_client/api/models/v1_create_workflow_response.py +91 -0
- eval_studio_client/api/models/v1_delete_workflow_node_response.py +91 -0
- eval_studio_client/api/models/v1_delete_workflow_response.py +91 -0
- eval_studio_client/api/models/v1_estimate_threshold_request.py +103 -0
- eval_studio_client/api/models/v1_get_workflow_node_prerequisites_response.py +89 -0
- eval_studio_client/api/models/v1_get_workflow_node_response.py +91 -0
- eval_studio_client/api/models/v1_get_workflow_response.py +91 -0
- eval_studio_client/api/models/v1_import_evaluation_request.py +7 -2
- eval_studio_client/api/models/v1_import_test_cases_from_library_response.py +91 -0
- eval_studio_client/api/models/v1_import_test_cases_request.py +95 -0
- eval_studio_client/api/models/v1_labeled_test_case.py +91 -0
- eval_studio_client/api/models/v1_list_prompt_library_items_response.py +95 -0
- eval_studio_client/api/models/v1_list_test_case_library_items_response.py +95 -0
- eval_studio_client/api/models/v1_list_workflows_response.py +95 -0
- eval_studio_client/api/models/v1_process_workflow_node_response.py +91 -0
- eval_studio_client/api/models/v1_prompt_library_item.py +129 -0
- eval_studio_client/api/models/v1_test_case.py +6 -2
- eval_studio_client/api/models/v1_test_suite_evaluates.py +39 -0
- eval_studio_client/api/models/v1_update_workflow_node_response.py +91 -0
- eval_studio_client/api/models/v1_update_workflow_response.py +91 -0
- eval_studio_client/api/models/v1_workflow.py +156 -0
- eval_studio_client/api/models/v1_workflow_edge.py +123 -0
- eval_studio_client/api/models/v1_workflow_edge_type.py +37 -0
- eval_studio_client/api/models/v1_workflow_node.py +156 -0
- eval_studio_client/api/models/v1_workflow_node_artifact.py +122 -0
- eval_studio_client/api/models/v1_workflow_node_artifacts.py +97 -0
- eval_studio_client/api/models/v1_workflow_node_attributes.py +87 -0
- eval_studio_client/api/models/v1_workflow_node_status.py +40 -0
- eval_studio_client/api/models/v1_workflow_node_type.py +41 -0
- eval_studio_client/api/models/v1_workflow_node_view.py +38 -0
- eval_studio_client/api/models/v1_workflow_type.py +37 -0
- eval_studio_client/api/test/test_human_calibration_service_api.py +38 -0
- eval_studio_client/api/test/test_perturbation_service_create_perturbation_request.py +20 -2
- eval_studio_client/api/test/test_prompt_generation_service_auto_generate_prompts_request.py +4 -1
- eval_studio_client/api/test/test_prompt_library_service_api.py +43 -0
- eval_studio_client/api/test/test_protobuf_null_value.py +33 -0
- eval_studio_client/api/test/test_required_the_test_case_to_update.py +4 -1
- eval_studio_client/api/test/test_required_the_updated_workflow.py +88 -0
- eval_studio_client/api/test/test_required_the_updated_workflow_node.py +80 -0
- eval_studio_client/api/test/test_test_service_api.py +12 -0
- eval_studio_client/api/test/test_test_service_generate_test_cases_request.py +4 -1
- eval_studio_client/api/test/test_test_service_import_test_cases_from_library_request.py +56 -0
- eval_studio_client/api/test/test_test_service_list_test_case_library_items_request.py +63 -0
- eval_studio_client/api/test/test_test_service_perturb_test_request.py +4 -1
- eval_studio_client/api/test/test_v1_batch_delete_test_cases_response.py +4 -1
- eval_studio_client/api/test/test_v1_batch_delete_workflows_request.py +53 -0
- eval_studio_client/api/test/test_v1_batch_delete_workflows_response.py +92 -0
- eval_studio_client/api/test/test_v1_batch_get_workflow_edges_response.py +64 -0
- eval_studio_client/api/test/test_v1_batch_get_workflow_nodes_response.py +84 -0
- eval_studio_client/api/test/test_v1_create_evaluation_request.py +20 -2
- eval_studio_client/api/test/test_v1_create_test_case_response.py +4 -1
- eval_studio_client/api/test/test_v1_create_workflow_response.py +90 -0
- eval_studio_client/api/test/test_v1_delete_test_case_response.py +4 -1
- eval_studio_client/api/test/test_v1_delete_workflow_node_response.py +82 -0
- eval_studio_client/api/test/test_v1_delete_workflow_response.py +90 -0
- eval_studio_client/api/test/test_v1_estimate_threshold_request.py +60 -0
- eval_studio_client/api/test/test_v1_evaluation_test.py +4 -1
- eval_studio_client/api/test/test_v1_find_all_test_cases_by_id_response.py +4 -1
- eval_studio_client/api/test/test_v1_get_test_case_response.py +4 -1
- eval_studio_client/api/test/test_v1_get_workflow_node_prerequisites_response.py +56 -0
- eval_studio_client/api/test/test_v1_get_workflow_node_response.py +82 -0
- eval_studio_client/api/test/test_v1_get_workflow_response.py +90 -0
- eval_studio_client/api/test/test_v1_import_evaluation_request.py +16 -1
- eval_studio_client/api/test/test_v1_import_test_cases_from_library_response.py +71 -0
- eval_studio_client/api/test/test_v1_import_test_cases_request.py +57 -0
- eval_studio_client/api/test/test_v1_labeled_test_case.py +53 -0
- eval_studio_client/api/test/test_v1_list_prompt_library_items_response.py +71 -0
- eval_studio_client/api/test/test_v1_list_test_case_library_items_response.py +71 -0
- eval_studio_client/api/test/test_v1_list_test_cases_response.py +4 -1
- eval_studio_client/api/test/test_v1_list_workflows_response.py +92 -0
- eval_studio_client/api/test/test_v1_process_workflow_node_response.py +71 -0
- eval_studio_client/api/test/test_v1_prompt_library_item.py +68 -0
- eval_studio_client/api/test/test_v1_test_case.py +4 -1
- eval_studio_client/api/test/test_v1_test_suite_evaluates.py +33 -0
- eval_studio_client/api/test/test_v1_update_test_case_response.py +4 -1
- eval_studio_client/api/test/test_v1_update_workflow_node_response.py +82 -0
- eval_studio_client/api/test/test_v1_update_workflow_response.py +90 -0
- eval_studio_client/api/test/test_v1_workflow.py +89 -0
- eval_studio_client/api/test/test_v1_workflow_edge.py +61 -0
- eval_studio_client/api/test/test_v1_workflow_edge_type.py +33 -0
- eval_studio_client/api/test/test_v1_workflow_node.py +81 -0
- eval_studio_client/api/test/test_v1_workflow_node_artifact.py +61 -0
- eval_studio_client/api/test/test_v1_workflow_node_artifacts.py +64 -0
- eval_studio_client/api/test/test_v1_workflow_node_attributes.py +51 -0
- eval_studio_client/api/test/test_v1_workflow_node_status.py +33 -0
- eval_studio_client/api/test/test_v1_workflow_node_type.py +33 -0
- eval_studio_client/api/test/test_v1_workflow_node_view.py +33 -0
- eval_studio_client/api/test/test_v1_workflow_type.py +33 -0
- eval_studio_client/api/test/test_workflow_edge_service_api.py +38 -0
- eval_studio_client/api/test/test_workflow_node_service_api.py +73 -0
- eval_studio_client/api/test/test_workflow_service_api.py +73 -0
- eval_studio_client/client.py +7 -0
- eval_studio_client/dashboards.py +66 -18
- eval_studio_client/gen/openapiv2/eval_studio.swagger.json +2665 -794
- eval_studio_client/leaderboards.py +125 -0
- eval_studio_client/models.py +3 -42
- eval_studio_client/test_labs.py +49 -21
- eval_studio_client/tests.py +221 -51
- eval_studio_client/utils.py +26 -0
- {eval_studio_client-1.0.0a1.dist-info → eval_studio_client-1.0.1.dist-info}/METADATA +1 -2
- {eval_studio_client-1.0.0a1.dist-info → eval_studio_client-1.0.1.dist-info}/RECORD +180 -50
- {eval_studio_client-1.0.0a1.dist-info → eval_studio_client-1.0.1.dist-info}/WHEEL +1 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
ai/h2o/eval_studio/v1/collection.proto
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: version not set
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from eval_studio_client.api.models.v1_workflow import V1Workflow
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class V1UpdateWorkflowResponse(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
V1UpdateWorkflowResponse
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
workflow: Optional[V1Workflow] = None
|
|
31
|
+
__properties: ClassVar[List[str]] = ["workflow"]
|
|
32
|
+
|
|
33
|
+
model_config = ConfigDict(
|
|
34
|
+
populate_by_name=True,
|
|
35
|
+
validate_assignment=True,
|
|
36
|
+
protected_namespaces=(),
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def to_str(self) -> str:
|
|
41
|
+
"""Returns the string representation of the model using alias"""
|
|
42
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
43
|
+
|
|
44
|
+
def to_json(self) -> str:
|
|
45
|
+
"""Returns the JSON representation of the model using alias"""
|
|
46
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
47
|
+
return json.dumps(self.to_dict())
|
|
48
|
+
|
|
49
|
+
@classmethod
|
|
50
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
51
|
+
"""Create an instance of V1UpdateWorkflowResponse from a JSON string"""
|
|
52
|
+
return cls.from_dict(json.loads(json_str))
|
|
53
|
+
|
|
54
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
55
|
+
"""Return the dictionary representation of the model using alias.
|
|
56
|
+
|
|
57
|
+
This has the following differences from calling pydantic's
|
|
58
|
+
`self.model_dump(by_alias=True)`:
|
|
59
|
+
|
|
60
|
+
* `None` is only added to the output dict for nullable fields that
|
|
61
|
+
were set at model initialization. Other fields with value `None`
|
|
62
|
+
are ignored.
|
|
63
|
+
"""
|
|
64
|
+
excluded_fields: Set[str] = set([
|
|
65
|
+
])
|
|
66
|
+
|
|
67
|
+
_dict = self.model_dump(
|
|
68
|
+
by_alias=True,
|
|
69
|
+
exclude=excluded_fields,
|
|
70
|
+
exclude_none=True,
|
|
71
|
+
)
|
|
72
|
+
# override the default output from pydantic by calling `to_dict()` of workflow
|
|
73
|
+
if self.workflow:
|
|
74
|
+
_dict['workflow'] = self.workflow.to_dict()
|
|
75
|
+
return _dict
|
|
76
|
+
|
|
77
|
+
@classmethod
|
|
78
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
79
|
+
"""Create an instance of V1UpdateWorkflowResponse from a dict"""
|
|
80
|
+
if obj is None:
|
|
81
|
+
return None
|
|
82
|
+
|
|
83
|
+
if not isinstance(obj, dict):
|
|
84
|
+
return cls.model_validate(obj)
|
|
85
|
+
|
|
86
|
+
_obj = cls.model_validate({
|
|
87
|
+
"workflow": V1Workflow.from_dict(obj["workflow"]) if obj.get("workflow") is not None else None
|
|
88
|
+
})
|
|
89
|
+
return _obj
|
|
90
|
+
|
|
91
|
+
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
ai/h2o/eval_studio/v1/collection.proto
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: version not set
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from datetime import datetime
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from eval_studio_client.api.models.v1_workflow_node_artifacts import V1WorkflowNodeArtifacts
|
|
24
|
+
from eval_studio_client.api.models.v1_workflow_type import V1WorkflowType
|
|
25
|
+
from typing import Optional, Set
|
|
26
|
+
from typing_extensions import Self
|
|
27
|
+
|
|
28
|
+
class V1Workflow(BaseModel):
|
|
29
|
+
"""
|
|
30
|
+
Workflow represents a workflow in Eval Studio. It consists of WorkflowNodes and WorkflowEdges.
|
|
31
|
+
""" # noqa: E501
|
|
32
|
+
name: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Resource name of the Workflow in format of `workflows/{workflow_id}`.")
|
|
33
|
+
display_name: Optional[StrictStr] = Field(default=None, description="Human-readable name of the Workflow.", alias="displayName")
|
|
34
|
+
description: Optional[StrictStr] = Field(default=None, description="Optional description of the Workflow.")
|
|
35
|
+
create_time: Optional[datetime] = Field(default=None, description="Output only. Immutable. Creation time of the Workflow.", alias="createTime")
|
|
36
|
+
creator: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Name of the user or service that requested creation of the Workflow.")
|
|
37
|
+
update_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Last update time of the Workflow.", alias="updateTime")
|
|
38
|
+
updater: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested update of the Workflow.")
|
|
39
|
+
delete_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Deletion time of the Workflow.", alias="deleteTime")
|
|
40
|
+
deleter: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested deletion of the Workflow.")
|
|
41
|
+
type: Optional[V1WorkflowType] = None
|
|
42
|
+
model: Optional[StrictStr] = Field(default=None, description="Immutable. Resource name of the Model associated with this Workflow.")
|
|
43
|
+
nodes: Optional[List[StrictStr]] = Field(default=None, description="Output only. List of the WorkflowNodes in the Workflow.")
|
|
44
|
+
edges: Optional[List[StrictStr]] = Field(default=None, description="Output only. List of the WorkflowEdges in the Workflow.")
|
|
45
|
+
outputs: Optional[Dict[str, Dict[str, Any]]] = Field(default=None, description="Output only. Optional. Computed outputs of all the WorkflowNodes in the Workflow.")
|
|
46
|
+
output_artifacts: Optional[Dict[str, V1WorkflowNodeArtifacts]] = Field(default=None, description="Output only. Optional. List of the WorkflowNodeArtifacts produces by all the WorkflowNodes in the Workflow.", alias="outputArtifacts")
|
|
47
|
+
llm_model: Optional[StrictStr] = Field(default=None, description="Immutable. LLM Model to use.", alias="llmModel")
|
|
48
|
+
model_parameters: Optional[StrictStr] = Field(default=None, description="Optional. Immutable. Model parameter overrides in JSON format.", alias="modelParameters")
|
|
49
|
+
__properties: ClassVar[List[str]] = ["name", "displayName", "description", "createTime", "creator", "updateTime", "updater", "deleteTime", "deleter", "type", "model", "nodes", "edges", "outputs", "outputArtifacts", "llmModel", "modelParameters"]
|
|
50
|
+
|
|
51
|
+
model_config = ConfigDict(
|
|
52
|
+
populate_by_name=True,
|
|
53
|
+
validate_assignment=True,
|
|
54
|
+
protected_namespaces=(),
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def to_str(self) -> str:
|
|
59
|
+
"""Returns the string representation of the model using alias"""
|
|
60
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
61
|
+
|
|
62
|
+
def to_json(self) -> str:
|
|
63
|
+
"""Returns the JSON representation of the model using alias"""
|
|
64
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
65
|
+
return json.dumps(self.to_dict())
|
|
66
|
+
|
|
67
|
+
@classmethod
|
|
68
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
69
|
+
"""Create an instance of V1Workflow from a JSON string"""
|
|
70
|
+
return cls.from_dict(json.loads(json_str))
|
|
71
|
+
|
|
72
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
73
|
+
"""Return the dictionary representation of the model using alias.
|
|
74
|
+
|
|
75
|
+
This has the following differences from calling pydantic's
|
|
76
|
+
`self.model_dump(by_alias=True)`:
|
|
77
|
+
|
|
78
|
+
* `None` is only added to the output dict for nullable fields that
|
|
79
|
+
were set at model initialization. Other fields with value `None`
|
|
80
|
+
are ignored.
|
|
81
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
82
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
83
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
84
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
85
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
86
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
87
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
88
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
89
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
90
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
91
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
92
|
+
"""
|
|
93
|
+
excluded_fields: Set[str] = set([
|
|
94
|
+
"name",
|
|
95
|
+
"create_time",
|
|
96
|
+
"creator",
|
|
97
|
+
"update_time",
|
|
98
|
+
"updater",
|
|
99
|
+
"delete_time",
|
|
100
|
+
"deleter",
|
|
101
|
+
"nodes",
|
|
102
|
+
"edges",
|
|
103
|
+
"outputs",
|
|
104
|
+
"output_artifacts",
|
|
105
|
+
])
|
|
106
|
+
|
|
107
|
+
_dict = self.model_dump(
|
|
108
|
+
by_alias=True,
|
|
109
|
+
exclude=excluded_fields,
|
|
110
|
+
exclude_none=True,
|
|
111
|
+
)
|
|
112
|
+
# override the default output from pydantic by calling `to_dict()` of each value in output_artifacts (dict)
|
|
113
|
+
_field_dict = {}
|
|
114
|
+
if self.output_artifacts:
|
|
115
|
+
for _key in self.output_artifacts:
|
|
116
|
+
if self.output_artifacts[_key]:
|
|
117
|
+
_field_dict[_key] = self.output_artifacts[_key].to_dict()
|
|
118
|
+
_dict['outputArtifacts'] = _field_dict
|
|
119
|
+
return _dict
|
|
120
|
+
|
|
121
|
+
@classmethod
|
|
122
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
123
|
+
"""Create an instance of V1Workflow from a dict"""
|
|
124
|
+
if obj is None:
|
|
125
|
+
return None
|
|
126
|
+
|
|
127
|
+
if not isinstance(obj, dict):
|
|
128
|
+
return cls.model_validate(obj)
|
|
129
|
+
|
|
130
|
+
_obj = cls.model_validate({
|
|
131
|
+
"name": obj.get("name"),
|
|
132
|
+
"displayName": obj.get("displayName"),
|
|
133
|
+
"description": obj.get("description"),
|
|
134
|
+
"createTime": obj.get("createTime"),
|
|
135
|
+
"creator": obj.get("creator"),
|
|
136
|
+
"updateTime": obj.get("updateTime"),
|
|
137
|
+
"updater": obj.get("updater"),
|
|
138
|
+
"deleteTime": obj.get("deleteTime"),
|
|
139
|
+
"deleter": obj.get("deleter"),
|
|
140
|
+
"type": obj.get("type"),
|
|
141
|
+
"model": obj.get("model"),
|
|
142
|
+
"nodes": obj.get("nodes"),
|
|
143
|
+
"edges": obj.get("edges"),
|
|
144
|
+
"outputs": obj.get("outputs"),
|
|
145
|
+
"outputArtifacts": dict(
|
|
146
|
+
(_k, V1WorkflowNodeArtifacts.from_dict(_v))
|
|
147
|
+
for _k, _v in obj["outputArtifacts"].items()
|
|
148
|
+
)
|
|
149
|
+
if obj.get("outputArtifacts") is not None
|
|
150
|
+
else None,
|
|
151
|
+
"llmModel": obj.get("llmModel"),
|
|
152
|
+
"modelParameters": obj.get("modelParameters")
|
|
153
|
+
})
|
|
154
|
+
return _obj
|
|
155
|
+
|
|
156
|
+
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
ai/h2o/eval_studio/v1/collection.proto
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: version not set
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from datetime import datetime
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from eval_studio_client.api.models.v1_workflow_edge_type import V1WorkflowEdgeType
|
|
24
|
+
from typing import Optional, Set
|
|
25
|
+
from typing_extensions import Self
|
|
26
|
+
|
|
27
|
+
class V1WorkflowEdge(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
WorkflowEdge represents an oriented edge between two WorkflowNodes in an Eval Studio Workflow.
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
name: Optional[StrictStr] = Field(default=None, description="Resource name of the Workflow in format of `workflow/{workflow_id}/edges/{edge_id}`.")
|
|
32
|
+
parent: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Resource name of the parent Workflow in format of `workflow/{workflow_id}`.")
|
|
33
|
+
create_time: Optional[datetime] = Field(default=None, description="Output only. Immutable. Creation time of the WorkflowEdge.", alias="createTime")
|
|
34
|
+
creator: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Name of the user or service that requested creation of the WorkflowEdge.")
|
|
35
|
+
update_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Last update time of the WorkflowEdge.", alias="updateTime")
|
|
36
|
+
updater: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested update of the WorkflowEdge.")
|
|
37
|
+
delete_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Deletion time of the WorkflowEdge.", alias="deleteTime")
|
|
38
|
+
deleter: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested deletion of the WorkflowEdge.")
|
|
39
|
+
type: Optional[V1WorkflowEdgeType] = None
|
|
40
|
+
var_from: Optional[StrictStr] = Field(default=None, description="Resource name of the source WorkflowNode in format of `workflow/{workflow_id}/nodes/{node_id}`.", alias="from")
|
|
41
|
+
to: Optional[StrictStr] = Field(default=None, description="Resource name of the target WorkflowNode in format of `workflow/{workflow_id}/nodes/{node_id}`.")
|
|
42
|
+
__properties: ClassVar[List[str]] = ["name", "parent", "createTime", "creator", "updateTime", "updater", "deleteTime", "deleter", "type", "from", "to"]
|
|
43
|
+
|
|
44
|
+
model_config = ConfigDict(
|
|
45
|
+
populate_by_name=True,
|
|
46
|
+
validate_assignment=True,
|
|
47
|
+
protected_namespaces=(),
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def to_str(self) -> str:
|
|
52
|
+
"""Returns the string representation of the model using alias"""
|
|
53
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
54
|
+
|
|
55
|
+
def to_json(self) -> str:
|
|
56
|
+
"""Returns the JSON representation of the model using alias"""
|
|
57
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
58
|
+
return json.dumps(self.to_dict())
|
|
59
|
+
|
|
60
|
+
@classmethod
|
|
61
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
62
|
+
"""Create an instance of V1WorkflowEdge from a JSON string"""
|
|
63
|
+
return cls.from_dict(json.loads(json_str))
|
|
64
|
+
|
|
65
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
66
|
+
"""Return the dictionary representation of the model using alias.
|
|
67
|
+
|
|
68
|
+
This has the following differences from calling pydantic's
|
|
69
|
+
`self.model_dump(by_alias=True)`:
|
|
70
|
+
|
|
71
|
+
* `None` is only added to the output dict for nullable fields that
|
|
72
|
+
were set at model initialization. Other fields with value `None`
|
|
73
|
+
are ignored.
|
|
74
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
75
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
76
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
77
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
78
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
79
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
80
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
81
|
+
"""
|
|
82
|
+
excluded_fields: Set[str] = set([
|
|
83
|
+
"parent",
|
|
84
|
+
"create_time",
|
|
85
|
+
"creator",
|
|
86
|
+
"update_time",
|
|
87
|
+
"updater",
|
|
88
|
+
"delete_time",
|
|
89
|
+
"deleter",
|
|
90
|
+
])
|
|
91
|
+
|
|
92
|
+
_dict = self.model_dump(
|
|
93
|
+
by_alias=True,
|
|
94
|
+
exclude=excluded_fields,
|
|
95
|
+
exclude_none=True,
|
|
96
|
+
)
|
|
97
|
+
return _dict
|
|
98
|
+
|
|
99
|
+
@classmethod
|
|
100
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
101
|
+
"""Create an instance of V1WorkflowEdge from a dict"""
|
|
102
|
+
if obj is None:
|
|
103
|
+
return None
|
|
104
|
+
|
|
105
|
+
if not isinstance(obj, dict):
|
|
106
|
+
return cls.model_validate(obj)
|
|
107
|
+
|
|
108
|
+
_obj = cls.model_validate({
|
|
109
|
+
"name": obj.get("name"),
|
|
110
|
+
"parent": obj.get("parent"),
|
|
111
|
+
"createTime": obj.get("createTime"),
|
|
112
|
+
"creator": obj.get("creator"),
|
|
113
|
+
"updateTime": obj.get("updateTime"),
|
|
114
|
+
"updater": obj.get("updater"),
|
|
115
|
+
"deleteTime": obj.get("deleteTime"),
|
|
116
|
+
"deleter": obj.get("deleter"),
|
|
117
|
+
"type": obj.get("type"),
|
|
118
|
+
"from": obj.get("from"),
|
|
119
|
+
"to": obj.get("to")
|
|
120
|
+
})
|
|
121
|
+
return _obj
|
|
122
|
+
|
|
123
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
ai/h2o/eval_studio/v1/collection.proto
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: version not set
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import json
|
|
17
|
+
from enum import Enum
|
|
18
|
+
from typing_extensions import Self
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class V1WorkflowEdgeType(str, Enum):
|
|
22
|
+
"""
|
|
23
|
+
WorkflowEdgeType represents the type of a WorkflowEdge. - WORKFLOW_EDGE_TYPE_UNSPECIFIED: Unspecified type. - WORKFLOW_EDGE_TYPE_SIMPLE: Simple edge without any conditions.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
"""
|
|
27
|
+
allowed enum values
|
|
28
|
+
"""
|
|
29
|
+
WORKFLOW_EDGE_TYPE_UNSPECIFIED = 'WORKFLOW_EDGE_TYPE_UNSPECIFIED'
|
|
30
|
+
WORKFLOW_EDGE_TYPE_SIMPLE = 'WORKFLOW_EDGE_TYPE_SIMPLE'
|
|
31
|
+
|
|
32
|
+
@classmethod
|
|
33
|
+
def from_json(cls, json_str: str) -> Self:
|
|
34
|
+
"""Create an instance of V1WorkflowEdgeType from a JSON string"""
|
|
35
|
+
return cls(json.loads(json_str))
|
|
36
|
+
|
|
37
|
+
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
ai/h2o/eval_studio/v1/collection.proto
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: version not set
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from datetime import datetime
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from eval_studio_client.api.models.v1_workflow_node_artifact import V1WorkflowNodeArtifact
|
|
24
|
+
from eval_studio_client.api.models.v1_workflow_node_attributes import V1WorkflowNodeAttributes
|
|
25
|
+
from eval_studio_client.api.models.v1_workflow_node_status import V1WorkflowNodeStatus
|
|
26
|
+
from eval_studio_client.api.models.v1_workflow_node_type import V1WorkflowNodeType
|
|
27
|
+
from typing import Optional, Set
|
|
28
|
+
from typing_extensions import Self
|
|
29
|
+
|
|
30
|
+
class V1WorkflowNode(BaseModel):
|
|
31
|
+
"""
|
|
32
|
+
WorkflowNode represents a node in an Eval Studio Workflow.
|
|
33
|
+
""" # noqa: E501
|
|
34
|
+
name: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Resource name of the Workflow in format of `workflows/{workflow_id}/nodes/{node_id}`.")
|
|
35
|
+
parent: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Resource name of the parent Workflow in format of `workflows/{workflow_id}/`.")
|
|
36
|
+
display_name: Optional[StrictStr] = Field(default=None, description="Human-readable name of the WorkflowNode.", alias="displayName")
|
|
37
|
+
description: Optional[StrictStr] = Field(default=None, description="Optional description of the WorkflowNode.")
|
|
38
|
+
create_time: Optional[datetime] = Field(default=None, description="Output only. Immutable. Creation time of the WorkflowNode.", alias="createTime")
|
|
39
|
+
creator: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Name of the user or service that requested creation of the WorkflowNode.")
|
|
40
|
+
update_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Last update time of the WorkflowNode.", alias="updateTime")
|
|
41
|
+
updater: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested update of the WorkflowNode.")
|
|
42
|
+
delete_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Deletion time of the WorkflowNode.", alias="deleteTime")
|
|
43
|
+
deleter: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested deletion of the WorkflowNode.")
|
|
44
|
+
type: Optional[V1WorkflowNodeType] = None
|
|
45
|
+
parameters: Optional[Dict[str, Any]] = Field(default=None, description="User-given parameters for the WorkflowNode.")
|
|
46
|
+
outputs: Optional[Dict[str, Any]] = Field(default=None, description="Output only. Computed outputs of the WorkflowNode.")
|
|
47
|
+
output_artifacts: Optional[List[V1WorkflowNodeArtifact]] = Field(default=None, description="Output only. Optional. List of the WorkflowNodeArtifacts produces by the WorkflowNode.", alias="outputArtifacts")
|
|
48
|
+
status: Optional[V1WorkflowNodeStatus] = None
|
|
49
|
+
attributes: Optional[V1WorkflowNodeAttributes] = None
|
|
50
|
+
processed_by_operation: Optional[StrictStr] = Field(default=None, description="Output only. Optional. Resource name of the latest Operation that has processed or is currently processing this WorkflowNode.", alias="processedByOperation")
|
|
51
|
+
__properties: ClassVar[List[str]] = ["name", "parent", "displayName", "description", "createTime", "creator", "updateTime", "updater", "deleteTime", "deleter", "type", "parameters", "outputs", "outputArtifacts", "status", "attributes", "processedByOperation"]
|
|
52
|
+
|
|
53
|
+
model_config = ConfigDict(
|
|
54
|
+
populate_by_name=True,
|
|
55
|
+
validate_assignment=True,
|
|
56
|
+
protected_namespaces=(),
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def to_str(self) -> str:
|
|
61
|
+
"""Returns the string representation of the model using alias"""
|
|
62
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
63
|
+
|
|
64
|
+
def to_json(self) -> str:
|
|
65
|
+
"""Returns the JSON representation of the model using alias"""
|
|
66
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
67
|
+
return json.dumps(self.to_dict())
|
|
68
|
+
|
|
69
|
+
@classmethod
|
|
70
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
71
|
+
"""Create an instance of V1WorkflowNode from a JSON string"""
|
|
72
|
+
return cls.from_dict(json.loads(json_str))
|
|
73
|
+
|
|
74
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
75
|
+
"""Return the dictionary representation of the model using alias.
|
|
76
|
+
|
|
77
|
+
This has the following differences from calling pydantic's
|
|
78
|
+
`self.model_dump(by_alias=True)`:
|
|
79
|
+
|
|
80
|
+
* `None` is only added to the output dict for nullable fields that
|
|
81
|
+
were set at model initialization. Other fields with value `None`
|
|
82
|
+
are ignored.
|
|
83
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
84
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
85
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
86
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
87
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
88
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
89
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
90
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
91
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
92
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
93
|
+
* OpenAPI `readOnly` fields are excluded.
|
|
94
|
+
"""
|
|
95
|
+
excluded_fields: Set[str] = set([
|
|
96
|
+
"name",
|
|
97
|
+
"parent",
|
|
98
|
+
"create_time",
|
|
99
|
+
"creator",
|
|
100
|
+
"update_time",
|
|
101
|
+
"updater",
|
|
102
|
+
"delete_time",
|
|
103
|
+
"deleter",
|
|
104
|
+
"outputs",
|
|
105
|
+
"output_artifacts",
|
|
106
|
+
"processed_by_operation",
|
|
107
|
+
])
|
|
108
|
+
|
|
109
|
+
_dict = self.model_dump(
|
|
110
|
+
by_alias=True,
|
|
111
|
+
exclude=excluded_fields,
|
|
112
|
+
exclude_none=True,
|
|
113
|
+
)
|
|
114
|
+
# override the default output from pydantic by calling `to_dict()` of each item in output_artifacts (list)
|
|
115
|
+
_items = []
|
|
116
|
+
if self.output_artifacts:
|
|
117
|
+
for _item in self.output_artifacts:
|
|
118
|
+
if _item:
|
|
119
|
+
_items.append(_item.to_dict())
|
|
120
|
+
_dict['outputArtifacts'] = _items
|
|
121
|
+
# override the default output from pydantic by calling `to_dict()` of attributes
|
|
122
|
+
if self.attributes:
|
|
123
|
+
_dict['attributes'] = self.attributes.to_dict()
|
|
124
|
+
return _dict
|
|
125
|
+
|
|
126
|
+
@classmethod
|
|
127
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
128
|
+
"""Create an instance of V1WorkflowNode from a dict"""
|
|
129
|
+
if obj is None:
|
|
130
|
+
return None
|
|
131
|
+
|
|
132
|
+
if not isinstance(obj, dict):
|
|
133
|
+
return cls.model_validate(obj)
|
|
134
|
+
|
|
135
|
+
_obj = cls.model_validate({
|
|
136
|
+
"name": obj.get("name"),
|
|
137
|
+
"parent": obj.get("parent"),
|
|
138
|
+
"displayName": obj.get("displayName"),
|
|
139
|
+
"description": obj.get("description"),
|
|
140
|
+
"createTime": obj.get("createTime"),
|
|
141
|
+
"creator": obj.get("creator"),
|
|
142
|
+
"updateTime": obj.get("updateTime"),
|
|
143
|
+
"updater": obj.get("updater"),
|
|
144
|
+
"deleteTime": obj.get("deleteTime"),
|
|
145
|
+
"deleter": obj.get("deleter"),
|
|
146
|
+
"type": obj.get("type"),
|
|
147
|
+
"parameters": obj.get("parameters"),
|
|
148
|
+
"outputs": obj.get("outputs"),
|
|
149
|
+
"outputArtifacts": [V1WorkflowNodeArtifact.from_dict(_item) for _item in obj["outputArtifacts"]] if obj.get("outputArtifacts") is not None else None,
|
|
150
|
+
"status": obj.get("status"),
|
|
151
|
+
"attributes": V1WorkflowNodeAttributes.from_dict(obj["attributes"]) if obj.get("attributes") is not None else None,
|
|
152
|
+
"processedByOperation": obj.get("processedByOperation")
|
|
153
|
+
})
|
|
154
|
+
return _obj
|
|
155
|
+
|
|
156
|
+
|