diff --git a/ci/linux/gen_protocol.sh b/ci/linux/gen_protocol.sh index d6aece9..40c8e03 100755 --- a/ci/linux/gen_protocol.sh +++ b/ci/linux/gen_protocol.sh @@ -12,3 +12,13 @@ protoc -I include/ -I src/ --python_out python/src/omotes_sdk_protocol/ ./src/wo protoc -I include/ -I src/ --mypy_out python/src/omotes_sdk_protocol/ ./src/workflow.proto touch python/src/omotes_sdk_protocol/__init__.py touch python/src/omotes_sdk_protocol/py.typed + +protoc -I include/ -I src/ --python_out python/src/omotes_sdk_protocol/ ./src/internal/task.proto +protoc -I include/ -I src/ --mypy_out python/src/omotes_sdk_protocol/ ./src/internal/task.proto +protoc -I include/ -I src/ --python_out python/src/omotes_sdk_protocol/ ./src/internal/task.proto +protoc -I include/ -I src/ --mypy_out python/src/omotes_sdk_protocol/ ./src/internal/task.proto +touch python/src/omotes_sdk_protocol/internal/__init__.py +touch python/src/omotes_sdk_protocol/internal/py.typed + +sed -i 's/import job_pb2/from .. import job_pb2/g' python/src/omotes_sdk_protocol/internal/task_pb2.py +sed -i 's/import job_pb2/from .. import job_pb2/g' python/src/omotes_sdk_protocol/internal/task_pb2.pyi diff --git a/python/src/omotes_sdk_protocol/internal/__init__.py b/python/src/omotes_sdk_protocol/internal/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/python/src/omotes_sdk_protocol/internal/py.typed b/python/src/omotes_sdk_protocol/internal/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/python/src/omotes_sdk_protocol/internal/task_pb2.py b/python/src/omotes_sdk_protocol/internal/task_pb2.py new file mode 100644 index 0000000..3622faf --- /dev/null +++ b/python/src/omotes_sdk_protocol/internal/task_pb2.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: internal/task.proto +# Protobuf Python Version: 4.25.2 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from .. import job_pb2 as job__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13internal/task.proto\x1a\tjob.proto\"\x80\x02\n\nTaskResult\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63\x65lery_task_id\x18\x02 \x01(\t\x12\x18\n\x10\x63\x65lery_task_type\x18\x06 \x01(\t\x12+\n\x0bresult_type\x18\x03 \x01(\x0e\x32\x16.TaskResult.ResultType\x12\x18\n\x0boutput_esdl\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04logs\x18\x05 \x01(\t\x12#\n\resdl_messages\x18\x07 \x03(\x0b\x32\x0c.EsdlMessage\"&\n\nResultType\x12\r\n\tSUCCEEDED\x10\x00\x12\t\n\x05\x45RROR\x10\x01\x42\x0e\n\x0c_output_esdl\"\xdf\x01\n\x12TaskProgressUpdate\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63\x65lery_task_id\x18\x02 \x01(\t\x12\x18\n\x10\x63\x65lery_task_type\x18\x05 \x01(\t\x12\x34\n\x06status\x18\x06 \x01(\x0e\x32\".TaskProgressUpdate.ProgressStatusH\x00\x12\x12\n\x08progress\x18\x07 \x01(\x01H\x00\x12\x0f\n\x07message\x18\x04 \x01(\t\"\x1b\n\x0eProgressStatus\x12\t\n\x05START\x10\x00\x42\x0f\n\rprogress_typeb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'internal.task_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals['_TASKRESULT']._serialized_start=35 + _globals['_TASKRESULT']._serialized_end=291 + _globals['_TASKRESULT_RESULTTYPE']._serialized_start=237 + _globals['_TASKRESULT_RESULTTYPE']._serialized_end=275 + _globals['_TASKPROGRESSUPDATE']._serialized_start=294 + _globals['_TASKPROGRESSUPDATE']._serialized_end=517 + _globals['_TASKPROGRESSUPDATE_PROGRESSSTATUS']._serialized_start=473 + _globals['_TASKPROGRESSUPDATE_PROGRESSSTATUS']._serialized_end=500 +# @@protoc_insertion_point(module_scope) diff --git a/python/src/omotes_sdk_protocol/internal/task_pb2.pyi b/python/src/omotes_sdk_protocol/internal/task_pb2.pyi new file mode 100644 index 0000000..be4285d --- /dev/null +++ b/python/src/omotes_sdk_protocol/internal/task_pb2.pyi @@ -0,0 +1,112 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +from .. import job_pb2 +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class TaskResult(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _ResultType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _ResultTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[TaskResult._ResultType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + SUCCEEDED: TaskResult._ResultType.ValueType # 0 + ERROR: TaskResult._ResultType.ValueType # 1 + + class ResultType(_ResultType, metaclass=_ResultTypeEnumTypeWrapper): ... + SUCCEEDED: TaskResult.ResultType.ValueType # 0 + ERROR: TaskResult.ResultType.ValueType # 1 + + JOB_ID_FIELD_NUMBER: builtins.int + CELERY_TASK_ID_FIELD_NUMBER: builtins.int + CELERY_TASK_TYPE_FIELD_NUMBER: builtins.int + RESULT_TYPE_FIELD_NUMBER: builtins.int + OUTPUT_ESDL_FIELD_NUMBER: builtins.int + LOGS_FIELD_NUMBER: builtins.int + ESDL_MESSAGES_FIELD_NUMBER: builtins.int + job_id: builtins.str + celery_task_id: builtins.str + celery_task_type: builtins.str + result_type: global___TaskResult.ResultType.ValueType + output_esdl: builtins.str + logs: builtins.str + @property + def esdl_messages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[job_pb2.EsdlMessage]: ... + def __init__( + self, + *, + job_id: builtins.str = ..., + celery_task_id: builtins.str = ..., + celery_task_type: builtins.str = ..., + result_type: global___TaskResult.ResultType.ValueType = ..., + output_esdl: builtins.str | None = ..., + logs: builtins.str = ..., + esdl_messages: collections.abc.Iterable[job_pb2.EsdlMessage] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_output_esdl", b"_output_esdl", "output_esdl", b"output_esdl"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_output_esdl", b"_output_esdl", "celery_task_id", b"celery_task_id", "celery_task_type", b"celery_task_type", "esdl_messages", b"esdl_messages", "job_id", b"job_id", "logs", b"logs", "output_esdl", b"output_esdl", "result_type", b"result_type"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["_output_esdl", b"_output_esdl"]) -> typing_extensions.Literal["output_esdl"] | None: ... + +global___TaskResult = TaskResult + +@typing_extensions.final +class TaskProgressUpdate(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _ProgressStatus: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _ProgressStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[TaskProgressUpdate._ProgressStatus.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + START: TaskProgressUpdate._ProgressStatus.ValueType # 0 + + class ProgressStatus(_ProgressStatus, metaclass=_ProgressStatusEnumTypeWrapper): ... + START: TaskProgressUpdate.ProgressStatus.ValueType # 0 + + JOB_ID_FIELD_NUMBER: builtins.int + CELERY_TASK_ID_FIELD_NUMBER: builtins.int + CELERY_TASK_TYPE_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + PROGRESS_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + job_id: builtins.str + celery_task_id: builtins.str + celery_task_type: builtins.str + status: global___TaskProgressUpdate.ProgressStatus.ValueType + progress: builtins.float + message: builtins.str + def __init__( + self, + *, + job_id: builtins.str = ..., + celery_task_id: builtins.str = ..., + celery_task_type: builtins.str = ..., + status: global___TaskProgressUpdate.ProgressStatus.ValueType = ..., + progress: builtins.float = ..., + message: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["progress", b"progress", "progress_type", b"progress_type", "status", b"status"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["celery_task_id", b"celery_task_id", "celery_task_type", b"celery_task_type", "job_id", b"job_id", "message", b"message", "progress", b"progress", "progress_type", b"progress_type", "status", b"status"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["progress_type", b"progress_type"]) -> typing_extensions.Literal["status", "progress"] | None: ... + +global___TaskProgressUpdate = TaskProgressUpdate diff --git a/python/src/omotes_sdk_protocol/job_pb2.py b/python/src/omotes_sdk_protocol/job_pb2.py index 28477da..13b5d8a 100644 --- a/python/src/omotes_sdk_protocol/job_pb2.py +++ b/python/src/omotes_sdk_protocol/job_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tjob.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xc6\x01\n\rJobSubmission\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x17\n\ntimeout_ms\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x15\n\rworkflow_type\x18\x03 \x01(\t\x12\x0c\n\x04\x65sdl\x18\x04 \x01(\t\x12,\n\x0bparams_dict\x18\x05 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x1a\n\rjob_reference\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_timeout_msB\x10\n\x0e_job_reference\"\xe6\x01\n\tJobResult\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12*\n\x0bresult_type\x18\x02 \x01(\x0e\x32\x15.JobResult.ResultType\x12\x18\n\x0boutput_esdl\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04logs\x18\x04 \x01(\t\x12#\n\resdl_messages\x18\x05 \x03(\x0b\x32\x0c.EsdlMessage\"B\n\nResultType\x12\r\n\tSUCCEEDED\x10\x00\x12\x0b\n\x07TIMEOUT\x10\x01\x12\t\n\x05\x45RROR\x10\x02\x12\r\n\tCANCELLED\x10\x03\x42\x0e\n\x0c_output_esdl\"\xa2\x01\n\x0b\x45sdlMessage\x12\x19\n\x11technical_message\x18\x01 \x01(\t\x12\'\n\x08severity\x18\x02 \x01(\x0e\x32\x15.EsdlMessage.Severity\x12\x16\n\x0e\x65sdl_object_id\x18\x03 \x01(\t\"7\n\x08Severity\x12\t\n\x05\x44\x45\x42UG\x10\x00\x12\x08\n\x04INFO\x10\x01\x12\x0b\n\x07WARNING\x10\x02\x12\t\n\x05\x45RROR\x10\x03\"D\n\x11JobProgressUpdate\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x10\n\x08progress\x18\x02 \x01(\x01\x12\x0f\n\x07message\x18\x03 \x01(\t\"\xa0\x01\n\x0fJobStatusUpdate\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12*\n\x06status\x18\x02 \x01(\x0e\x32\x1a.JobStatusUpdate.JobStatus\"S\n\tJobStatus\x12\x0e\n\nREGISTERED\x10\x00\x12\x0c\n\x08\x45NQUEUED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x0c\n\x08\x46INISHED\x10\x03\x12\r\n\tCANCELLED\x10\x04\"\x19\n\tJobCancel\x12\x0c\n\x04uuid\x18\x01 \x01(\tb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tjob.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xc6\x01\n\rJobSubmission\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x17\n\ntimeout_ms\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x15\n\rworkflow_type\x18\x03 \x01(\t\x12\x0c\n\x04\x65sdl\x18\x04 \x01(\t\x12,\n\x0bparams_dict\x18\x05 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x1a\n\rjob_reference\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_timeout_msB\x10\n\x0e_job_reference\"\xe6\x01\n\tJobResult\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12*\n\x0bresult_type\x18\x02 \x01(\x0e\x32\x15.JobResult.ResultType\x12\x18\n\x0boutput_esdl\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04logs\x18\x04 \x01(\t\x12#\n\resdl_messages\x18\x05 \x03(\x0b\x32\x0c.EsdlMessage\"B\n\nResultType\x12\r\n\tSUCCEEDED\x10\x00\x12\x0b\n\x07TIMEOUT\x10\x01\x12\t\n\x05\x45RROR\x10\x02\x12\r\n\tCANCELLED\x10\x03\x42\x0e\n\x0c_output_esdl\"\xba\x01\n\x0b\x45sdlMessage\x12\x19\n\x11technical_message\x18\x01 \x01(\t\x12\'\n\x08severity\x18\x02 \x01(\x0e\x32\x15.EsdlMessage.Severity\x12\x1b\n\x0e\x65sdl_object_id\x18\x03 \x01(\tH\x00\x88\x01\x01\"7\n\x08Severity\x12\t\n\x05\x44\x45\x42UG\x10\x00\x12\x08\n\x04INFO\x10\x01\x12\x0b\n\x07WARNING\x10\x02\x12\t\n\x05\x45RROR\x10\x03\x42\x11\n\x0f_esdl_object_id\"D\n\x11JobProgressUpdate\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x10\n\x08progress\x18\x02 \x01(\x01\x12\x0f\n\x07message\x18\x03 \x01(\t\"\xa0\x01\n\x0fJobStatusUpdate\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12*\n\x06status\x18\x02 \x01(\x0e\x32\x1a.JobStatusUpdate.JobStatus\"S\n\tJobStatus\x12\x0e\n\nREGISTERED\x10\x00\x12\x0c\n\x08\x45NQUEUED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x0c\n\x08\x46INISHED\x10\x03\x12\r\n\tCANCELLED\x10\x04\"\x19\n\tJobCancel\x12\x0c\n\x04uuid\x18\x01 \x01(\tb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,15 +29,15 @@ _globals['_JOBRESULT_RESULTTYPE']._serialized_start=393 _globals['_JOBRESULT_RESULTTYPE']._serialized_end=459 _globals['_ESDLMESSAGE']._serialized_start=478 - _globals['_ESDLMESSAGE']._serialized_end=640 - _globals['_ESDLMESSAGE_SEVERITY']._serialized_start=585 - _globals['_ESDLMESSAGE_SEVERITY']._serialized_end=640 - _globals['_JOBPROGRESSUPDATE']._serialized_start=642 - _globals['_JOBPROGRESSUPDATE']._serialized_end=710 - _globals['_JOBSTATUSUPDATE']._serialized_start=713 - _globals['_JOBSTATUSUPDATE']._serialized_end=873 - _globals['_JOBSTATUSUPDATE_JOBSTATUS']._serialized_start=790 - _globals['_JOBSTATUSUPDATE_JOBSTATUS']._serialized_end=873 - _globals['_JOBCANCEL']._serialized_start=875 - _globals['_JOBCANCEL']._serialized_end=900 + _globals['_ESDLMESSAGE']._serialized_end=664 + _globals['_ESDLMESSAGE_SEVERITY']._serialized_start=590 + _globals['_ESDLMESSAGE_SEVERITY']._serialized_end=645 + _globals['_JOBPROGRESSUPDATE']._serialized_start=666 + _globals['_JOBPROGRESSUPDATE']._serialized_end=734 + _globals['_JOBSTATUSUPDATE']._serialized_start=737 + _globals['_JOBSTATUSUPDATE']._serialized_end=897 + _globals['_JOBSTATUSUPDATE_JOBSTATUS']._serialized_start=814 + _globals['_JOBSTATUSUPDATE_JOBSTATUS']._serialized_end=897 + _globals['_JOBCANCEL']._serialized_start=899 + _globals['_JOBCANCEL']._serialized_end=924 # @@protoc_insertion_point(module_scope) diff --git a/python/src/omotes_sdk_protocol/job_pb2.pyi b/python/src/omotes_sdk_protocol/job_pb2.pyi index a9a9f83..96e01bb 100644 --- a/python/src/omotes_sdk_protocol/job_pb2.pyi +++ b/python/src/omotes_sdk_protocol/job_pb2.pyi @@ -137,9 +137,11 @@ class EsdlMessage(google.protobuf.message.Message): *, technical_message: builtins.str = ..., severity: global___EsdlMessage.Severity.ValueType = ..., - esdl_object_id: builtins.str = ..., + esdl_object_id: builtins.str | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["esdl_object_id", b"esdl_object_id", "severity", b"severity", "technical_message", b"technical_message"]) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_esdl_object_id", b"_esdl_object_id", "esdl_object_id", b"esdl_object_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_esdl_object_id", b"_esdl_object_id", "esdl_object_id", b"esdl_object_id", "severity", b"severity", "technical_message", b"technical_message"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["_esdl_object_id", b"_esdl_object_id"]) -> typing_extensions.Literal["esdl_object_id"] | None: ... global___EsdlMessage = EsdlMessage diff --git a/src/internal/task.proto b/src/internal/task.proto new file mode 100644 index 0000000..d6dd79c --- /dev/null +++ b/src/internal/task.proto @@ -0,0 +1,33 @@ +syntax = "proto3"; + +import "job.proto"; + +message TaskResult { + string job_id = 1; + string celery_task_id = 2; + string celery_task_type = 6; + ResultType result_type = 3; + optional string output_esdl = 4; + string logs = 5; + repeated EsdlMessage esdl_messages = 7; + + enum ResultType { + SUCCEEDED = 0; + ERROR = 1; + } +} + +message TaskProgressUpdate { + string job_id = 1; + string celery_task_id = 2; + string celery_task_type = 5; + oneof progress_type { + ProgressStatus status = 6; + double progress = 7; + } + string message = 4; + + enum ProgressStatus { + START = 0; + } +} diff --git a/src/job.proto b/src/job.proto index 00631c5..2635c03 100644 --- a/src/job.proto +++ b/src/job.proto @@ -28,7 +28,7 @@ message JobResult { message EsdlMessage { string technical_message = 1; Severity severity = 2; - string esdl_object_id = 3; // can be omitted for general energy system messages + optional string esdl_object_id = 3; // can be omitted for general energy system messages enum Severity { DEBUG = 0;