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.
@@ -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,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.1.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
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: ...