orca-python 0.5.0__py3-none-any.whl → 0.6.0__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 +125 -14
- {orca_python-0.5.0.dist-info → orca_python-0.6.0.dist-info}/METADATA +1 -1
- orca_python-0.6.0.dist-info/RECORD +17 -0
- service_pb2.py +64 -50
- service_pb2.pyi +31 -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.0.dist-info}/LICENSE +0 -0
- {orca_python-0.5.0.dist-info → orca_python-0.6.0.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,21 @@ 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
|
+
else:
|
615
|
+
raise InvalidAlgorithmReturnType(
|
616
|
+
f"Algorithm has return type {algorithm.result_type}, but expected one of `StructResult`, `ValueResult`, `ArrayResult`"
|
617
|
+
)
|
618
|
+
|
619
|
+
## add the result type
|
620
|
+
algo_msg.result_type = result_type_pb
|
621
|
+
|
542
622
|
# Add window type
|
543
623
|
algo_msg.window_type.name = algorithm.window_name
|
544
624
|
algo_msg.window_type.version = algorithm.window_version
|
@@ -653,7 +733,7 @@ class Processor(OrcaProcessorServicer): # type: ignore
|
|
653
733
|
params: ExecutionParams,
|
654
734
|
*args: Any,
|
655
735
|
**kwargs: Any,
|
656
|
-
) ->
|
736
|
+
) -> returnResult:
|
657
737
|
LOGGER.debug(f"Executing algorithm {name}_{version}")
|
658
738
|
try:
|
659
739
|
# setup ready for the algo
|
@@ -675,6 +755,13 @@ class Processor(OrcaProcessorServicer): # type: ignore
|
|
675
755
|
)
|
676
756
|
raise
|
677
757
|
|
758
|
+
sig = signature(algo)
|
759
|
+
returnType = sig.return_annotation
|
760
|
+
if not is_type_in_union(returnType, returnResult): # type: ignore
|
761
|
+
raise InvalidAlgorithmReturnType(
|
762
|
+
f"Algorithm has return type {sig.return_annotation}, but expected one of `StructResult`, `ValueResult`, `ArrayResult`"
|
763
|
+
)
|
764
|
+
|
678
765
|
algorithm = Algorithm(
|
679
766
|
name=name,
|
680
767
|
version=version,
|
@@ -684,6 +771,7 @@ class Processor(OrcaProcessorServicer): # type: ignore
|
|
684
771
|
exec_fn=wrapper,
|
685
772
|
processor=self._name,
|
686
773
|
runtime=sys.version,
|
774
|
+
result_type=returnType,
|
687
775
|
)
|
688
776
|
|
689
777
|
self._algorithmsSingleton._add_algorithm(algorithm.full_name, algorithm)
|
@@ -709,3 +797,26 @@ class Processor(OrcaProcessorServicer): # type: ignore
|
|
709
797
|
return wrapper # type: ignore[return-value]
|
710
798
|
|
711
799
|
return inner
|
800
|
+
|
801
|
+
|
802
|
+
def is_type_in_union(target_type, union_type): # type: ignore
|
803
|
+
"""
|
804
|
+
Check if target_type is contained within union_type.
|
805
|
+
Works with both new syntax (int | float) and typing.Union.
|
806
|
+
"""
|
807
|
+
try:
|
808
|
+
# handle new union syntax (Python 3.10+) - types.UnionType
|
809
|
+
if isinstance(union_type, types.UnionType):
|
810
|
+
return target_type in union_type.__args__
|
811
|
+
|
812
|
+
# handle typing.Union syntax
|
813
|
+
origin = getattr(typing, "get_origin", lambda x: None)(union_type)
|
814
|
+
if origin is Union:
|
815
|
+
args = getattr(typing, "get_args", lambda x: ())(union_type)
|
816
|
+
return target_type in args
|
817
|
+
|
818
|
+
# handle single type (not a union)
|
819
|
+
return target_type == union_type
|
820
|
+
|
821
|
+
except (AttributeError, TypeError):
|
822
|
+
return False
|
@@ -0,0 +1,17 @@
|
|
1
|
+
__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
service_pb2.py,sha256=XlYuxS2TID0mqNml0QXYxMkVpgjTgPSr6E4eLbKaehw,18118
|
3
|
+
service_pb2.pyi,sha256=tXyZKEenHndn1pmW5Fx6suN4_eo1OeWxqfuPyW1xe7w,12864
|
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=fbW-24pOH2UQLMuIoajoJceXSU14s7TYfTX5rIKcEKE,29258
|
13
|
+
orca_python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
+
orca_python-0.6.0.dist-info/LICENSE,sha256=sxb8X8qhbZ_JaCBFmoIriJzA-jelKmh86sAKQsIRN_I,1062
|
15
|
+
orca_python-0.6.0.dist-info/METADATA,sha256=q--aGZMXF6kijw522_kc5FMiR57lbn_qbuoPmfTrZh4,3019
|
16
|
+
orca_python-0.6.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
17
|
+
orca_python-0.6.0.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*A\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*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=2794
|
115
|
+
_globals['_RESULTSTATUS']._serialized_start=2796
|
116
|
+
_globals['_RESULTSTATUS']._serialized_end=2908
|
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=2911
|
176
|
+
_globals['_ORCACORE']._serialized_end=3289
|
177
|
+
_globals['_ORCAPROCESSOR']._serialized_start=3292
|
178
|
+
_globals['_ORCAPROCESSOR']._serialized_end=3422
|
165
179
|
# @@protoc_insertion_point(module_scope)
|
service_pb2.pyi
CHANGED
@@ -8,11 +8,22 @@ 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
|
+
|
11
18
|
class ResultStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
12
19
|
__slots__ = ()
|
13
20
|
RESULT_STATUS_HANDLED_FAILED: _ClassVar[ResultStatus]
|
14
21
|
RESULT_STATUS_UNHANDLED_FAILED: _ClassVar[ResultStatus]
|
15
22
|
RESULT_STATUS_SUCEEDED: _ClassVar[ResultStatus]
|
23
|
+
NOT_SPECIFIED: ResultType
|
24
|
+
STRUCT: ResultType
|
25
|
+
VALUE: ResultType
|
26
|
+
ARRAY: ResultType
|
16
27
|
RESULT_STATUS_HANDLED_FAILED: ResultStatus
|
17
28
|
RESULT_STATUS_UNHANDLED_FAILED: ResultStatus
|
18
29
|
RESULT_STATUS_SUCEEDED: ResultStatus
|
@@ -70,16 +81,18 @@ class AlgorithmDependency(_message.Message):
|
|
70
81
|
def __init__(self, name: _Optional[str] = ..., version: _Optional[str] = ..., processor_name: _Optional[str] = ..., processor_runtime: _Optional[str] = ...) -> None: ...
|
71
82
|
|
72
83
|
class Algorithm(_message.Message):
|
73
|
-
__slots__ = ("name", "version", "window_type", "dependencies")
|
84
|
+
__slots__ = ("name", "version", "window_type", "dependencies", "result_type")
|
74
85
|
NAME_FIELD_NUMBER: _ClassVar[int]
|
75
86
|
VERSION_FIELD_NUMBER: _ClassVar[int]
|
76
87
|
WINDOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
77
88
|
DEPENDENCIES_FIELD_NUMBER: _ClassVar[int]
|
89
|
+
RESULT_TYPE_FIELD_NUMBER: _ClassVar[int]
|
78
90
|
name: str
|
79
91
|
version: str
|
80
92
|
window_type: WindowType
|
81
93
|
dependencies: _containers.RepeatedCompositeFieldContainer[AlgorithmDependency]
|
82
|
-
|
94
|
+
result_type: ResultType
|
95
|
+
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
96
|
|
84
97
|
class FloatArray(_message.Message):
|
85
98
|
__slots__ = ("values",)
|
@@ -245,3 +258,19 @@ class ResultsStats(_message.Message):
|
|
245
258
|
COUNT_FIELD_NUMBER: _ClassVar[int]
|
246
259
|
Count: int
|
247
260
|
def __init__(self, Count: _Optional[int] = ...) -> None: ...
|
261
|
+
|
262
|
+
class AlgorithmFieldsRead(_message.Message):
|
263
|
+
__slots__ = ("time_from", "time_to", "algorithm")
|
264
|
+
TIME_FROM_FIELD_NUMBER: _ClassVar[int]
|
265
|
+
TIME_TO_FIELD_NUMBER: _ClassVar[int]
|
266
|
+
ALGORITHM_FIELD_NUMBER: _ClassVar[int]
|
267
|
+
time_from: int
|
268
|
+
time_to: int
|
269
|
+
algorithm: Algorithm
|
270
|
+
def __init__(self, time_from: _Optional[int] = ..., time_to: _Optional[int] = ..., algorithm: _Optional[_Union[Algorithm, _Mapping]] = ...) -> None: ...
|
271
|
+
|
272
|
+
class AlgorithmFields(_message.Message):
|
273
|
+
__slots__ = ("field",)
|
274
|
+
FIELD_FIELD_NUMBER: _ClassVar[int]
|
275
|
+
field: _containers.RepeatedScalarFieldContainer[str]
|
276
|
+
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
|