orca-python 0.2.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.
- __init__.py +0 -0
- orca_python/__init__.py +3 -0
- orca_python/envs.py +24 -0
- orca_python/exceptions.py +14 -0
- orca_python/main.py +686 -0
- orca_python/py.typed +0 -0
- orca_python-0.2.0.dist-info/LICENSE +16 -0
- orca_python-0.2.0.dist-info/METADATA +125 -0
- orca_python-0.2.0.dist-info/RECORD +17 -0
- orca_python-0.2.0.dist-info/WHEEL +4 -0
- service_pb2.py +145 -0
- service_pb2.pyi +196 -0
- service_pb2_grpc.py +293 -0
- vendor/__init__.py +0 -0
- vendor/validate_pb2.py +448 -0
- vendor/validate_pb2.pyi +618 -0
- vendor/validate_pb2_grpc.py +24 -0
@@ -0,0 +1,125 @@
|
|
1
|
+
Metadata-Version: 2.3
|
2
|
+
Name: orca-python
|
3
|
+
Version: 0.2.0
|
4
|
+
Summary: Python SDK for the Predixus Orca product
|
5
|
+
Author: Frederick Mannings
|
6
|
+
Author-email: contact@predixus.com
|
7
|
+
Requires-Python: >=3.10
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
9
|
+
Classifier: Programming Language :: Python :: 3.10
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
13
|
+
Requires-Dist: grpcio (>=1.71.0,<2.0.0)
|
14
|
+
Requires-Dist: grpcio-tools (>=1.71.0,<2.0.0)
|
15
|
+
Description-Content-Type: text/markdown
|
16
|
+
|
17
|
+
# 🐳 Orca Python SDK
|
18
|
+
|
19
|
+
The Orca Python SDK enables developers to define and register Python-based algorithms into the
|
20
|
+
[Orca](https://www.github.com/Predixus/orca) framework.
|
21
|
+
|
22
|
+
Orca exists to make it seamless to build scalable, production-grade ML or analytics pipelines on
|
23
|
+
timeseries data.
|
24
|
+
|
25
|
+
## 🚀 Getting Started
|
26
|
+
|
27
|
+
Before using this SDK, you should install the Orca CLI and start Orca Core.
|
28
|
+
|
29
|
+
1. Install the Orca CLI
|
30
|
+
Ensure that Docker is installed on your system.
|
31
|
+
|
32
|
+
**Linux / macOS**
|
33
|
+
|
34
|
+
```bash
|
35
|
+
curl -fsSL https://raw.githubusercontent.com/Predixus/orca/main/install-cli.sh | bash
|
36
|
+
```
|
37
|
+
|
38
|
+
**Windows**
|
39
|
+
|
40
|
+
Use WSL (Windows Subsystem for Linux) and run the above command inside your WSL shell.
|
41
|
+
|
42
|
+
Once installed, follow the instructions in the Orca documentation to start the Orca Core service.
|
43
|
+
|
44
|
+
2. Start the Orca Server
|
45
|
+
|
46
|
+
```bash
|
47
|
+
orca start
|
48
|
+
```
|
49
|
+
|
50
|
+
3. Print out the server details
|
51
|
+
|
52
|
+
```bash
|
53
|
+
orca status
|
54
|
+
```
|
55
|
+
|
56
|
+
4. Install the Orca sdk into your python project:
|
57
|
+
|
58
|
+
```bash
|
59
|
+
pip install orca-time
|
60
|
+
```
|
61
|
+
|
62
|
+
5. Start building out your algorithms
|
63
|
+
|
64
|
+
Write a file defining your algorithms and what windows trigger them:
|
65
|
+
|
66
|
+
```python
|
67
|
+
# main.py
|
68
|
+
from orca_python import Processor
|
69
|
+
|
70
|
+
proc = Processor("ml")
|
71
|
+
|
72
|
+
@proc.algorithm("MyAlgo", "1.0.0", "MyWindow", "1.0.0")
|
73
|
+
def my_algorithm() -> dict:
|
74
|
+
return {"result": 42}
|
75
|
+
|
76
|
+
if __name__ == "__main__":
|
77
|
+
proc.Register()
|
78
|
+
proc.Start()
|
79
|
+
```
|
80
|
+
|
81
|
+
Then run your python file to register it with orca-core:
|
82
|
+
|
83
|
+
```bash
|
84
|
+
ORCASERVER=grpc://localhost:32770 HOST=172.18.0.1 python main.py
|
85
|
+
```
|
86
|
+
|
87
|
+
Replace the contents of `ORCASERVER` and `HOST` with the output of `orca status`.
|
88
|
+
|
89
|
+
6. Emit a window to orcacore
|
90
|
+
TBD
|
91
|
+
|
92
|
+
Check out more examples [here](./examples/).
|
93
|
+
|
94
|
+
## 🧱 Key Concepts
|
95
|
+
|
96
|
+
Processor: A container for algorithms, exposing them to the Orca Core service.
|
97
|
+
|
98
|
+
Algorithm: A Python function decorated and registered for DAG execution.
|
99
|
+
|
100
|
+
Window: A temporal trigger used to activate algorithms.
|
101
|
+
|
102
|
+
## ⚠️ Naming Rules
|
103
|
+
|
104
|
+
Algorithm and Window names must be in PascalCase.
|
105
|
+
|
106
|
+
Versions must follow semantic versioning (e.g., 1.0.0).
|
107
|
+
|
108
|
+
Dependencies must be declared only after their algorithm is registered.
|
109
|
+
|
110
|
+
Algorithms cannot depend on others from a different window type (enforced by Orca Core).
|
111
|
+
|
112
|
+
## 👥 Community
|
113
|
+
|
114
|
+
GitHub Issues: https://github.com/predixus/orca-python/issues
|
115
|
+
|
116
|
+
Discussions: Coming soon!
|
117
|
+
|
118
|
+
## 📄 License
|
119
|
+
|
120
|
+
This SDK is part of the Orca ecosystem, but licensed under the MIT License.
|
121
|
+
|
122
|
+
See the full license terms (here)[./LICENSE].
|
123
|
+
|
124
|
+
Built with ❤️ by Predixus
|
125
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
service_pb2.py,sha256=rPXKFzKei5vuYlJnTZWQBaPEhXj3U0xiElyrQi39R5c,14394
|
3
|
+
service_pb2.pyi,sha256=B5VkAk7wjpUfosPy3O2BxsbUZ5YhxGSaMeLLZhJAo08,9709
|
4
|
+
service_pb2_grpc.py,sha256=mzYiCamWd2v5-tdZGB_I6sS1bDlsuNUeALEqAZaTBSU,10726
|
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=7iu_tkM2DQXuNpBPx-uwj68l9SYHJxeyrM6NL1HsX5k,108
|
10
|
+
orca_python/envs.py,sha256=zSuukNSpEw78VpSSIDAA9KRAurWedQMwx1qyQg9f8pk,560
|
11
|
+
orca_python/exceptions.py,sha256=Z9iJg6tKpnrNhDxQlVvG5xpgjGbaiMNAeFkwMonM-PM,390
|
12
|
+
orca_python/main.py,sha256=_QF5PC4V7bCEcxrFDsjQU6gniZqHbub9acAYQzW6dcI,25314
|
13
|
+
orca_python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
+
orca_python-0.2.0.dist-info/LICENSE,sha256=sxb8X8qhbZ_JaCBFmoIriJzA-jelKmh86sAKQsIRN_I,1062
|
15
|
+
orca_python-0.2.0.dist-info/METADATA,sha256=H-Y8tYaW5dc0_PLLRn8TNWOEoSZYsyJgCYWde2oRSyk,3019
|
16
|
+
orca_python-0.2.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
17
|
+
orca_python-0.2.0.dist-info/RECORD,,
|
service_pb2.py
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
4
|
+
# source: service.proto
|
5
|
+
# Protobuf Python Version: 5.29.0
|
6
|
+
"""Generated protocol buffer code."""
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
11
|
+
from google.protobuf.internal import builder as _builder
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
14
|
+
5,
|
15
|
+
29,
|
16
|
+
0,
|
17
|
+
'',
|
18
|
+
'service.proto'
|
19
|
+
)
|
20
|
+
# @@protoc_insertion_point(imports)
|
21
|
+
|
22
|
+
_sym_db = _symbol_database.Default()
|
23
|
+
|
24
|
+
|
25
|
+
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
|
26
|
+
from vendor import validate_pb2 as vendor_dot_validate__pb2
|
27
|
+
|
28
|
+
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rservice.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x15vendor/validate.proto\"\x8e\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: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\";\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\"\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\"\x90\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\"\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*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\x32j\n\x08OrcaCore\x12\x34\n\x11RegisterProcessor\x12\x16.ProcessorRegistration\x1a\x07.Status\x12(\n\nEmitWindow\x12\x07.Window\x1a\x11.WindowEmitStatus2\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
|
+
|
31
|
+
_globals = globals()
|
32
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
33
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'service_pb2', _globals)
|
34
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
35
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
36
|
+
_globals['DESCRIPTOR']._serialized_options = b'Z%github.com/predixus/orca/protobufs/go'
|
37
|
+
_globals['_WINDOW'].fields_by_name['time_from']._loaded_options = None
|
38
|
+
_globals['_WINDOW'].fields_by_name['time_from']._serialized_options = b'\272H\0072\002 \000\310\001\001'
|
39
|
+
_globals['_WINDOW'].fields_by_name['time_to']._loaded_options = None
|
40
|
+
_globals['_WINDOW'].fields_by_name['time_to']._serialized_options = b'\272H\003\310\001\001'
|
41
|
+
_globals['_WINDOW'].fields_by_name['window_type_name']._loaded_options = None
|
42
|
+
_globals['_WINDOW'].fields_by_name['window_type_name']._serialized_options = b'\272H\003\310\001\001'
|
43
|
+
_globals['_WINDOW'].fields_by_name['window_type_version']._loaded_options = None
|
44
|
+
_globals['_WINDOW'].fields_by_name['window_type_version']._serialized_options = b'\272H\003\310\001\001'
|
45
|
+
_globals['_WINDOW'].fields_by_name['origin']._loaded_options = None
|
46
|
+
_globals['_WINDOW'].fields_by_name['origin']._serialized_options = b'\272H\003\310\001\001'
|
47
|
+
_globals['_WINDOW']._loaded_options = None
|
48
|
+
_globals['_WINDOW']._serialized_options = b'\272Hj\032h\n\016window.time_to\0226`time_to` must be greater than or equal to `time_from`\032\036this.time_to >= this.time_from'
|
49
|
+
_globals['_WINDOWTYPE'].fields_by_name['name']._loaded_options = None
|
50
|
+
_globals['_WINDOWTYPE'].fields_by_name['name']._serialized_options = b'\272H\003\310\001\001'
|
51
|
+
_globals['_WINDOWTYPE'].fields_by_name['version']._loaded_options = None
|
52
|
+
_globals['_WINDOWTYPE'].fields_by_name['version']._serialized_options = b'\272H\003\310\001\001'
|
53
|
+
_globals['_WINDOWEMITSTATUS'].fields_by_name['status']._loaded_options = None
|
54
|
+
_globals['_WINDOWEMITSTATUS'].fields_by_name['status']._serialized_options = b'\272H\003\310\001\001'
|
55
|
+
_globals['_ALGORITHMDEPENDENCY'].fields_by_name['name']._loaded_options = None
|
56
|
+
_globals['_ALGORITHMDEPENDENCY'].fields_by_name['name']._serialized_options = b'\272H\003\310\001\001'
|
57
|
+
_globals['_ALGORITHMDEPENDENCY'].fields_by_name['version']._loaded_options = None
|
58
|
+
_globals['_ALGORITHMDEPENDENCY'].fields_by_name['version']._serialized_options = b'\272H\003\310\001\001'
|
59
|
+
_globals['_ALGORITHMDEPENDENCY'].fields_by_name['processor_name']._loaded_options = None
|
60
|
+
_globals['_ALGORITHMDEPENDENCY'].fields_by_name['processor_name']._serialized_options = b'\272H\003\310\001\001'
|
61
|
+
_globals['_ALGORITHMDEPENDENCY'].fields_by_name['processor_runtime']._loaded_options = None
|
62
|
+
_globals['_ALGORITHMDEPENDENCY'].fields_by_name['processor_runtime']._serialized_options = b'\272H\003\310\001\001'
|
63
|
+
_globals['_ALGORITHM'].fields_by_name['name']._loaded_options = None
|
64
|
+
_globals['_ALGORITHM'].fields_by_name['name']._serialized_options = b'\272H\003\310\001\001'
|
65
|
+
_globals['_ALGORITHM'].fields_by_name['version']._loaded_options = None
|
66
|
+
_globals['_ALGORITHM'].fields_by_name['version']._serialized_options = b'\272H\003\310\001\001'
|
67
|
+
_globals['_ALGORITHM'].fields_by_name['window_type']._loaded_options = None
|
68
|
+
_globals['_ALGORITHM'].fields_by_name['window_type']._serialized_options = b'\272H\003\310\001\001'
|
69
|
+
_globals['_RESULT'].fields_by_name['status']._loaded_options = None
|
70
|
+
_globals['_RESULT'].fields_by_name['status']._serialized_options = b'\272H\003\310\001\001'
|
71
|
+
_globals['_RESULT'].fields_by_name['timestamp']._loaded_options = None
|
72
|
+
_globals['_RESULT'].fields_by_name['timestamp']._serialized_options = b'\272H\003\310\001\001'
|
73
|
+
_globals['_PROCESSORREGISTRATION'].fields_by_name['name']._loaded_options = None
|
74
|
+
_globals['_PROCESSORREGISTRATION'].fields_by_name['name']._serialized_options = b'\272H\003\310\001\001'
|
75
|
+
_globals['_PROCESSORREGISTRATION'].fields_by_name['runtime']._loaded_options = None
|
76
|
+
_globals['_PROCESSORREGISTRATION'].fields_by_name['runtime']._serialized_options = b'\272H\003\310\001\001'
|
77
|
+
_globals['_PROCESSORREGISTRATION'].fields_by_name['connection_str']._loaded_options = None
|
78
|
+
_globals['_PROCESSORREGISTRATION'].fields_by_name['connection_str']._serialized_options = b'\272H\003\310\001\001'
|
79
|
+
_globals['_PROCESSORREGISTRATION'].fields_by_name['supported_algorithms']._loaded_options = None
|
80
|
+
_globals['_PROCESSORREGISTRATION'].fields_by_name['supported_algorithms']._serialized_options = b'\272H\003\310\001\001'
|
81
|
+
_globals['_PROCESSINGTASK'].fields_by_name['task_id']._loaded_options = None
|
82
|
+
_globals['_PROCESSINGTASK'].fields_by_name['task_id']._serialized_options = b'\272H\003\310\001\001'
|
83
|
+
_globals['_PROCESSINGTASK'].fields_by_name['algorithm']._loaded_options = None
|
84
|
+
_globals['_PROCESSINGTASK'].fields_by_name['algorithm']._serialized_options = b'\272H\003\310\001\001'
|
85
|
+
_globals['_PROCESSINGTASK'].fields_by_name['window']._loaded_options = None
|
86
|
+
_globals['_PROCESSINGTASK'].fields_by_name['window']._serialized_options = b'\272H\003\310\001\001'
|
87
|
+
_globals['_EXECUTIONREQUEST'].fields_by_name['exec_id']._loaded_options = None
|
88
|
+
_globals['_EXECUTIONREQUEST'].fields_by_name['exec_id']._serialized_options = b'\272H\003\310\001\001'
|
89
|
+
_globals['_EXECUTIONREQUEST'].fields_by_name['window']._loaded_options = None
|
90
|
+
_globals['_EXECUTIONREQUEST'].fields_by_name['window']._serialized_options = b'\272H\003\310\001\001'
|
91
|
+
_globals['_EXECUTIONRESULT'].fields_by_name['exec_id']._loaded_options = None
|
92
|
+
_globals['_EXECUTIONRESULT'].fields_by_name['exec_id']._serialized_options = b'\272H\003\310\001\001'
|
93
|
+
_globals['_EXECUTIONRESULT'].fields_by_name['algorithm_result']._loaded_options = None
|
94
|
+
_globals['_EXECUTIONRESULT'].fields_by_name['algorithm_result']._serialized_options = b'\272H\003\310\001\001'
|
95
|
+
_globals['_ALGORITHMRESULT'].fields_by_name['algorithm']._loaded_options = None
|
96
|
+
_globals['_ALGORITHMRESULT'].fields_by_name['algorithm']._serialized_options = b'\272H\003\310\001\001'
|
97
|
+
_globals['_ALGORITHMRESULT'].fields_by_name['result']._loaded_options = None
|
98
|
+
_globals['_ALGORITHMRESULT'].fields_by_name['result']._serialized_options = b'\272H\003\310\001\001'
|
99
|
+
_globals['_HEALTHCHECKREQUEST'].fields_by_name['timestamp']._loaded_options = None
|
100
|
+
_globals['_HEALTHCHECKREQUEST'].fields_by_name['timestamp']._serialized_options = b'\272H\003\310\001\001'
|
101
|
+
_globals['_HEALTHCHECKRESPONSE'].fields_by_name['status']._loaded_options = None
|
102
|
+
_globals['_HEALTHCHECKRESPONSE'].fields_by_name['status']._serialized_options = b'\272H\003\310\001\001'
|
103
|
+
_globals['_RESULTSTATUS']._serialized_start=2172
|
104
|
+
_globals['_RESULTSTATUS']._serialized_end=2284
|
105
|
+
_globals['_WINDOW']._serialized_start=71
|
106
|
+
_globals['_WINDOW']._serialized_end=341
|
107
|
+
_globals['_WINDOWTYPE']._serialized_start=343
|
108
|
+
_globals['_WINDOWTYPE']._serialized_end=402
|
109
|
+
_globals['_WINDOWEMITSTATUS']._serialized_start=405
|
110
|
+
_globals['_WINDOWEMITSTATUS']._serialized_end=569
|
111
|
+
_globals['_WINDOWEMITSTATUS_STATUSENUM']._serialized_start=479
|
112
|
+
_globals['_WINDOWEMITSTATUS_STATUSENUM']._serialized_end=569
|
113
|
+
_globals['_ALGORITHMDEPENDENCY']._serialized_start=572
|
114
|
+
_globals['_ALGORITHMDEPENDENCY']._serialized_end=707
|
115
|
+
_globals['_ALGORITHM']._serialized_start=710
|
116
|
+
_globals['_ALGORITHM']._serialized_end=854
|
117
|
+
_globals['_FLOATARRAY']._serialized_start=856
|
118
|
+
_globals['_FLOATARRAY']._serialized_end=884
|
119
|
+
_globals['_RESULT']._serialized_start=887
|
120
|
+
_globals['_RESULT']._serialized_end=1086
|
121
|
+
_globals['_PROCESSORREGISTRATION']._serialized_start=1089
|
122
|
+
_globals['_PROCESSORREGISTRATION']._serialized_end=1241
|
123
|
+
_globals['_PROCESSINGTASK']._serialized_start=1244
|
124
|
+
_globals['_PROCESSINGTASK']._serialized_end=1394
|
125
|
+
_globals['_EXECUTIONREQUEST']._serialized_start=1397
|
126
|
+
_globals['_EXECUTIONREQUEST']._serialized_end=1550
|
127
|
+
_globals['_EXECUTIONRESULT']._serialized_start=1552
|
128
|
+
_globals['_EXECUTIONRESULT']._serialized_end=1646
|
129
|
+
_globals['_ALGORITHMRESULT']._serialized_start=1648
|
130
|
+
_globals['_ALGORITHMRESULT']._serialized_end=1737
|
131
|
+
_globals['_STATUS']._serialized_start=1739
|
132
|
+
_globals['_STATUS']._serialized_end=1782
|
133
|
+
_globals['_HEALTHCHECKREQUEST']._serialized_start=1784
|
134
|
+
_globals['_HEALTHCHECKREQUEST']._serialized_end=1831
|
135
|
+
_globals['_HEALTHCHECKRESPONSE']._serialized_start=1834
|
136
|
+
_globals['_HEALTHCHECKRESPONSE']._serialized_end=2061
|
137
|
+
_globals['_HEALTHCHECKRESPONSE_STATUS']._serialized_start=1963
|
138
|
+
_globals['_HEALTHCHECKRESPONSE_STATUS']._serialized_end=2061
|
139
|
+
_globals['_PROCESSORMETRICS']._serialized_start=2063
|
140
|
+
_globals['_PROCESSORMETRICS']._serialized_end=2170
|
141
|
+
_globals['_ORCACORE']._serialized_start=2286
|
142
|
+
_globals['_ORCACORE']._serialized_end=2392
|
143
|
+
_globals['_ORCAPROCESSOR']._serialized_start=2395
|
144
|
+
_globals['_ORCAPROCESSOR']._serialized_end=2525
|
145
|
+
# @@protoc_insertion_point(module_scope)
|
service_pb2.pyi
ADDED
@@ -0,0 +1,196 @@
|
|
1
|
+
from google.protobuf import struct_pb2 as _struct_pb2
|
2
|
+
from vendor import validate_pb2 as _validate_pb2
|
3
|
+
from google.protobuf.internal import containers as _containers
|
4
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
5
|
+
from google.protobuf import descriptor as _descriptor
|
6
|
+
from google.protobuf import message as _message
|
7
|
+
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
|
8
|
+
|
9
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
10
|
+
|
11
|
+
class ResultStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
12
|
+
__slots__ = ()
|
13
|
+
RESULT_STATUS_HANDLED_FAILED: _ClassVar[ResultStatus]
|
14
|
+
RESULT_STATUS_UNHANDLED_FAILED: _ClassVar[ResultStatus]
|
15
|
+
RESULT_STATUS_SUCEEDED: _ClassVar[ResultStatus]
|
16
|
+
RESULT_STATUS_HANDLED_FAILED: ResultStatus
|
17
|
+
RESULT_STATUS_UNHANDLED_FAILED: ResultStatus
|
18
|
+
RESULT_STATUS_SUCEEDED: ResultStatus
|
19
|
+
|
20
|
+
class Window(_message.Message):
|
21
|
+
__slots__ = ("time_from", "time_to", "window_type_name", "window_type_version", "origin")
|
22
|
+
TIME_FROM_FIELD_NUMBER: _ClassVar[int]
|
23
|
+
TIME_TO_FIELD_NUMBER: _ClassVar[int]
|
24
|
+
WINDOW_TYPE_NAME_FIELD_NUMBER: _ClassVar[int]
|
25
|
+
WINDOW_TYPE_VERSION_FIELD_NUMBER: _ClassVar[int]
|
26
|
+
ORIGIN_FIELD_NUMBER: _ClassVar[int]
|
27
|
+
time_from: int
|
28
|
+
time_to: int
|
29
|
+
window_type_name: str
|
30
|
+
window_type_version: str
|
31
|
+
origin: str
|
32
|
+
def __init__(self, time_from: _Optional[int] = ..., time_to: _Optional[int] = ..., window_type_name: _Optional[str] = ..., window_type_version: _Optional[str] = ..., origin: _Optional[str] = ...) -> None: ...
|
33
|
+
|
34
|
+
class WindowType(_message.Message):
|
35
|
+
__slots__ = ("name", "version")
|
36
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
37
|
+
VERSION_FIELD_NUMBER: _ClassVar[int]
|
38
|
+
name: str
|
39
|
+
version: str
|
40
|
+
def __init__(self, name: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ...
|
41
|
+
|
42
|
+
class WindowEmitStatus(_message.Message):
|
43
|
+
__slots__ = ("status",)
|
44
|
+
class StatusEnum(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
45
|
+
__slots__ = ()
|
46
|
+
NO_TRIGGERED_ALGORITHMS: _ClassVar[WindowEmitStatus.StatusEnum]
|
47
|
+
PROCESSING_TRIGGERED: _ClassVar[WindowEmitStatus.StatusEnum]
|
48
|
+
TRIGGERING_FAILED: _ClassVar[WindowEmitStatus.StatusEnum]
|
49
|
+
NO_TRIGGERED_ALGORITHMS: WindowEmitStatus.StatusEnum
|
50
|
+
PROCESSING_TRIGGERED: WindowEmitStatus.StatusEnum
|
51
|
+
TRIGGERING_FAILED: WindowEmitStatus.StatusEnum
|
52
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
53
|
+
status: WindowEmitStatus.StatusEnum
|
54
|
+
def __init__(self, status: _Optional[_Union[WindowEmitStatus.StatusEnum, str]] = ...) -> None: ...
|
55
|
+
|
56
|
+
class AlgorithmDependency(_message.Message):
|
57
|
+
__slots__ = ("name", "version", "processor_name", "processor_runtime")
|
58
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
59
|
+
VERSION_FIELD_NUMBER: _ClassVar[int]
|
60
|
+
PROCESSOR_NAME_FIELD_NUMBER: _ClassVar[int]
|
61
|
+
PROCESSOR_RUNTIME_FIELD_NUMBER: _ClassVar[int]
|
62
|
+
name: str
|
63
|
+
version: str
|
64
|
+
processor_name: str
|
65
|
+
processor_runtime: str
|
66
|
+
def __init__(self, name: _Optional[str] = ..., version: _Optional[str] = ..., processor_name: _Optional[str] = ..., processor_runtime: _Optional[str] = ...) -> None: ...
|
67
|
+
|
68
|
+
class Algorithm(_message.Message):
|
69
|
+
__slots__ = ("name", "version", "window_type", "dependencies")
|
70
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
71
|
+
VERSION_FIELD_NUMBER: _ClassVar[int]
|
72
|
+
WINDOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
73
|
+
DEPENDENCIES_FIELD_NUMBER: _ClassVar[int]
|
74
|
+
name: str
|
75
|
+
version: str
|
76
|
+
window_type: WindowType
|
77
|
+
dependencies: _containers.RepeatedCompositeFieldContainer[AlgorithmDependency]
|
78
|
+
def __init__(self, name: _Optional[str] = ..., version: _Optional[str] = ..., window_type: _Optional[_Union[WindowType, _Mapping]] = ..., dependencies: _Optional[_Iterable[_Union[AlgorithmDependency, _Mapping]]] = ...) -> None: ...
|
79
|
+
|
80
|
+
class FloatArray(_message.Message):
|
81
|
+
__slots__ = ("values",)
|
82
|
+
VALUES_FIELD_NUMBER: _ClassVar[int]
|
83
|
+
values: _containers.RepeatedScalarFieldContainer[float]
|
84
|
+
def __init__(self, values: _Optional[_Iterable[float]] = ...) -> None: ...
|
85
|
+
|
86
|
+
class Result(_message.Message):
|
87
|
+
__slots__ = ("status", "single_value", "float_values", "struct_value", "timestamp")
|
88
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
89
|
+
SINGLE_VALUE_FIELD_NUMBER: _ClassVar[int]
|
90
|
+
FLOAT_VALUES_FIELD_NUMBER: _ClassVar[int]
|
91
|
+
STRUCT_VALUE_FIELD_NUMBER: _ClassVar[int]
|
92
|
+
TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
|
93
|
+
status: ResultStatus
|
94
|
+
single_value: float
|
95
|
+
float_values: FloatArray
|
96
|
+
struct_value: _struct_pb2.Struct
|
97
|
+
timestamp: int
|
98
|
+
def __init__(self, status: _Optional[_Union[ResultStatus, str]] = ..., single_value: _Optional[float] = ..., float_values: _Optional[_Union[FloatArray, _Mapping]] = ..., struct_value: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., timestamp: _Optional[int] = ...) -> None: ...
|
99
|
+
|
100
|
+
class ProcessorRegistration(_message.Message):
|
101
|
+
__slots__ = ("name", "runtime", "connection_str", "supported_algorithms")
|
102
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
103
|
+
RUNTIME_FIELD_NUMBER: _ClassVar[int]
|
104
|
+
CONNECTION_STR_FIELD_NUMBER: _ClassVar[int]
|
105
|
+
SUPPORTED_ALGORITHMS_FIELD_NUMBER: _ClassVar[int]
|
106
|
+
name: str
|
107
|
+
runtime: str
|
108
|
+
connection_str: str
|
109
|
+
supported_algorithms: _containers.RepeatedCompositeFieldContainer[Algorithm]
|
110
|
+
def __init__(self, name: _Optional[str] = ..., runtime: _Optional[str] = ..., connection_str: _Optional[str] = ..., supported_algorithms: _Optional[_Iterable[_Union[Algorithm, _Mapping]]] = ...) -> None: ...
|
111
|
+
|
112
|
+
class ProcessingTask(_message.Message):
|
113
|
+
__slots__ = ("task_id", "algorithm", "window", "dependency_results")
|
114
|
+
TASK_ID_FIELD_NUMBER: _ClassVar[int]
|
115
|
+
ALGORITHM_FIELD_NUMBER: _ClassVar[int]
|
116
|
+
WINDOW_FIELD_NUMBER: _ClassVar[int]
|
117
|
+
DEPENDENCY_RESULTS_FIELD_NUMBER: _ClassVar[int]
|
118
|
+
task_id: str
|
119
|
+
algorithm: Algorithm
|
120
|
+
window: Window
|
121
|
+
dependency_results: _containers.RepeatedCompositeFieldContainer[Result]
|
122
|
+
def __init__(self, task_id: _Optional[str] = ..., algorithm: _Optional[_Union[Algorithm, _Mapping]] = ..., window: _Optional[_Union[Window, _Mapping]] = ..., dependency_results: _Optional[_Iterable[_Union[Result, _Mapping]]] = ...) -> None: ...
|
123
|
+
|
124
|
+
class ExecutionRequest(_message.Message):
|
125
|
+
__slots__ = ("exec_id", "window", "algorithm_results", "algorithms")
|
126
|
+
EXEC_ID_FIELD_NUMBER: _ClassVar[int]
|
127
|
+
WINDOW_FIELD_NUMBER: _ClassVar[int]
|
128
|
+
ALGORITHM_RESULTS_FIELD_NUMBER: _ClassVar[int]
|
129
|
+
ALGORITHMS_FIELD_NUMBER: _ClassVar[int]
|
130
|
+
exec_id: str
|
131
|
+
window: Window
|
132
|
+
algorithm_results: _containers.RepeatedCompositeFieldContainer[AlgorithmResult]
|
133
|
+
algorithms: _containers.RepeatedCompositeFieldContainer[Algorithm]
|
134
|
+
def __init__(self, exec_id: _Optional[str] = ..., window: _Optional[_Union[Window, _Mapping]] = ..., algorithm_results: _Optional[_Iterable[_Union[AlgorithmResult, _Mapping]]] = ..., algorithms: _Optional[_Iterable[_Union[Algorithm, _Mapping]]] = ...) -> None: ...
|
135
|
+
|
136
|
+
class ExecutionResult(_message.Message):
|
137
|
+
__slots__ = ("exec_id", "algorithm_result")
|
138
|
+
EXEC_ID_FIELD_NUMBER: _ClassVar[int]
|
139
|
+
ALGORITHM_RESULT_FIELD_NUMBER: _ClassVar[int]
|
140
|
+
exec_id: str
|
141
|
+
algorithm_result: AlgorithmResult
|
142
|
+
def __init__(self, exec_id: _Optional[str] = ..., algorithm_result: _Optional[_Union[AlgorithmResult, _Mapping]] = ...) -> None: ...
|
143
|
+
|
144
|
+
class AlgorithmResult(_message.Message):
|
145
|
+
__slots__ = ("algorithm", "result")
|
146
|
+
ALGORITHM_FIELD_NUMBER: _ClassVar[int]
|
147
|
+
RESULT_FIELD_NUMBER: _ClassVar[int]
|
148
|
+
algorithm: Algorithm
|
149
|
+
result: Result
|
150
|
+
def __init__(self, algorithm: _Optional[_Union[Algorithm, _Mapping]] = ..., result: _Optional[_Union[Result, _Mapping]] = ...) -> None: ...
|
151
|
+
|
152
|
+
class Status(_message.Message):
|
153
|
+
__slots__ = ("received", "message")
|
154
|
+
RECEIVED_FIELD_NUMBER: _ClassVar[int]
|
155
|
+
MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
156
|
+
received: bool
|
157
|
+
message: str
|
158
|
+
def __init__(self, received: bool = ..., message: _Optional[str] = ...) -> None: ...
|
159
|
+
|
160
|
+
class HealthCheckRequest(_message.Message):
|
161
|
+
__slots__ = ("timestamp",)
|
162
|
+
TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
|
163
|
+
timestamp: int
|
164
|
+
def __init__(self, timestamp: _Optional[int] = ...) -> None: ...
|
165
|
+
|
166
|
+
class HealthCheckResponse(_message.Message):
|
167
|
+
__slots__ = ("status", "message", "metrics")
|
168
|
+
class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
169
|
+
__slots__ = ()
|
170
|
+
STATUS_UNKNOWN: _ClassVar[HealthCheckResponse.Status]
|
171
|
+
STATUS_SERVING: _ClassVar[HealthCheckResponse.Status]
|
172
|
+
STATUS_TRANSITIONING: _ClassVar[HealthCheckResponse.Status]
|
173
|
+
STATUS_NOT_SERVING: _ClassVar[HealthCheckResponse.Status]
|
174
|
+
STATUS_UNKNOWN: HealthCheckResponse.Status
|
175
|
+
STATUS_SERVING: HealthCheckResponse.Status
|
176
|
+
STATUS_TRANSITIONING: HealthCheckResponse.Status
|
177
|
+
STATUS_NOT_SERVING: HealthCheckResponse.Status
|
178
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
179
|
+
MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
180
|
+
METRICS_FIELD_NUMBER: _ClassVar[int]
|
181
|
+
status: HealthCheckResponse.Status
|
182
|
+
message: str
|
183
|
+
metrics: ProcessorMetrics
|
184
|
+
def __init__(self, status: _Optional[_Union[HealthCheckResponse.Status, str]] = ..., message: _Optional[str] = ..., metrics: _Optional[_Union[ProcessorMetrics, _Mapping]] = ...) -> None: ...
|
185
|
+
|
186
|
+
class ProcessorMetrics(_message.Message):
|
187
|
+
__slots__ = ("active_tasks", "memory_bytes", "cpu_percent", "uptime_seconds")
|
188
|
+
ACTIVE_TASKS_FIELD_NUMBER: _ClassVar[int]
|
189
|
+
MEMORY_BYTES_FIELD_NUMBER: _ClassVar[int]
|
190
|
+
CPU_PERCENT_FIELD_NUMBER: _ClassVar[int]
|
191
|
+
UPTIME_SECONDS_FIELD_NUMBER: _ClassVar[int]
|
192
|
+
active_tasks: int
|
193
|
+
memory_bytes: int
|
194
|
+
cpu_percent: float
|
195
|
+
uptime_seconds: int
|
196
|
+
def __init__(self, active_tasks: _Optional[int] = ..., memory_bytes: _Optional[int] = ..., cpu_percent: _Optional[float] = ..., uptime_seconds: _Optional[int] = ...) -> None: ...
|