orca-python 0.5.0__py3-none-any.whl → 0.6.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.
- orca_python/__init__.py +22 -2
- orca_python/exceptions.py +4 -0
- orca_python/main.py +127 -14
- {orca_python-0.5.0.dist-info → orca_python-0.6.1.dist-info}/METADATA +1 -1
- orca_python-0.6.1.dist-info/RECORD +17 -0
- service_pb2.py +64 -50
- service_pb2.pyi +33 -2
- service_pb2_grpc.py +44 -0
- orca_python-0.5.0.dist-info/RECORD +0 -17
- {orca_python-0.5.0.dist-info → orca_python-0.6.1.dist-info}/LICENSE +0 -0
- {orca_python-0.5.0.dist-info → orca_python-0.6.1.dist-info}/WHEEL +0 -0
orca_python/__init__.py
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
-
from orca_python.main import
|
1
|
+
from orca_python.main import (
|
2
|
+
Window,
|
3
|
+
Processor,
|
4
|
+
EmitWindow,
|
5
|
+
NoneResult,
|
6
|
+
WindowType,
|
7
|
+
ArrayResult,
|
8
|
+
ValueResult,
|
9
|
+
StructResult,
|
10
|
+
ExecutionParams,
|
11
|
+
)
|
2
12
|
|
3
|
-
__all__ = [
|
13
|
+
__all__ = [
|
14
|
+
"Processor",
|
15
|
+
"EmitWindow",
|
16
|
+
"Window",
|
17
|
+
"WindowType",
|
18
|
+
"StructResult",
|
19
|
+
"ValueResult",
|
20
|
+
"ArrayResult",
|
21
|
+
"NoneResult",
|
22
|
+
"ExecutionParams",
|
23
|
+
]
|
orca_python/exceptions.py
CHANGED
@@ -6,6 +6,10 @@ class InvalidAlgorithmArgument(BaseOrcaException):
|
|
6
6
|
"""Raised when an argument to `@algorithm` is not correct"""
|
7
7
|
|
8
8
|
|
9
|
+
class InvalidAlgorithmReturnType(BaseOrcaException):
|
10
|
+
"""Raised when the return type of an algorithm is not valid"""
|
11
|
+
|
12
|
+
|
9
13
|
class InvalidDependency(BaseOrcaException):
|
10
14
|
"""Raised when a dependency is invalid"""
|
11
15
|
|
orca_python/main.py
CHANGED
@@ -19,10 +19,13 @@ logging.basicConfig(
|
|
19
19
|
)
|
20
20
|
|
21
21
|
import time
|
22
|
+
import types
|
23
|
+
import typing
|
22
24
|
from typing import (
|
23
25
|
Any,
|
24
26
|
Dict,
|
25
27
|
List,
|
28
|
+
Union,
|
26
29
|
TypeVar,
|
27
30
|
Callable,
|
28
31
|
Iterable,
|
@@ -31,6 +34,7 @@ from typing import (
|
|
31
34
|
Generator,
|
32
35
|
AsyncGenerator,
|
33
36
|
)
|
37
|
+
from inspect import signature
|
34
38
|
from concurrent import futures
|
35
39
|
from dataclasses import field, dataclass
|
36
40
|
|
@@ -42,7 +46,11 @@ from google.protobuf import json_format
|
|
42
46
|
from service_pb2_grpc import OrcaProcessorServicer
|
43
47
|
|
44
48
|
from orca_python import envs
|
45
|
-
from orca_python.exceptions import
|
49
|
+
from orca_python.exceptions import (
|
50
|
+
InvalidDependency,
|
51
|
+
InvalidAlgorithmArgument,
|
52
|
+
InvalidAlgorithmReturnType,
|
53
|
+
)
|
46
54
|
|
47
55
|
# Regex patterns for validation
|
48
56
|
ALGORITHM_NAME = r"^[A-Z][a-zA-Z0-9]*$"
|
@@ -50,18 +58,6 @@ SEMVER_PATTERN = r"^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$"
|
|
50
58
|
WINDOW_NAME = r"^[A-Z][a-zA-Z0-9]*$"
|
51
59
|
|
52
60
|
|
53
|
-
@dataclass
|
54
|
-
class ExecutionParams:
|
55
|
-
window: pb.Window
|
56
|
-
dependencies: Optional[Iterable[pb.AlgorithmResult]] = None
|
57
|
-
|
58
|
-
|
59
|
-
class AlgorithmFn(Protocol):
|
60
|
-
def __call__(self, params: ExecutionParams, *args: Any, **kwargs: Any) -> Any: ...
|
61
|
-
|
62
|
-
|
63
|
-
T = TypeVar("T", bound=AlgorithmFn)
|
64
|
-
|
65
61
|
LOGGER = logging.getLogger(__name__)
|
66
62
|
|
67
63
|
|
@@ -84,6 +80,74 @@ class WindowType:
|
|
84
80
|
)
|
85
81
|
|
86
82
|
|
83
|
+
@dataclass
|
84
|
+
class StructResult:
|
85
|
+
value: Dict[str, Any]
|
86
|
+
|
87
|
+
def __init__(self, value: Dict[str, Any]) -> None:
|
88
|
+
"""
|
89
|
+
Produce a struct/dictionary based result
|
90
|
+
|
91
|
+
Args:
|
92
|
+
value: The result to produce. e.g.: {'min': -1.1, 'median': 4.2, 'max': 5.0}
|
93
|
+
"""
|
94
|
+
self.value = value
|
95
|
+
|
96
|
+
|
97
|
+
@dataclass
|
98
|
+
class ValueResult:
|
99
|
+
value: float | int | bool
|
100
|
+
|
101
|
+
def __init__(self, value: float | int | bool) -> None:
|
102
|
+
"""
|
103
|
+
Produce a value result
|
104
|
+
|
105
|
+
Args:
|
106
|
+
value: The result to produce. E.g. 1.0
|
107
|
+
"""
|
108
|
+
self.value = value
|
109
|
+
|
110
|
+
|
111
|
+
@dataclass
|
112
|
+
class ArrayResult:
|
113
|
+
value: Iterable[float | int | bool]
|
114
|
+
|
115
|
+
def __init__(self, value: Iterable[float | int | bool]) -> None:
|
116
|
+
"""
|
117
|
+
Produce an array result
|
118
|
+
|
119
|
+
Args:
|
120
|
+
value: The result to produce. E.g. [1, 2, 3, 4, 5]
|
121
|
+
"""
|
122
|
+
self.value = value
|
123
|
+
|
124
|
+
|
125
|
+
class NoneResult:
|
126
|
+
"""
|
127
|
+
The `None` result type
|
128
|
+
"""
|
129
|
+
|
130
|
+
value: None = None
|
131
|
+
|
132
|
+
|
133
|
+
returnResult = StructResult | ArrayResult | ValueResult | NoneResult
|
134
|
+
|
135
|
+
|
136
|
+
@dataclass
|
137
|
+
class ExecutionParams:
|
138
|
+
window: pb.Window
|
139
|
+
dependencies: Optional[Iterable[pb.AlgorithmResult]] = None
|
140
|
+
|
141
|
+
|
142
|
+
class AlgorithmFn(Protocol):
|
143
|
+
def __call__(
|
144
|
+
self, params: ExecutionParams, *args: Any, **kwargs: Any
|
145
|
+
) -> returnResult: ...
|
146
|
+
|
147
|
+
|
148
|
+
T = TypeVar("T", bound=AlgorithmFn)
|
149
|
+
|
150
|
+
|
87
151
|
@dataclass
|
88
152
|
class Window:
|
89
153
|
time_from: int
|
@@ -144,6 +208,7 @@ class Algorithm:
|
|
144
208
|
exec_fn: AlgorithmFn
|
145
209
|
processor: str
|
146
210
|
runtime: str
|
211
|
+
result_type: returnResult
|
147
212
|
|
148
213
|
@property
|
149
214
|
def full_name(self) -> str:
|
@@ -539,6 +604,23 @@ class Processor(OrcaProcessorServicer): # type: ignore
|
|
539
604
|
algo_msg.name = algorithm.name
|
540
605
|
algo_msg.version = algorithm.version
|
541
606
|
|
607
|
+
# manage the return type of the algorithm
|
608
|
+
if algorithm.result_type == ValueResult: # type: ignore
|
609
|
+
result_type_pb = pb.ResultType.VALUE
|
610
|
+
elif algorithm.result_type == StructResult: # type: ignore
|
611
|
+
result_type_pb = pb.ResultType.STRUCT
|
612
|
+
elif algorithm.result_type == ArrayResult: # type: ignore
|
613
|
+
result_type_pb = pb.ResultType.ARRAY
|
614
|
+
elif algorithm.result_type == NoneResult: # type: ignore
|
615
|
+
result_type_pb = pb.ResultType.NONE
|
616
|
+
else:
|
617
|
+
raise InvalidAlgorithmReturnType(
|
618
|
+
f"Algorithm has return type {algorithm.result_type}, but expected one of `StructResult`, `ValueResult`, `ArrayResult`, `NoneResult`"
|
619
|
+
)
|
620
|
+
|
621
|
+
## add the result type
|
622
|
+
algo_msg.result_type = result_type_pb
|
623
|
+
|
542
624
|
# Add window type
|
543
625
|
algo_msg.window_type.name = algorithm.window_name
|
544
626
|
algo_msg.window_type.version = algorithm.window_version
|
@@ -653,7 +735,7 @@ class Processor(OrcaProcessorServicer): # type: ignore
|
|
653
735
|
params: ExecutionParams,
|
654
736
|
*args: Any,
|
655
737
|
**kwargs: Any,
|
656
|
-
) ->
|
738
|
+
) -> returnResult:
|
657
739
|
LOGGER.debug(f"Executing algorithm {name}_{version}")
|
658
740
|
try:
|
659
741
|
# setup ready for the algo
|
@@ -675,6 +757,13 @@ class Processor(OrcaProcessorServicer): # type: ignore
|
|
675
757
|
)
|
676
758
|
raise
|
677
759
|
|
760
|
+
sig = signature(algo)
|
761
|
+
returnType = sig.return_annotation
|
762
|
+
if not is_type_in_union(returnType, returnResult): # type: ignore
|
763
|
+
raise InvalidAlgorithmReturnType(
|
764
|
+
f"Algorithm has return type {sig.return_annotation}, but expected one of `StructResult`, `ValueResult`, `ArrayResult`, `NoneResult`"
|
765
|
+
)
|
766
|
+
|
678
767
|
algorithm = Algorithm(
|
679
768
|
name=name,
|
680
769
|
version=version,
|
@@ -684,6 +773,7 @@ class Processor(OrcaProcessorServicer): # type: ignore
|
|
684
773
|
exec_fn=wrapper,
|
685
774
|
processor=self._name,
|
686
775
|
runtime=sys.version,
|
776
|
+
result_type=returnType,
|
687
777
|
)
|
688
778
|
|
689
779
|
self._algorithmsSingleton._add_algorithm(algorithm.full_name, algorithm)
|
@@ -709,3 +799,26 @@ class Processor(OrcaProcessorServicer): # type: ignore
|
|
709
799
|
return wrapper # type: ignore[return-value]
|
710
800
|
|
711
801
|
return inner
|
802
|
+
|
803
|
+
|
804
|
+
def is_type_in_union(target_type, union_type): # type: ignore
|
805
|
+
"""
|
806
|
+
Check if target_type is contained within union_type.
|
807
|
+
Works with both new syntax (int | float) and typing.Union.
|
808
|
+
"""
|
809
|
+
try:
|
810
|
+
# handle new union syntax (Python 3.10+) - types.UnionType
|
811
|
+
if isinstance(union_type, types.UnionType):
|
812
|
+
return target_type in union_type.__args__
|
813
|
+
|
814
|
+
# handle typing.Union syntax
|
815
|
+
origin = getattr(typing, "get_origin", lambda x: None)(union_type)
|
816
|
+
if origin is Union:
|
817
|
+
args = getattr(typing, "get_args", lambda x: ())(union_type)
|
818
|
+
return target_type in args
|
819
|
+
|
820
|
+
# handle single type (not a union)
|
821
|
+
return target_type == union_type
|
822
|
+
|
823
|
+
except (AttributeError, TypeError):
|
824
|
+
return False
|
@@ -0,0 +1,17 @@
|
|
1
|
+
__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
service_pb2.py,sha256=Ni1OsAx9zdFxXR899zFymfP8ImOiSyUsVSFY6tAzeL0,18144
|
3
|
+
service_pb2.pyi,sha256=l10sFciQViitcSlb-D2IK03V3hzoQO9sBHC72Vi_F_w,12913
|
4
|
+
service_pb2_grpc.py,sha256=oT2vk9YFE4gnYGeyChYeg0DEmIzdF_EB8MKLyY1rSAU,19417
|
5
|
+
vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
+
vendor/validate_pb2.py,sha256=lyYYFtGDzHjs9ZHMUnQLcE_G5qYWfOluts0gm6m1D88,149437
|
7
|
+
vendor/validate_pb2.pyi,sha256=Qyebm_XUdrvo8As3XovHu7vVsHXYJtTdP3bYUmQEecs,30245
|
8
|
+
vendor/validate_pb2_grpc.py,sha256=qIlTS0MGHE7myQ7tCMbS-pPqA9FMZl_Hn9Mh_uq2o9o,896
|
9
|
+
orca_python/__init__.py,sha256=tHVOEF69iiLzbymMTuEKdbGSqeaAzpc-BiZY7VY1Gz4,362
|
10
|
+
orca_python/envs.py,sha256=zSuukNSpEw78VpSSIDAA9KRAurWedQMwx1qyQg9f8pk,560
|
11
|
+
orca_python/exceptions.py,sha256=WjkKGQvmS8Z7L63rIROnLFjA-8sGX5R9714xgD1j_7E,512
|
12
|
+
orca_python/main.py,sha256=S1bsbSIE1noljF6B9vfIUjSscN22rrwv82BOa6IVS7M,29408
|
13
|
+
orca_python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
+
orca_python-0.6.1.dist-info/LICENSE,sha256=sxb8X8qhbZ_JaCBFmoIriJzA-jelKmh86sAKQsIRN_I,1062
|
15
|
+
orca_python-0.6.1.dist-info/METADATA,sha256=WjSafqVX5FhJ47V4Yux_6ahcoULrmvp7qT_zohirkGY,3019
|
16
|
+
orca_python-0.6.1.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
17
|
+
orca_python-0.6.1.dist-info/RECORD,,
|
service_pb2.py
CHANGED
@@ -26,7 +26,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
|
|
26
26
|
from vendor import validate_pb2 as vendor_dot_validate__pb2
|
27
27
|
|
28
28
|
|
29
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rservice.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x15vendor/validate.proto\"\xb9\x02\n\x06Window\x12\x1d\n\ttime_from\x18\x01 \x01(\x04\x42\n\xbaH\x07\x32\x02 \x00\xc8\x01\x01\x12\x17\n\x07time_to\x18\x02 \x01(\x04\x42\x06\xbaH\x03\xc8\x01\x01\x12 \n\x10window_type_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12#\n\x13window_type_version\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x16\n\x06origin\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12)\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct:m\xbaHj\x1ah\n\x0ewindow.time_to\x12\x36`time_to` must be greater than or equal to `time_from`\x1a\x1ethis.time_to >= this.time_from\"X\n\nWindowType\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x17\n\x07version\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x1b\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\"\xa4\x01\n\x10WindowEmitStatus\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32\x1c.WindowEmitStatus.StatusEnumB\x06\xbaH\x03\xc8\x01\x01\"Z\n\nStatusEnum\x12\x1b\n\x17NO_TRIGGERED_ALGORITHMS\x10\x00\x12\x18\n\x14PROCESSING_TRIGGERED\x10\x01\x12\x15\n\x11TRIGGERING_FAILED\x10\x02\"\x87\x01\n\x13\x41lgorithmDependency\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x17\n\x07version\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x1e\n\x0eprocessor_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12!\n\x11processor_runtime\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\"\
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rservice.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x15vendor/validate.proto\"\xb9\x02\n\x06Window\x12\x1d\n\ttime_from\x18\x01 \x01(\x04\x42\n\xbaH\x07\x32\x02 \x00\xc8\x01\x01\x12\x17\n\x07time_to\x18\x02 \x01(\x04\x42\x06\xbaH\x03\xc8\x01\x01\x12 \n\x10window_type_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12#\n\x13window_type_version\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x16\n\x06origin\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12)\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct:m\xbaHj\x1ah\n\x0ewindow.time_to\x12\x36`time_to` must be greater than or equal to `time_from`\x1a\x1ethis.time_to >= this.time_from\"X\n\nWindowType\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x17\n\x07version\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x1b\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\"\xa4\x01\n\x10WindowEmitStatus\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32\x1c.WindowEmitStatus.StatusEnumB\x06\xbaH\x03\xc8\x01\x01\"Z\n\nStatusEnum\x12\x1b\n\x17NO_TRIGGERED_ALGORITHMS\x10\x00\x12\x18\n\x14PROCESSING_TRIGGERED\x10\x01\x12\x15\n\x11TRIGGERING_FAILED\x10\x02\"\x87\x01\n\x13\x41lgorithmDependency\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x17\n\x07version\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x1e\n\x0eprocessor_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12!\n\x11processor_runtime\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\"\xba\x01\n\tAlgorithm\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x17\n\x07version\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12(\n\x0bwindow_type\x18\x03 \x01(\x0b\x32\x0b.WindowTypeB\x06\xbaH\x03\xc8\x01\x01\x12*\n\x0c\x64\x65pendencies\x18\x04 \x03(\x0b\x32\x14.AlgorithmDependency\x12(\n\x0bresult_type\x18\x05 \x01(\x0e\x32\x0b.ResultTypeB\x06\xbaH\x03\xc8\x01\x01\"\x1c\n\nFloatArray\x12\x0e\n\x06values\x18\x01 \x03(\x02\"\xc7\x01\n\x06Result\x12%\n\x06status\x18\x01 \x01(\x0e\x32\r.ResultStatusB\x06\xbaH\x03\xc8\x01\x01\x12\x16\n\x0csingle_value\x18\x02 \x01(\x02H\x00\x12#\n\x0c\x66loat_values\x18\x03 \x01(\x0b\x32\x0b.FloatArrayH\x00\x12/\n\x0cstruct_value\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x12\x19\n\ttimestamp\x18\x05 \x01(\x03\x42\x06\xbaH\x03\xc8\x01\x01\x42\r\n\x0bresult_data\"\x98\x01\n\x15ProcessorRegistration\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x17\n\x07runtime\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x1e\n\x0e\x63onnection_str\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x30\n\x14supported_algorithms\x18\x04 \x03(\x0b\x32\n.AlgorithmB\x06\xbaH\x03\xc8\x01\x01\"\x96\x01\n\x0eProcessingTask\x12\x17\n\x07task_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12%\n\talgorithm\x18\x02 \x01(\x0b\x32\n.AlgorithmB\x06\xbaH\x03\xc8\x01\x01\x12\x1f\n\x06window\x18\x03 \x01(\x0b\x32\x07.WindowB\x06\xbaH\x03\xc8\x01\x01\x12#\n\x12\x64\x65pendency_results\x18\x04 \x03(\x0b\x32\x07.Result\"\x99\x01\n\x10\x45xecutionRequest\x12\x17\n\x07\x65xec_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x1f\n\x06window\x18\x02 \x01(\x0b\x32\x07.WindowB\x06\xbaH\x03\xc8\x01\x01\x12+\n\x11\x61lgorithm_results\x18\x03 \x03(\x0b\x32\x10.AlgorithmResult\x12\x1e\n\nalgorithms\x18\x04 \x03(\x0b\x32\n.Algorithm\"^\n\x0f\x45xecutionResult\x12\x17\n\x07\x65xec_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01\x12\x32\n\x10\x61lgorithm_result\x18\x03 \x01(\x0b\x32\x10.AlgorithmResultB\x06\xbaH\x03\xc8\x01\x01\"Y\n\x0f\x41lgorithmResult\x12%\n\talgorithm\x18\x01 \x01(\x0b\x32\n.AlgorithmB\x06\xbaH\x03\xc8\x01\x01\x12\x1f\n\x06result\x18\x02 \x01(\x0b\x32\x07.ResultB\x06\xbaH\x03\xc8\x01\x01\"+\n\x06Status\x12\x10\n\x08received\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"/\n\x12HealthCheckRequest\x12\x19\n\ttimestamp\x18\x01 \x01(\x03\x42\x06\xbaH\x03\xc8\x01\x01\"\xe3\x01\n\x13HealthCheckResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32\x1b.HealthCheckResponse.StatusB\x06\xbaH\x03\xc8\x01\x01\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\"\n\x07metrics\x18\x03 \x01(\x0b\x32\x11.ProcessorMetrics\"b\n\x06Status\x12\x12\n\x0eSTATUS_UNKNOWN\x10\x00\x12\x12\n\x0eSTATUS_SERVING\x10\x01\x12\x18\n\x14STATUS_TRANSITIONING\x10\x02\x12\x16\n\x12STATUS_NOT_SERVING\x10\x03\"k\n\x10ProcessorMetrics\x12\x14\n\x0c\x61\x63tive_tasks\x18\x01 \x01(\x05\x12\x14\n\x0cmemory_bytes\x18\x02 \x01(\x03\x12\x13\n\x0b\x63pu_percent\x18\x03 \x01(\x02\x12\x16\n\x0euptime_seconds\x18\x04 \x01(\x03\"\x10\n\x0eWindowTypeRead\"+\n\x0bWindowTypes\x12\x1c\n\x07windows\x18\x01 \x03(\x0b\x32\x0b.WindowType\"\x10\n\x0e\x41lgorithmsRead\"+\n\nAlgorithms\x12\x1d\n\talgorithm\x18\x01 \x03(\x0b\x32\n.Algorithm\"\x10\n\x0eProcessorsRead\"b\n\nProcessors\x12(\n\tprocessor\x18\x01 \x03(\x0b\x32\x15.Processors.Processor\x1a*\n\tProcessor\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07runtime\x18\x02 \x01(\t\"\x12\n\x10ResultsStatsRead\"\x1d\n\x0cResultsStats\x12\r\n\x05\x43ount\x18\x01 \x01(\x03\"p\n\x13\x41lgorithmFieldsRead\x12\x19\n\ttime_from\x18\x01 \x01(\x03\x42\x06\xbaH\x03\xc8\x01\x01\x12\x17\n\x07time_to\x18\x02 \x01(\x03\x42\x06\xbaH\x03\xc8\x01\x01\x12%\n\talgorithm\x18\x03 \x01(\x0b\x32\n.AlgorithmB\x06\xbaH\x03\xc8\x01\x01\" \n\x0f\x41lgorithmFields\x12\r\n\x05\x66ield\x18\x01 \x03(\t*K\n\nResultType\x12\x11\n\rNOT_SPECIFIED\x10\x00\x12\n\n\x06STRUCT\x10\x01\x12\t\n\x05VALUE\x10\x02\x12\t\n\x05\x41RRAY\x10\x03\x12\x08\n\x04NONE\x10\x04*p\n\x0cResultStatus\x12 \n\x1cRESULT_STATUS_HANDLED_FAILED\x10\x00\x12\"\n\x1eRESULT_STATUS_UNHANDLED_FAILED\x10\x01\x12\x1a\n\x16RESULT_STATUS_SUCEEDED\x10\x02\x32\xfa\x02\n\x08OrcaCore\x12\x34\n\x11RegisterProcessor\x12\x16.ProcessorRegistration\x1a\x07.Status\x12(\n\nEmitWindow\x12\x07.Window\x1a\x11.WindowEmitStatus\x12\x30\n\x0fReadWindowTypes\x12\x0f.WindowTypeRead\x1a\x0c.WindowTypes\x12.\n\x0eReadAlgorithms\x12\x0f.AlgorithmsRead\x1a\x0b.Algorithms\x12.\n\x0eReadProcessors\x12\x0f.ProcessorsRead\x1a\x0b.Processors\x12\x34\n\x10ReadResultsStats\x12\x11.ResultsStatsRead\x1a\r.ResultsStats\x12\x46\n\x1cReadResultFieldsForAlgorithm\x12\x14.AlgorithmFieldsRead\x1a\x10.AlgorithmFields2\x82\x01\n\rOrcaProcessor\x12\x37\n\x0e\x45xecuteDagPart\x12\x11.ExecutionRequest\x1a\x10.ExecutionResult0\x01\x12\x38\n\x0bHealthCheck\x12\x13.HealthCheckRequest\x1a\x14.HealthCheckResponseB\'Z%github.com/predixus/orca/protobufs/gob\x06proto3')
|
30
30
|
|
31
31
|
_globals = globals()
|
32
32
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -68,6 +68,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
68
68
|
_globals['_ALGORITHM'].fields_by_name['version']._serialized_options = b'\272H\003\310\001\001'
|
69
69
|
_globals['_ALGORITHM'].fields_by_name['window_type']._loaded_options = None
|
70
70
|
_globals['_ALGORITHM'].fields_by_name['window_type']._serialized_options = b'\272H\003\310\001\001'
|
71
|
+
_globals['_ALGORITHM'].fields_by_name['result_type']._loaded_options = None
|
72
|
+
_globals['_ALGORITHM'].fields_by_name['result_type']._serialized_options = b'\272H\003\310\001\001'
|
71
73
|
_globals['_RESULT'].fields_by_name['status']._loaded_options = None
|
72
74
|
_globals['_RESULT'].fields_by_name['status']._serialized_options = b'\272H\003\310\001\001'
|
73
75
|
_globals['_RESULT'].fields_by_name['timestamp']._loaded_options = None
|
@@ -102,8 +104,16 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
102
104
|
_globals['_HEALTHCHECKREQUEST'].fields_by_name['timestamp']._serialized_options = b'\272H\003\310\001\001'
|
103
105
|
_globals['_HEALTHCHECKRESPONSE'].fields_by_name['status']._loaded_options = None
|
104
106
|
_globals['_HEALTHCHECKRESPONSE'].fields_by_name['status']._serialized_options = b'\272H\003\310\001\001'
|
105
|
-
_globals['
|
106
|
-
_globals['
|
107
|
+
_globals['_ALGORITHMFIELDSREAD'].fields_by_name['time_from']._loaded_options = None
|
108
|
+
_globals['_ALGORITHMFIELDSREAD'].fields_by_name['time_from']._serialized_options = b'\272H\003\310\001\001'
|
109
|
+
_globals['_ALGORITHMFIELDSREAD'].fields_by_name['time_to']._loaded_options = None
|
110
|
+
_globals['_ALGORITHMFIELDSREAD'].fields_by_name['time_to']._serialized_options = b'\272H\003\310\001\001'
|
111
|
+
_globals['_ALGORITHMFIELDSREAD'].fields_by_name['algorithm']._loaded_options = None
|
112
|
+
_globals['_ALGORITHMFIELDSREAD'].fields_by_name['algorithm']._serialized_options = b'\272H\003\310\001\001'
|
113
|
+
_globals['_RESULTTYPE']._serialized_start=2729
|
114
|
+
_globals['_RESULTTYPE']._serialized_end=2804
|
115
|
+
_globals['_RESULTSTATUS']._serialized_start=2806
|
116
|
+
_globals['_RESULTSTATUS']._serialized_end=2918
|
107
117
|
_globals['_WINDOW']._serialized_start=71
|
108
118
|
_globals['_WINDOW']._serialized_end=384
|
109
119
|
_globals['_WINDOWTYPE']._serialized_start=386
|
@@ -115,51 +125,55 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
115
125
|
_globals['_ALGORITHMDEPENDENCY']._serialized_start=644
|
116
126
|
_globals['_ALGORITHMDEPENDENCY']._serialized_end=779
|
117
127
|
_globals['_ALGORITHM']._serialized_start=782
|
118
|
-
_globals['_ALGORITHM']._serialized_end=
|
119
|
-
_globals['_FLOATARRAY']._serialized_start=
|
120
|
-
_globals['_FLOATARRAY']._serialized_end=
|
121
|
-
_globals['_RESULT']._serialized_start=
|
122
|
-
_globals['_RESULT']._serialized_end=
|
123
|
-
_globals['_PROCESSORREGISTRATION']._serialized_start=
|
124
|
-
_globals['_PROCESSORREGISTRATION']._serialized_end=
|
125
|
-
_globals['_PROCESSINGTASK']._serialized_start=
|
126
|
-
_globals['_PROCESSINGTASK']._serialized_end=
|
127
|
-
_globals['_EXECUTIONREQUEST']._serialized_start=
|
128
|
-
_globals['_EXECUTIONREQUEST']._serialized_end=
|
129
|
-
_globals['_EXECUTIONRESULT']._serialized_start=
|
130
|
-
_globals['_EXECUTIONRESULT']._serialized_end=
|
131
|
-
_globals['_ALGORITHMRESULT']._serialized_start=
|
132
|
-
_globals['_ALGORITHMRESULT']._serialized_end=
|
133
|
-
_globals['_STATUS']._serialized_start=
|
134
|
-
_globals['_STATUS']._serialized_end=
|
135
|
-
_globals['_HEALTHCHECKREQUEST']._serialized_start=
|
136
|
-
_globals['_HEALTHCHECKREQUEST']._serialized_end=
|
137
|
-
_globals['_HEALTHCHECKRESPONSE']._serialized_start=
|
138
|
-
_globals['_HEALTHCHECKRESPONSE']._serialized_end=
|
139
|
-
_globals['_HEALTHCHECKRESPONSE_STATUS']._serialized_start=
|
140
|
-
_globals['_HEALTHCHECKRESPONSE_STATUS']._serialized_end=
|
141
|
-
_globals['_PROCESSORMETRICS']._serialized_start=
|
142
|
-
_globals['_PROCESSORMETRICS']._serialized_end=
|
143
|
-
_globals['_WINDOWTYPEREAD']._serialized_start=
|
144
|
-
_globals['_WINDOWTYPEREAD']._serialized_end=
|
145
|
-
_globals['_WINDOWTYPES']._serialized_start=
|
146
|
-
_globals['_WINDOWTYPES']._serialized_end=
|
147
|
-
_globals['_ALGORITHMSREAD']._serialized_start=
|
148
|
-
_globals['_ALGORITHMSREAD']._serialized_end=
|
149
|
-
_globals['_ALGORITHMS']._serialized_start=
|
150
|
-
_globals['_ALGORITHMS']._serialized_end=
|
151
|
-
_globals['_PROCESSORSREAD']._serialized_start=
|
152
|
-
_globals['_PROCESSORSREAD']._serialized_end=
|
153
|
-
_globals['_PROCESSORS']._serialized_start=
|
154
|
-
_globals['_PROCESSORS']._serialized_end=
|
155
|
-
_globals['_PROCESSORS_PROCESSOR']._serialized_start=
|
156
|
-
_globals['_PROCESSORS_PROCESSOR']._serialized_end=
|
157
|
-
_globals['_RESULTSSTATSREAD']._serialized_start=
|
158
|
-
_globals['_RESULTSSTATSREAD']._serialized_end=
|
159
|
-
_globals['_RESULTSSTATS']._serialized_start=
|
160
|
-
_globals['_RESULTSSTATS']._serialized_end=
|
161
|
-
_globals['
|
162
|
-
_globals['
|
163
|
-
_globals['
|
164
|
-
_globals['
|
128
|
+
_globals['_ALGORITHM']._serialized_end=968
|
129
|
+
_globals['_FLOATARRAY']._serialized_start=970
|
130
|
+
_globals['_FLOATARRAY']._serialized_end=998
|
131
|
+
_globals['_RESULT']._serialized_start=1001
|
132
|
+
_globals['_RESULT']._serialized_end=1200
|
133
|
+
_globals['_PROCESSORREGISTRATION']._serialized_start=1203
|
134
|
+
_globals['_PROCESSORREGISTRATION']._serialized_end=1355
|
135
|
+
_globals['_PROCESSINGTASK']._serialized_start=1358
|
136
|
+
_globals['_PROCESSINGTASK']._serialized_end=1508
|
137
|
+
_globals['_EXECUTIONREQUEST']._serialized_start=1511
|
138
|
+
_globals['_EXECUTIONREQUEST']._serialized_end=1664
|
139
|
+
_globals['_EXECUTIONRESULT']._serialized_start=1666
|
140
|
+
_globals['_EXECUTIONRESULT']._serialized_end=1760
|
141
|
+
_globals['_ALGORITHMRESULT']._serialized_start=1762
|
142
|
+
_globals['_ALGORITHMRESULT']._serialized_end=1851
|
143
|
+
_globals['_STATUS']._serialized_start=1853
|
144
|
+
_globals['_STATUS']._serialized_end=1896
|
145
|
+
_globals['_HEALTHCHECKREQUEST']._serialized_start=1898
|
146
|
+
_globals['_HEALTHCHECKREQUEST']._serialized_end=1945
|
147
|
+
_globals['_HEALTHCHECKRESPONSE']._serialized_start=1948
|
148
|
+
_globals['_HEALTHCHECKRESPONSE']._serialized_end=2175
|
149
|
+
_globals['_HEALTHCHECKRESPONSE_STATUS']._serialized_start=2077
|
150
|
+
_globals['_HEALTHCHECKRESPONSE_STATUS']._serialized_end=2175
|
151
|
+
_globals['_PROCESSORMETRICS']._serialized_start=2177
|
152
|
+
_globals['_PROCESSORMETRICS']._serialized_end=2284
|
153
|
+
_globals['_WINDOWTYPEREAD']._serialized_start=2286
|
154
|
+
_globals['_WINDOWTYPEREAD']._serialized_end=2302
|
155
|
+
_globals['_WINDOWTYPES']._serialized_start=2304
|
156
|
+
_globals['_WINDOWTYPES']._serialized_end=2347
|
157
|
+
_globals['_ALGORITHMSREAD']._serialized_start=2349
|
158
|
+
_globals['_ALGORITHMSREAD']._serialized_end=2365
|
159
|
+
_globals['_ALGORITHMS']._serialized_start=2367
|
160
|
+
_globals['_ALGORITHMS']._serialized_end=2410
|
161
|
+
_globals['_PROCESSORSREAD']._serialized_start=2412
|
162
|
+
_globals['_PROCESSORSREAD']._serialized_end=2428
|
163
|
+
_globals['_PROCESSORS']._serialized_start=2430
|
164
|
+
_globals['_PROCESSORS']._serialized_end=2528
|
165
|
+
_globals['_PROCESSORS_PROCESSOR']._serialized_start=2486
|
166
|
+
_globals['_PROCESSORS_PROCESSOR']._serialized_end=2528
|
167
|
+
_globals['_RESULTSSTATSREAD']._serialized_start=2530
|
168
|
+
_globals['_RESULTSSTATSREAD']._serialized_end=2548
|
169
|
+
_globals['_RESULTSSTATS']._serialized_start=2550
|
170
|
+
_globals['_RESULTSSTATS']._serialized_end=2579
|
171
|
+
_globals['_ALGORITHMFIELDSREAD']._serialized_start=2581
|
172
|
+
_globals['_ALGORITHMFIELDSREAD']._serialized_end=2693
|
173
|
+
_globals['_ALGORITHMFIELDS']._serialized_start=2695
|
174
|
+
_globals['_ALGORITHMFIELDS']._serialized_end=2727
|
175
|
+
_globals['_ORCACORE']._serialized_start=2921
|
176
|
+
_globals['_ORCACORE']._serialized_end=3299
|
177
|
+
_globals['_ORCAPROCESSOR']._serialized_start=3302
|
178
|
+
_globals['_ORCAPROCESSOR']._serialized_end=3432
|
165
179
|
# @@protoc_insertion_point(module_scope)
|
service_pb2.pyi
CHANGED
@@ -8,11 +8,24 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
|
8
8
|
|
9
9
|
DESCRIPTOR: _descriptor.FileDescriptor
|
10
10
|
|
11
|
+
class ResultType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
12
|
+
__slots__ = ()
|
13
|
+
NOT_SPECIFIED: _ClassVar[ResultType]
|
14
|
+
STRUCT: _ClassVar[ResultType]
|
15
|
+
VALUE: _ClassVar[ResultType]
|
16
|
+
ARRAY: _ClassVar[ResultType]
|
17
|
+
NONE: _ClassVar[ResultType]
|
18
|
+
|
11
19
|
class ResultStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
12
20
|
__slots__ = ()
|
13
21
|
RESULT_STATUS_HANDLED_FAILED: _ClassVar[ResultStatus]
|
14
22
|
RESULT_STATUS_UNHANDLED_FAILED: _ClassVar[ResultStatus]
|
15
23
|
RESULT_STATUS_SUCEEDED: _ClassVar[ResultStatus]
|
24
|
+
NOT_SPECIFIED: ResultType
|
25
|
+
STRUCT: ResultType
|
26
|
+
VALUE: ResultType
|
27
|
+
ARRAY: ResultType
|
28
|
+
NONE: ResultType
|
16
29
|
RESULT_STATUS_HANDLED_FAILED: ResultStatus
|
17
30
|
RESULT_STATUS_UNHANDLED_FAILED: ResultStatus
|
18
31
|
RESULT_STATUS_SUCEEDED: ResultStatus
|
@@ -70,16 +83,18 @@ class AlgorithmDependency(_message.Message):
|
|
70
83
|
def __init__(self, name: _Optional[str] = ..., version: _Optional[str] = ..., processor_name: _Optional[str] = ..., processor_runtime: _Optional[str] = ...) -> None: ...
|
71
84
|
|
72
85
|
class Algorithm(_message.Message):
|
73
|
-
__slots__ = ("name", "version", "window_type", "dependencies")
|
86
|
+
__slots__ = ("name", "version", "window_type", "dependencies", "result_type")
|
74
87
|
NAME_FIELD_NUMBER: _ClassVar[int]
|
75
88
|
VERSION_FIELD_NUMBER: _ClassVar[int]
|
76
89
|
WINDOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
77
90
|
DEPENDENCIES_FIELD_NUMBER: _ClassVar[int]
|
91
|
+
RESULT_TYPE_FIELD_NUMBER: _ClassVar[int]
|
78
92
|
name: str
|
79
93
|
version: str
|
80
94
|
window_type: WindowType
|
81
95
|
dependencies: _containers.RepeatedCompositeFieldContainer[AlgorithmDependency]
|
82
|
-
|
96
|
+
result_type: ResultType
|
97
|
+
def __init__(self, name: _Optional[str] = ..., version: _Optional[str] = ..., window_type: _Optional[_Union[WindowType, _Mapping]] = ..., dependencies: _Optional[_Iterable[_Union[AlgorithmDependency, _Mapping]]] = ..., result_type: _Optional[_Union[ResultType, str]] = ...) -> None: ...
|
83
98
|
|
84
99
|
class FloatArray(_message.Message):
|
85
100
|
__slots__ = ("values",)
|
@@ -245,3 +260,19 @@ class ResultsStats(_message.Message):
|
|
245
260
|
COUNT_FIELD_NUMBER: _ClassVar[int]
|
246
261
|
Count: int
|
247
262
|
def __init__(self, Count: _Optional[int] = ...) -> None: ...
|
263
|
+
|
264
|
+
class AlgorithmFieldsRead(_message.Message):
|
265
|
+
__slots__ = ("time_from", "time_to", "algorithm")
|
266
|
+
TIME_FROM_FIELD_NUMBER: _ClassVar[int]
|
267
|
+
TIME_TO_FIELD_NUMBER: _ClassVar[int]
|
268
|
+
ALGORITHM_FIELD_NUMBER: _ClassVar[int]
|
269
|
+
time_from: int
|
270
|
+
time_to: int
|
271
|
+
algorithm: Algorithm
|
272
|
+
def __init__(self, time_from: _Optional[int] = ..., time_to: _Optional[int] = ..., algorithm: _Optional[_Union[Algorithm, _Mapping]] = ...) -> None: ...
|
273
|
+
|
274
|
+
class AlgorithmFields(_message.Message):
|
275
|
+
__slots__ = ("field",)
|
276
|
+
FIELD_FIELD_NUMBER: _ClassVar[int]
|
277
|
+
field: _containers.RepeatedScalarFieldContainer[str]
|
278
|
+
def __init__(self, field: _Optional[_Iterable[str]] = ...) -> None: ...
|
service_pb2_grpc.py
CHANGED
@@ -70,6 +70,11 @@ class OrcaCoreStub(object):
|
|
70
70
|
request_serializer=service__pb2.ResultsStatsRead.SerializeToString,
|
71
71
|
response_deserializer=service__pb2.ResultsStats.FromString,
|
72
72
|
_registered_method=True)
|
73
|
+
self.ReadResultFieldsForAlgorithm = channel.unary_unary(
|
74
|
+
'/OrcaCore/ReadResultFieldsForAlgorithm',
|
75
|
+
request_serializer=service__pb2.AlgorithmFieldsRead.SerializeToString,
|
76
|
+
response_deserializer=service__pb2.AlgorithmFields.FromString,
|
77
|
+
_registered_method=True)
|
73
78
|
|
74
79
|
|
75
80
|
class OrcaCoreServicer(object):
|
@@ -120,6 +125,13 @@ class OrcaCoreServicer(object):
|
|
120
125
|
context.set_details('Method not implemented!')
|
121
126
|
raise NotImplementedError('Method not implemented!')
|
122
127
|
|
128
|
+
def ReadResultFieldsForAlgorithm(self, request, context):
|
129
|
+
"""rpc ReadResultsForAlgorithm(AlgorithmResultsRead) returns (AlgorithmResults);
|
130
|
+
"""
|
131
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
132
|
+
context.set_details('Method not implemented!')
|
133
|
+
raise NotImplementedError('Method not implemented!')
|
134
|
+
|
123
135
|
|
124
136
|
def add_OrcaCoreServicer_to_server(servicer, server):
|
125
137
|
rpc_method_handlers = {
|
@@ -153,6 +165,11 @@ def add_OrcaCoreServicer_to_server(servicer, server):
|
|
153
165
|
request_deserializer=service__pb2.ResultsStatsRead.FromString,
|
154
166
|
response_serializer=service__pb2.ResultsStats.SerializeToString,
|
155
167
|
),
|
168
|
+
'ReadResultFieldsForAlgorithm': grpc.unary_unary_rpc_method_handler(
|
169
|
+
servicer.ReadResultFieldsForAlgorithm,
|
170
|
+
request_deserializer=service__pb2.AlgorithmFieldsRead.FromString,
|
171
|
+
response_serializer=service__pb2.AlgorithmFields.SerializeToString,
|
172
|
+
),
|
156
173
|
}
|
157
174
|
generic_handler = grpc.method_handlers_generic_handler(
|
158
175
|
'OrcaCore', rpc_method_handlers)
|
@@ -332,6 +349,33 @@ class OrcaCore(object):
|
|
332
349
|
metadata,
|
333
350
|
_registered_method=True)
|
334
351
|
|
352
|
+
@staticmethod
|
353
|
+
def ReadResultFieldsForAlgorithm(request,
|
354
|
+
target,
|
355
|
+
options=(),
|
356
|
+
channel_credentials=None,
|
357
|
+
call_credentials=None,
|
358
|
+
insecure=False,
|
359
|
+
compression=None,
|
360
|
+
wait_for_ready=None,
|
361
|
+
timeout=None,
|
362
|
+
metadata=None):
|
363
|
+
return grpc.experimental.unary_unary(
|
364
|
+
request,
|
365
|
+
target,
|
366
|
+
'/OrcaCore/ReadResultFieldsForAlgorithm',
|
367
|
+
service__pb2.AlgorithmFieldsRead.SerializeToString,
|
368
|
+
service__pb2.AlgorithmFields.FromString,
|
369
|
+
options,
|
370
|
+
channel_credentials,
|
371
|
+
insecure,
|
372
|
+
call_credentials,
|
373
|
+
compression,
|
374
|
+
wait_for_ready,
|
375
|
+
timeout,
|
376
|
+
metadata,
|
377
|
+
_registered_method=True)
|
378
|
+
|
335
379
|
|
336
380
|
class OrcaProcessorStub(object):
|
337
381
|
"""OrcaProcessor defines the interface that each processing node must implement.
|
@@ -1,17 +0,0 @@
|
|
1
|
-
__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
service_pb2.py,sha256=O9Z-UawI0OCuztUEooLmDwx-FMwnTnhKswx3sH1fuGY,16422
|
3
|
-
service_pb2.pyi,sha256=aM7M31KZljN9OMFh1MIkyhEWl8xglhq5NKsV1G06Rpw,11724
|
4
|
-
service_pb2_grpc.py,sha256=fh82JLm4Y0wOOabMfbrP2qoq7QJ67CRE3Xs9Igqp7ns,17598
|
5
|
-
vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
vendor/validate_pb2.py,sha256=lyYYFtGDzHjs9ZHMUnQLcE_G5qYWfOluts0gm6m1D88,149437
|
7
|
-
vendor/validate_pb2.pyi,sha256=Qyebm_XUdrvo8As3XovHu7vVsHXYJtTdP3bYUmQEecs,30245
|
8
|
-
vendor/validate_pb2_grpc.py,sha256=qIlTS0MGHE7myQ7tCMbS-pPqA9FMZl_Hn9Mh_uq2o9o,896
|
9
|
-
orca_python/__init__.py,sha256=AiOoJCsZEDqR6r-pkjgyfA9GbA2poIASZtn4lSSaBGc,170
|
10
|
-
orca_python/envs.py,sha256=zSuukNSpEw78VpSSIDAA9KRAurWedQMwx1qyQg9f8pk,560
|
11
|
-
orca_python/exceptions.py,sha256=Z9iJg6tKpnrNhDxQlVvG5xpgjGbaiMNAeFkwMonM-PM,390
|
12
|
-
orca_python/main.py,sha256=DdD84lOZk-GBi4d8v4Fc-MRPF4b0LPnmeJ2U2Kxnq3c,26103
|
13
|
-
orca_python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
-
orca_python-0.5.0.dist-info/LICENSE,sha256=sxb8X8qhbZ_JaCBFmoIriJzA-jelKmh86sAKQsIRN_I,1062
|
15
|
-
orca_python-0.5.0.dist-info/METADATA,sha256=HQqIUzB9oLM3agqWhszUX0fDxWhfGn4eIP5Youl7KU0,3019
|
16
|
-
orca_python-0.5.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
17
|
-
orca_python-0.5.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|