oalib-at-runner 0.3.0__tar.gz
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.
- oalib_at_runner-0.3.0/PKG-INFO +44 -0
- oalib_at_runner-0.3.0/README.md +22 -0
- oalib_at_runner-0.3.0/pyproject.toml +37 -0
- oalib_at_runner-0.3.0/setup.cfg +4 -0
- oalib_at_runner-0.3.0/src/at_runner/__init__.py +11 -0
- oalib_at_runner-0.3.0/src/at_runner/_generated/__init__.py +0 -0
- oalib_at_runner-0.3.0/src/at_runner/_generated/at/__init__.py +0 -0
- oalib_at_runner-0.3.0/src/at_runner/_generated/at/runner/__init__.py +0 -0
- oalib_at_runner-0.3.0/src/at_runner/_generated/at/runner/v1/__init__.py +0 -0
- oalib_at_runner-0.3.0/src/at_runner/_generated/at/runner/v1/runner_pb2.py +84 -0
- oalib_at_runner-0.3.0/src/at_runner/_generated/at/runner/v1/runner_pb2.pyi +230 -0
- oalib_at_runner-0.3.0/src/at_runner/_generated/at/runner/v1/runner_pb2_grpc.py +358 -0
- oalib_at_runner-0.3.0/src/at_runner/session.py +362 -0
- oalib_at_runner-0.3.0/src/oalib_at_runner.egg-info/PKG-INFO +44 -0
- oalib_at_runner-0.3.0/src/oalib_at_runner.egg-info/SOURCES.txt +17 -0
- oalib_at_runner-0.3.0/src/oalib_at_runner.egg-info/dependency_links.txt +1 -0
- oalib_at_runner-0.3.0/src/oalib_at_runner.egg-info/requires.txt +6 -0
- oalib_at_runner-0.3.0/src/oalib_at_runner.egg-info/top_level.txt +1 -0
- oalib_at_runner-0.3.0/tests/test_integration.py +212 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: oalib-at-runner
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Python client library for the AT Runner gRPC service
|
|
5
|
+
License-Expression: GPL-3.0-only
|
|
6
|
+
Project-URL: Homepage, https://github.com/jgebbie/at-runner
|
|
7
|
+
Project-URL: Repository, https://github.com/jgebbie/at-runner
|
|
8
|
+
Project-URL: Issues, https://github.com/jgebbie/at-runner/issues
|
|
9
|
+
Keywords: acoustics,acoustics-toolbox,bellhop,grpc,oalib
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Science/Research
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Topic :: Scientific/Engineering
|
|
15
|
+
Requires-Python: >=3.12
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
Requires-Dist: grpcio>=1.80
|
|
18
|
+
Requires-Dist: protobuf>=6.31.1
|
|
19
|
+
Provides-Extra: dev
|
|
20
|
+
Requires-Dist: grpcio-tools>=1.80; extra == "dev"
|
|
21
|
+
Requires-Dist: pytest>=8; extra == "dev"
|
|
22
|
+
|
|
23
|
+
# oalib-at-runner
|
|
24
|
+
|
|
25
|
+
`oalib-at-runner` is the Python client distribution for
|
|
26
|
+
[AT Runner](https://github.com/jgebbie/at-runner), a gRPC service that runs
|
|
27
|
+
Acoustics Toolbox models such as BELLHOP, KRAKEN, SCOOTER, and SPARC.
|
|
28
|
+
|
|
29
|
+
The PyPI distribution installs the import package `at_runner`:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
python -m pip install oalib-at-runner
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```python
|
|
36
|
+
from at_runner import ATSession
|
|
37
|
+
|
|
38
|
+
with ATSession("localhost:50051") as session:
|
|
39
|
+
session.upload("MunkK.env", b"...")
|
|
40
|
+
result = session.run("kraken", "MunkK")
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The client expects an AT Runner service to be available. The service image is
|
|
44
|
+
published as `ghcr.io/jgebbie/at-runner`.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# oalib-at-runner
|
|
2
|
+
|
|
3
|
+
`oalib-at-runner` is the Python client distribution for
|
|
4
|
+
[AT Runner](https://github.com/jgebbie/at-runner), a gRPC service that runs
|
|
5
|
+
Acoustics Toolbox models such as BELLHOP, KRAKEN, SCOOTER, and SPARC.
|
|
6
|
+
|
|
7
|
+
The PyPI distribution installs the import package `at_runner`:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
python -m pip install oalib-at-runner
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from at_runner import ATSession
|
|
15
|
+
|
|
16
|
+
with ATSession("localhost:50051") as session:
|
|
17
|
+
session.upload("MunkK.env", b"...")
|
|
18
|
+
result = session.run("kraken", "MunkK")
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The client expects an AT Runner service to be available. The service image is
|
|
22
|
+
published as `ghcr.io/jgebbie/at-runner`.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77", "grpcio-tools>=1.62"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "oalib-at-runner"
|
|
7
|
+
version = "0.3.0"
|
|
8
|
+
description = "Python client library for the AT Runner gRPC service"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.12"
|
|
11
|
+
license = "GPL-3.0-only"
|
|
12
|
+
keywords = ["acoustics", "acoustics-toolbox", "bellhop", "grpc", "oalib"]
|
|
13
|
+
classifiers = [
|
|
14
|
+
"Development Status :: 3 - Alpha",
|
|
15
|
+
"Intended Audience :: Science/Research",
|
|
16
|
+
"Programming Language :: Python :: 3",
|
|
17
|
+
"Programming Language :: Python :: 3.12",
|
|
18
|
+
"Topic :: Scientific/Engineering",
|
|
19
|
+
]
|
|
20
|
+
dependencies = [
|
|
21
|
+
"grpcio>=1.80",
|
|
22
|
+
"protobuf>=6.31.1",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
[project.optional-dependencies]
|
|
26
|
+
dev = [
|
|
27
|
+
"grpcio-tools>=1.80",
|
|
28
|
+
"pytest>=8",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
[tool.setuptools.packages.find]
|
|
32
|
+
where = ["src"]
|
|
33
|
+
|
|
34
|
+
[project.urls]
|
|
35
|
+
Homepage = "https://github.com/jgebbie/at-runner"
|
|
36
|
+
Repository = "https://github.com/jgebbie/at-runner"
|
|
37
|
+
Issues = "https://github.com/jgebbie/at-runner/issues"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: at/runner/v1/runner.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
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
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'at/runner/v1/runner.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x61t/runner/v1/runner.proto\x12\x0c\x61t.runner.v1\"%\n\x04\x46ile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\"\'\n\tFileChunk\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\",\n\x08\x46ileInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nsize_bytes\x18\x02 \x01(\x04\"G\n\x0bOutputChunk\x12*\n\x06stream\x18\x01 \x01(\x0e\x32\x1a.at.runner.v1.OutputStream\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\".\n\nRunStarted\x12\r\n\x05model\x18\x01 \x01(\t\x12\x11\n\tfile_root\x18\x02 \x01(\t\"\x91\x01\n\x0cRunCompleted\x12\'\n\x06status\x18\x01 \x01(\x0e\x32\x17.at.runner.v1.RunStatus\x12\x11\n\texit_code\x18\x02 \x01(\x05\x12\x17\n\x0f\x65lapsed_seconds\x18\x03 \x01(\x01\x12,\n\x0coutput_files\x18\x04 \x03(\x0b\x32\x16.at.runner.v1.FileInfo\"\x88\x01\n\x0eRunSyncRequest\x12\r\n\x05model\x18\x01 \x01(\t\x12\x11\n\tfile_root\x18\x02 \x01(\t\x12\"\n\x06inputs\x18\x03 \x03(\x0b\x32\x12.at.runner.v1.File\x12\x1c\n\x0ftimeout_seconds\x18\x04 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_timeout_seconds\"\xab\x01\n\x0fRunSyncResponse\x12\'\n\x06status\x18\x01 \x01(\x0e\x32\x17.at.runner.v1.RunStatus\x12\x11\n\texit_code\x18\x02 \x01(\x05\x12\x0e\n\x06stdout\x18\x03 \x01(\x0c\x12\x0e\n\x06stderr\x18\x04 \x01(\x0c\x12\x17\n\x0f\x65lapsed_seconds\x18\x05 \x01(\x01\x12#\n\x07outputs\x18\x06 \x03(\x0b\x32\x12.at.runner.v1.File\"2\n\x0eUploadResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nsize_bytes\x18\x02 \x01(\x04\"\x1e\n\x0eGetFileRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"!\n\x11\x44\x65leteFileRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x14\n\x12\x44\x65leteFileResponse\"\x12\n\x10ListFilesRequest\":\n\x11ListFilesResponse\x12%\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x16.at.runner.v1.FileInfo\"`\n\nRunRequest\x12\r\n\x05model\x18\x01 \x01(\t\x12\x11\n\tfile_root\x18\x02 \x01(\t\x12\x1c\n\x0ftimeout_seconds\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_timeout_seconds\"\xca\x01\n\tRunOutput\x12+\n\x07started\x18\x01 \x01(\x0b\x32\x18.at.runner.v1.RunStartedH\x00\x12+\n\x06output\x18\x02 \x01(\x0b\x32\x19.at.runner.v1.OutputChunkH\x00\x12/\n\tcompleted\x18\x03 \x01(\x0b\x32\x1a.at.runner.v1.RunCompletedH\x00\x12\'\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x17.at.runner.v1.FileChunkH\x00\x42\t\n\x07payload\"q\n\x12RunPipelineRequest\x12)\n\x05steps\x18\x01 \x03(\x0b\x32\x1a.at.runner.v1.PipelineStep\x12\x1c\n\x0ftimeout_seconds\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_timeout_seconds\"\xa6\x01\n\x0cPipelineStep\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x11\n\tfile_root\x18\x03 \x01(\t\x12\"\n\x06inputs\x18\x04 \x03(\x0b\x32\x12.at.runner.v1.File\x12\x12\n\ndepends_on\x18\x05 \x03(\t\x12\x1c\n\x0ftimeout_seconds\x18\x06 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_timeout_seconds\"\xbe\x01\n\x0ePipelineOutput\x12\x39\n\x10pipeline_started\x18\x01 \x01(\x0b\x32\x1d.at.runner.v1.PipelineStartedH\x00\x12\'\n\x04step\x18\x02 \x01(\x0b\x32\x17.at.runner.v1.StepEventH\x00\x12=\n\x12pipeline_completed\x18\x03 \x01(\x0b\x32\x1f.at.runner.v1.PipelineCompletedH\x00\x42\t\n\x07payload\"#\n\x0fPipelineStarted\x12\x10\n\x08step_ids\x18\x01 \x03(\t\"\xda\x01\n\tStepEvent\x12\x0f\n\x07step_id\x18\x01 \x01(\t\x12+\n\x07started\x18\x02 \x01(\x0b\x32\x18.at.runner.v1.RunStartedH\x00\x12+\n\x06output\x18\x03 \x01(\x0b\x32\x19.at.runner.v1.OutputChunkH\x00\x12/\n\tcompleted\x18\x04 \x01(\x0b\x32\x1a.at.runner.v1.RunCompletedH\x00\x12\'\n\x04\x66ile\x18\x05 \x01(\x0b\x32\x17.at.runner.v1.FileChunkH\x00\x42\x08\n\x06\x64\x65tail\"Z\n\x11PipelineCompleted\x12\x15\n\rall_succeeded\x18\x01 \x01(\x08\x12\x17\n\x0f\x65lapsed_seconds\x18\x02 \x01(\x01\x12\x15\n\rskipped_steps\x18\x03 \x03(\t*a\n\x0cOutputStream\x12\x1d\n\x19OUTPUT_STREAM_UNSPECIFIED\x10\x00\x12\x18\n\x14OUTPUT_STREAM_STDOUT\x10\x01\x12\x18\n\x14OUTPUT_STREAM_STDERR\x10\x02*\x8c\x01\n\tRunStatus\x12\x1a\n\x16RUN_STATUS_UNSPECIFIED\x10\x00\x12\x18\n\x14RUN_STATUS_COMPLETED\x10\x01\x12\x18\n\x14RUN_STATUS_TIMED_OUT\x10\x02\x12\x17\n\x13RUN_STATUS_SIGNALED\x10\x03\x12\x16\n\x12RUN_STATUS_SKIPPED\x10\x04\x32\x87\x04\n\x06Runner\x12\x46\n\x07RunSync\x12\x1c.at.runner.v1.RunSyncRequest\x1a\x1d.at.runner.v1.RunSyncResponse\x12\x45\n\nUploadFile\x12\x17.at.runner.v1.FileChunk\x1a\x1c.at.runner.v1.UploadResponse(\x01\x12\x42\n\x07GetFile\x12\x1c.at.runner.v1.GetFileRequest\x1a\x17.at.runner.v1.FileChunk0\x01\x12O\n\nDeleteFile\x12\x1f.at.runner.v1.DeleteFileRequest\x1a .at.runner.v1.DeleteFileResponse\x12L\n\tListFiles\x12\x1e.at.runner.v1.ListFilesRequest\x1a\x1f.at.runner.v1.ListFilesResponse\x12:\n\x03Run\x12\x18.at.runner.v1.RunRequest\x1a\x17.at.runner.v1.RunOutput0\x01\x12O\n\x0bRunPipeline\x12 .at.runner.v1.RunPipelineRequest\x1a\x1c.at.runner.v1.PipelineOutput0\x01\x62\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'at.runner.v1.runner_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_OUTPUTSTREAM']._serialized_start=2102
|
|
35
|
+
_globals['_OUTPUTSTREAM']._serialized_end=2199
|
|
36
|
+
_globals['_RUNSTATUS']._serialized_start=2202
|
|
37
|
+
_globals['_RUNSTATUS']._serialized_end=2342
|
|
38
|
+
_globals['_FILE']._serialized_start=43
|
|
39
|
+
_globals['_FILE']._serialized_end=80
|
|
40
|
+
_globals['_FILECHUNK']._serialized_start=82
|
|
41
|
+
_globals['_FILECHUNK']._serialized_end=121
|
|
42
|
+
_globals['_FILEINFO']._serialized_start=123
|
|
43
|
+
_globals['_FILEINFO']._serialized_end=167
|
|
44
|
+
_globals['_OUTPUTCHUNK']._serialized_start=169
|
|
45
|
+
_globals['_OUTPUTCHUNK']._serialized_end=240
|
|
46
|
+
_globals['_RUNSTARTED']._serialized_start=242
|
|
47
|
+
_globals['_RUNSTARTED']._serialized_end=288
|
|
48
|
+
_globals['_RUNCOMPLETED']._serialized_start=291
|
|
49
|
+
_globals['_RUNCOMPLETED']._serialized_end=436
|
|
50
|
+
_globals['_RUNSYNCREQUEST']._serialized_start=439
|
|
51
|
+
_globals['_RUNSYNCREQUEST']._serialized_end=575
|
|
52
|
+
_globals['_RUNSYNCRESPONSE']._serialized_start=578
|
|
53
|
+
_globals['_RUNSYNCRESPONSE']._serialized_end=749
|
|
54
|
+
_globals['_UPLOADRESPONSE']._serialized_start=751
|
|
55
|
+
_globals['_UPLOADRESPONSE']._serialized_end=801
|
|
56
|
+
_globals['_GETFILEREQUEST']._serialized_start=803
|
|
57
|
+
_globals['_GETFILEREQUEST']._serialized_end=833
|
|
58
|
+
_globals['_DELETEFILEREQUEST']._serialized_start=835
|
|
59
|
+
_globals['_DELETEFILEREQUEST']._serialized_end=868
|
|
60
|
+
_globals['_DELETEFILERESPONSE']._serialized_start=870
|
|
61
|
+
_globals['_DELETEFILERESPONSE']._serialized_end=890
|
|
62
|
+
_globals['_LISTFILESREQUEST']._serialized_start=892
|
|
63
|
+
_globals['_LISTFILESREQUEST']._serialized_end=910
|
|
64
|
+
_globals['_LISTFILESRESPONSE']._serialized_start=912
|
|
65
|
+
_globals['_LISTFILESRESPONSE']._serialized_end=970
|
|
66
|
+
_globals['_RUNREQUEST']._serialized_start=972
|
|
67
|
+
_globals['_RUNREQUEST']._serialized_end=1068
|
|
68
|
+
_globals['_RUNOUTPUT']._serialized_start=1071
|
|
69
|
+
_globals['_RUNOUTPUT']._serialized_end=1273
|
|
70
|
+
_globals['_RUNPIPELINEREQUEST']._serialized_start=1275
|
|
71
|
+
_globals['_RUNPIPELINEREQUEST']._serialized_end=1388
|
|
72
|
+
_globals['_PIPELINESTEP']._serialized_start=1391
|
|
73
|
+
_globals['_PIPELINESTEP']._serialized_end=1557
|
|
74
|
+
_globals['_PIPELINEOUTPUT']._serialized_start=1560
|
|
75
|
+
_globals['_PIPELINEOUTPUT']._serialized_end=1750
|
|
76
|
+
_globals['_PIPELINESTARTED']._serialized_start=1752
|
|
77
|
+
_globals['_PIPELINESTARTED']._serialized_end=1787
|
|
78
|
+
_globals['_STEPEVENT']._serialized_start=1790
|
|
79
|
+
_globals['_STEPEVENT']._serialized_end=2008
|
|
80
|
+
_globals['_PIPELINECOMPLETED']._serialized_start=2010
|
|
81
|
+
_globals['_PIPELINECOMPLETED']._serialized_end=2100
|
|
82
|
+
_globals['_RUNNER']._serialized_start=2345
|
|
83
|
+
_globals['_RUNNER']._serialized_end=2864
|
|
84
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
from google.protobuf.internal import containers as _containers
|
|
2
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
3
|
+
from google.protobuf import descriptor as _descriptor
|
|
4
|
+
from google.protobuf import message as _message
|
|
5
|
+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
|
6
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
7
|
+
|
|
8
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
9
|
+
|
|
10
|
+
class OutputStream(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
11
|
+
__slots__ = ()
|
|
12
|
+
OUTPUT_STREAM_UNSPECIFIED: _ClassVar[OutputStream]
|
|
13
|
+
OUTPUT_STREAM_STDOUT: _ClassVar[OutputStream]
|
|
14
|
+
OUTPUT_STREAM_STDERR: _ClassVar[OutputStream]
|
|
15
|
+
|
|
16
|
+
class RunStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
17
|
+
__slots__ = ()
|
|
18
|
+
RUN_STATUS_UNSPECIFIED: _ClassVar[RunStatus]
|
|
19
|
+
RUN_STATUS_COMPLETED: _ClassVar[RunStatus]
|
|
20
|
+
RUN_STATUS_TIMED_OUT: _ClassVar[RunStatus]
|
|
21
|
+
RUN_STATUS_SIGNALED: _ClassVar[RunStatus]
|
|
22
|
+
RUN_STATUS_SKIPPED: _ClassVar[RunStatus]
|
|
23
|
+
OUTPUT_STREAM_UNSPECIFIED: OutputStream
|
|
24
|
+
OUTPUT_STREAM_STDOUT: OutputStream
|
|
25
|
+
OUTPUT_STREAM_STDERR: OutputStream
|
|
26
|
+
RUN_STATUS_UNSPECIFIED: RunStatus
|
|
27
|
+
RUN_STATUS_COMPLETED: RunStatus
|
|
28
|
+
RUN_STATUS_TIMED_OUT: RunStatus
|
|
29
|
+
RUN_STATUS_SIGNALED: RunStatus
|
|
30
|
+
RUN_STATUS_SKIPPED: RunStatus
|
|
31
|
+
|
|
32
|
+
class File(_message.Message):
|
|
33
|
+
__slots__ = ("name", "content")
|
|
34
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
35
|
+
CONTENT_FIELD_NUMBER: _ClassVar[int]
|
|
36
|
+
name: str
|
|
37
|
+
content: bytes
|
|
38
|
+
def __init__(self, name: _Optional[str] = ..., content: _Optional[bytes] = ...) -> None: ...
|
|
39
|
+
|
|
40
|
+
class FileChunk(_message.Message):
|
|
41
|
+
__slots__ = ("name", "data")
|
|
42
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
43
|
+
DATA_FIELD_NUMBER: _ClassVar[int]
|
|
44
|
+
name: str
|
|
45
|
+
data: bytes
|
|
46
|
+
def __init__(self, name: _Optional[str] = ..., data: _Optional[bytes] = ...) -> None: ...
|
|
47
|
+
|
|
48
|
+
class FileInfo(_message.Message):
|
|
49
|
+
__slots__ = ("name", "size_bytes")
|
|
50
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
51
|
+
SIZE_BYTES_FIELD_NUMBER: _ClassVar[int]
|
|
52
|
+
name: str
|
|
53
|
+
size_bytes: int
|
|
54
|
+
def __init__(self, name: _Optional[str] = ..., size_bytes: _Optional[int] = ...) -> None: ...
|
|
55
|
+
|
|
56
|
+
class OutputChunk(_message.Message):
|
|
57
|
+
__slots__ = ("stream", "data")
|
|
58
|
+
STREAM_FIELD_NUMBER: _ClassVar[int]
|
|
59
|
+
DATA_FIELD_NUMBER: _ClassVar[int]
|
|
60
|
+
stream: OutputStream
|
|
61
|
+
data: bytes
|
|
62
|
+
def __init__(self, stream: _Optional[_Union[OutputStream, str]] = ..., data: _Optional[bytes] = ...) -> None: ...
|
|
63
|
+
|
|
64
|
+
class RunStarted(_message.Message):
|
|
65
|
+
__slots__ = ("model", "file_root")
|
|
66
|
+
MODEL_FIELD_NUMBER: _ClassVar[int]
|
|
67
|
+
FILE_ROOT_FIELD_NUMBER: _ClassVar[int]
|
|
68
|
+
model: str
|
|
69
|
+
file_root: str
|
|
70
|
+
def __init__(self, model: _Optional[str] = ..., file_root: _Optional[str] = ...) -> None: ...
|
|
71
|
+
|
|
72
|
+
class RunCompleted(_message.Message):
|
|
73
|
+
__slots__ = ("status", "exit_code", "elapsed_seconds", "output_files")
|
|
74
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
75
|
+
EXIT_CODE_FIELD_NUMBER: _ClassVar[int]
|
|
76
|
+
ELAPSED_SECONDS_FIELD_NUMBER: _ClassVar[int]
|
|
77
|
+
OUTPUT_FILES_FIELD_NUMBER: _ClassVar[int]
|
|
78
|
+
status: RunStatus
|
|
79
|
+
exit_code: int
|
|
80
|
+
elapsed_seconds: float
|
|
81
|
+
output_files: _containers.RepeatedCompositeFieldContainer[FileInfo]
|
|
82
|
+
def __init__(self, status: _Optional[_Union[RunStatus, str]] = ..., exit_code: _Optional[int] = ..., elapsed_seconds: _Optional[float] = ..., output_files: _Optional[_Iterable[_Union[FileInfo, _Mapping]]] = ...) -> None: ...
|
|
83
|
+
|
|
84
|
+
class RunSyncRequest(_message.Message):
|
|
85
|
+
__slots__ = ("model", "file_root", "inputs", "timeout_seconds")
|
|
86
|
+
MODEL_FIELD_NUMBER: _ClassVar[int]
|
|
87
|
+
FILE_ROOT_FIELD_NUMBER: _ClassVar[int]
|
|
88
|
+
INPUTS_FIELD_NUMBER: _ClassVar[int]
|
|
89
|
+
TIMEOUT_SECONDS_FIELD_NUMBER: _ClassVar[int]
|
|
90
|
+
model: str
|
|
91
|
+
file_root: str
|
|
92
|
+
inputs: _containers.RepeatedCompositeFieldContainer[File]
|
|
93
|
+
timeout_seconds: int
|
|
94
|
+
def __init__(self, model: _Optional[str] = ..., file_root: _Optional[str] = ..., inputs: _Optional[_Iterable[_Union[File, _Mapping]]] = ..., timeout_seconds: _Optional[int] = ...) -> None: ...
|
|
95
|
+
|
|
96
|
+
class RunSyncResponse(_message.Message):
|
|
97
|
+
__slots__ = ("status", "exit_code", "stdout", "stderr", "elapsed_seconds", "outputs")
|
|
98
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
99
|
+
EXIT_CODE_FIELD_NUMBER: _ClassVar[int]
|
|
100
|
+
STDOUT_FIELD_NUMBER: _ClassVar[int]
|
|
101
|
+
STDERR_FIELD_NUMBER: _ClassVar[int]
|
|
102
|
+
ELAPSED_SECONDS_FIELD_NUMBER: _ClassVar[int]
|
|
103
|
+
OUTPUTS_FIELD_NUMBER: _ClassVar[int]
|
|
104
|
+
status: RunStatus
|
|
105
|
+
exit_code: int
|
|
106
|
+
stdout: bytes
|
|
107
|
+
stderr: bytes
|
|
108
|
+
elapsed_seconds: float
|
|
109
|
+
outputs: _containers.RepeatedCompositeFieldContainer[File]
|
|
110
|
+
def __init__(self, status: _Optional[_Union[RunStatus, str]] = ..., exit_code: _Optional[int] = ..., stdout: _Optional[bytes] = ..., stderr: _Optional[bytes] = ..., elapsed_seconds: _Optional[float] = ..., outputs: _Optional[_Iterable[_Union[File, _Mapping]]] = ...) -> None: ...
|
|
111
|
+
|
|
112
|
+
class UploadResponse(_message.Message):
|
|
113
|
+
__slots__ = ("name", "size_bytes")
|
|
114
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
115
|
+
SIZE_BYTES_FIELD_NUMBER: _ClassVar[int]
|
|
116
|
+
name: str
|
|
117
|
+
size_bytes: int
|
|
118
|
+
def __init__(self, name: _Optional[str] = ..., size_bytes: _Optional[int] = ...) -> None: ...
|
|
119
|
+
|
|
120
|
+
class GetFileRequest(_message.Message):
|
|
121
|
+
__slots__ = ("name",)
|
|
122
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
123
|
+
name: str
|
|
124
|
+
def __init__(self, name: _Optional[str] = ...) -> None: ...
|
|
125
|
+
|
|
126
|
+
class DeleteFileRequest(_message.Message):
|
|
127
|
+
__slots__ = ("name",)
|
|
128
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
129
|
+
name: str
|
|
130
|
+
def __init__(self, name: _Optional[str] = ...) -> None: ...
|
|
131
|
+
|
|
132
|
+
class DeleteFileResponse(_message.Message):
|
|
133
|
+
__slots__ = ()
|
|
134
|
+
def __init__(self) -> None: ...
|
|
135
|
+
|
|
136
|
+
class ListFilesRequest(_message.Message):
|
|
137
|
+
__slots__ = ()
|
|
138
|
+
def __init__(self) -> None: ...
|
|
139
|
+
|
|
140
|
+
class ListFilesResponse(_message.Message):
|
|
141
|
+
__slots__ = ("files",)
|
|
142
|
+
FILES_FIELD_NUMBER: _ClassVar[int]
|
|
143
|
+
files: _containers.RepeatedCompositeFieldContainer[FileInfo]
|
|
144
|
+
def __init__(self, files: _Optional[_Iterable[_Union[FileInfo, _Mapping]]] = ...) -> None: ...
|
|
145
|
+
|
|
146
|
+
class RunRequest(_message.Message):
|
|
147
|
+
__slots__ = ("model", "file_root", "timeout_seconds")
|
|
148
|
+
MODEL_FIELD_NUMBER: _ClassVar[int]
|
|
149
|
+
FILE_ROOT_FIELD_NUMBER: _ClassVar[int]
|
|
150
|
+
TIMEOUT_SECONDS_FIELD_NUMBER: _ClassVar[int]
|
|
151
|
+
model: str
|
|
152
|
+
file_root: str
|
|
153
|
+
timeout_seconds: int
|
|
154
|
+
def __init__(self, model: _Optional[str] = ..., file_root: _Optional[str] = ..., timeout_seconds: _Optional[int] = ...) -> None: ...
|
|
155
|
+
|
|
156
|
+
class RunOutput(_message.Message):
|
|
157
|
+
__slots__ = ("started", "output", "completed", "file")
|
|
158
|
+
STARTED_FIELD_NUMBER: _ClassVar[int]
|
|
159
|
+
OUTPUT_FIELD_NUMBER: _ClassVar[int]
|
|
160
|
+
COMPLETED_FIELD_NUMBER: _ClassVar[int]
|
|
161
|
+
FILE_FIELD_NUMBER: _ClassVar[int]
|
|
162
|
+
started: RunStarted
|
|
163
|
+
output: OutputChunk
|
|
164
|
+
completed: RunCompleted
|
|
165
|
+
file: FileChunk
|
|
166
|
+
def __init__(self, started: _Optional[_Union[RunStarted, _Mapping]] = ..., output: _Optional[_Union[OutputChunk, _Mapping]] = ..., completed: _Optional[_Union[RunCompleted, _Mapping]] = ..., file: _Optional[_Union[FileChunk, _Mapping]] = ...) -> None: ...
|
|
167
|
+
|
|
168
|
+
class RunPipelineRequest(_message.Message):
|
|
169
|
+
__slots__ = ("steps", "timeout_seconds")
|
|
170
|
+
STEPS_FIELD_NUMBER: _ClassVar[int]
|
|
171
|
+
TIMEOUT_SECONDS_FIELD_NUMBER: _ClassVar[int]
|
|
172
|
+
steps: _containers.RepeatedCompositeFieldContainer[PipelineStep]
|
|
173
|
+
timeout_seconds: int
|
|
174
|
+
def __init__(self, steps: _Optional[_Iterable[_Union[PipelineStep, _Mapping]]] = ..., timeout_seconds: _Optional[int] = ...) -> None: ...
|
|
175
|
+
|
|
176
|
+
class PipelineStep(_message.Message):
|
|
177
|
+
__slots__ = ("id", "model", "file_root", "inputs", "depends_on", "timeout_seconds")
|
|
178
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
|
179
|
+
MODEL_FIELD_NUMBER: _ClassVar[int]
|
|
180
|
+
FILE_ROOT_FIELD_NUMBER: _ClassVar[int]
|
|
181
|
+
INPUTS_FIELD_NUMBER: _ClassVar[int]
|
|
182
|
+
DEPENDS_ON_FIELD_NUMBER: _ClassVar[int]
|
|
183
|
+
TIMEOUT_SECONDS_FIELD_NUMBER: _ClassVar[int]
|
|
184
|
+
id: str
|
|
185
|
+
model: str
|
|
186
|
+
file_root: str
|
|
187
|
+
inputs: _containers.RepeatedCompositeFieldContainer[File]
|
|
188
|
+
depends_on: _containers.RepeatedScalarFieldContainer[str]
|
|
189
|
+
timeout_seconds: int
|
|
190
|
+
def __init__(self, id: _Optional[str] = ..., model: _Optional[str] = ..., file_root: _Optional[str] = ..., inputs: _Optional[_Iterable[_Union[File, _Mapping]]] = ..., depends_on: _Optional[_Iterable[str]] = ..., timeout_seconds: _Optional[int] = ...) -> None: ...
|
|
191
|
+
|
|
192
|
+
class PipelineOutput(_message.Message):
|
|
193
|
+
__slots__ = ("pipeline_started", "step", "pipeline_completed")
|
|
194
|
+
PIPELINE_STARTED_FIELD_NUMBER: _ClassVar[int]
|
|
195
|
+
STEP_FIELD_NUMBER: _ClassVar[int]
|
|
196
|
+
PIPELINE_COMPLETED_FIELD_NUMBER: _ClassVar[int]
|
|
197
|
+
pipeline_started: PipelineStarted
|
|
198
|
+
step: StepEvent
|
|
199
|
+
pipeline_completed: PipelineCompleted
|
|
200
|
+
def __init__(self, pipeline_started: _Optional[_Union[PipelineStarted, _Mapping]] = ..., step: _Optional[_Union[StepEvent, _Mapping]] = ..., pipeline_completed: _Optional[_Union[PipelineCompleted, _Mapping]] = ...) -> None: ...
|
|
201
|
+
|
|
202
|
+
class PipelineStarted(_message.Message):
|
|
203
|
+
__slots__ = ("step_ids",)
|
|
204
|
+
STEP_IDS_FIELD_NUMBER: _ClassVar[int]
|
|
205
|
+
step_ids: _containers.RepeatedScalarFieldContainer[str]
|
|
206
|
+
def __init__(self, step_ids: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
207
|
+
|
|
208
|
+
class StepEvent(_message.Message):
|
|
209
|
+
__slots__ = ("step_id", "started", "output", "completed", "file")
|
|
210
|
+
STEP_ID_FIELD_NUMBER: _ClassVar[int]
|
|
211
|
+
STARTED_FIELD_NUMBER: _ClassVar[int]
|
|
212
|
+
OUTPUT_FIELD_NUMBER: _ClassVar[int]
|
|
213
|
+
COMPLETED_FIELD_NUMBER: _ClassVar[int]
|
|
214
|
+
FILE_FIELD_NUMBER: _ClassVar[int]
|
|
215
|
+
step_id: str
|
|
216
|
+
started: RunStarted
|
|
217
|
+
output: OutputChunk
|
|
218
|
+
completed: RunCompleted
|
|
219
|
+
file: FileChunk
|
|
220
|
+
def __init__(self, step_id: _Optional[str] = ..., started: _Optional[_Union[RunStarted, _Mapping]] = ..., output: _Optional[_Union[OutputChunk, _Mapping]] = ..., completed: _Optional[_Union[RunCompleted, _Mapping]] = ..., file: _Optional[_Union[FileChunk, _Mapping]] = ...) -> None: ...
|
|
221
|
+
|
|
222
|
+
class PipelineCompleted(_message.Message):
|
|
223
|
+
__slots__ = ("all_succeeded", "elapsed_seconds", "skipped_steps")
|
|
224
|
+
ALL_SUCCEEDED_FIELD_NUMBER: _ClassVar[int]
|
|
225
|
+
ELAPSED_SECONDS_FIELD_NUMBER: _ClassVar[int]
|
|
226
|
+
SKIPPED_STEPS_FIELD_NUMBER: _ClassVar[int]
|
|
227
|
+
all_succeeded: bool
|
|
228
|
+
elapsed_seconds: float
|
|
229
|
+
skipped_steps: _containers.RepeatedScalarFieldContainer[str]
|
|
230
|
+
def __init__(self, all_succeeded: bool = ..., elapsed_seconds: _Optional[float] = ..., skipped_steps: _Optional[_Iterable[str]] = ...) -> None: ...
|