compose-api-client 0.1.9__tar.gz → 0.7.6__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.
- compose_api_client-0.7.6/.gitignore +237 -0
- compose_api_client-0.7.6/PKG-INFO +28 -0
- compose_api_client-0.7.6/README.md +11 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/biosim_api/check_health_health_get.py +13 -13
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/biosim_api/get_version_version_get.py +11 -13
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/compute/get_processes_list.py +18 -18
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/compute/get_simulator_list.py +11 -11
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/compute/get_steps_list.py +17 -19
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/curated/run_copasi.py +21 -17
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/curated/run_tellurium.py +21 -17
- compose_api_client-0.7.6/compose_api_client/api/datasets/get_dataset.py +166 -0
- compose_api_client-0.7.6/compose_api_client/api/datasets/get_dataset_content.py +168 -0
- compose_api_client-0.7.6/compose_api_client/api/datasets/get_dataset_file.py +210 -0
- compose_api_client-0.7.6/compose_api_client/api/datasets/list_datasets.py +269 -0
- compose_api_client-0.7.6/compose_api_client/api/results/get_simulation_events.py +265 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/results/get_simulation_results_file.py +24 -17
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/results/get_simulation_status.py +24 -17
- compose_api_client-0.7.6/compose_api_client/api/results/get_simulation_trace.py +170 -0
- compose_api_client-0.1.9/compose_api_client/api/simulation/run_simulation.py → compose_api_client-0.7.6/compose_api_client/api/results/get_simulation_trace_chrome.py +48 -58
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/results/get_simulations_status_batch.py +19 -17
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/results/get_simulator_build_status.py +24 -17
- compose_api_client-0.7.6/compose_api_client/api/simulation/__init__.py +1 -0
- compose_api_client-0.7.6/compose_api_client/api/simulation/run_simulation.py +237 -0
- compose_api_client-0.7.6/compose_api_client/api/simulations/__init__.py +1 -0
- compose_api_client-0.7.6/compose_api_client/api/simulations/get_simulation.py +165 -0
- compose_api_client-0.7.6/compose_api_client/api/simulations/list_simulations.py +251 -0
- compose_api_client-0.7.6/compose_api_client/cli/__init__.py +5 -0
- compose_api_client-0.7.6/compose_api_client/cli/commands.py +731 -0
- compose_api_client-0.7.6/compose_api_client/cli/render.py +117 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/client.py +25 -43
- compose_api_client-0.7.6/compose_api_client/ext/__init__.py +28 -0
- compose_api_client-0.7.6/compose_api_client/ext/errors.py +69 -0
- compose_api_client-0.7.6/compose_api_client/ext/session.py +710 -0
- compose_api_client-0.7.6/compose_api_client/models/__init__.py +85 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/bi_graph_compute_type.py +2 -2
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/bi_graph_process.py +10 -10
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/bi_graph_step.py +10 -10
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/body_run_copasi.py +5 -5
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/body_run_simulation.py +5 -5
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/body_run_tellurium.py +5 -5
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/check_health_health_get_response_check_health_health_get.py +3 -2
- compose_api_client-0.7.6/compose_api_client/models/containerization_engine.py +11 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/containerization_file_repr.py +15 -5
- compose_api_client-0.7.6/compose_api_client/models/dataset.py +241 -0
- compose_api_client-0.7.6/compose_api_client/models/dataset_attributes.py +45 -0
- compose_api_client-0.7.6/compose_api_client/models/dataset_page.py +103 -0
- compose_api_client-0.7.6/compose_api_client/models/get_simulation_trace_chrome_response_get_simulation_trace_chrome.py +45 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/hpc_run.py +62 -47
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/http_validation_error.py +13 -14
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/job_status.py +2 -2
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/job_type.py +2 -2
- compose_api_client-0.7.6/compose_api_client/models/list_simulations_status_type_0.py +19 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/package_type.py +2 -2
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/registered_package.py +16 -20
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/registered_simulators.py +16 -23
- compose_api_client-0.7.6/compose_api_client/models/run_event.py +307 -0
- compose_api_client-0.7.6/compose_api_client/models/run_event_baggage_type_0.py +45 -0
- compose_api_client-0.7.6/compose_api_client/models/run_event_page.py +120 -0
- compose_api_client-0.7.6/compose_api_client/models/run_event_payload_type_0.py +45 -0
- compose_api_client-0.7.6/compose_api_client/models/run_event_tags_type_0.py +45 -0
- compose_api_client-0.7.6/compose_api_client/models/run_span.py +228 -0
- compose_api_client-0.7.6/compose_api_client/models/run_span_attrs_type_0.py +45 -0
- compose_api_client-0.7.6/compose_api_client/models/run_trace_tree.py +96 -0
- compose_api_client-0.7.6/compose_api_client/models/simulation_detail.py +289 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/simulation_experiment.py +14 -19
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/simulation_experiment_metadata.py +3 -2
- compose_api_client-0.7.6/compose_api_client/models/simulation_page.py +103 -0
- compose_api_client-0.7.6/compose_api_client/models/simulation_summary.py +271 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/simulator_version.py +35 -44
- compose_api_client-0.7.6/compose_api_client/models/span_tree.py +113 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/models/validation_error.py +46 -18
- compose_api_client-0.7.6/compose_api_client/models/validation_error_context.py +45 -0
- compose_api_client-0.7.6/compose_api_client/models/visibility.py +9 -0
- compose_api_client-0.7.6/compose_api_client/openapi.json +2489 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/types.py +9 -9
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/utils/run_simulation_and_wait.py +7 -21
- compose_api_client-0.7.6/pyproject.toml +39 -0
- compose_api_client-0.1.9/PKG-INFO +0 -9
- compose_api_client-0.1.9/compose_api_client/models/__init__.py +0 -45
- compose_api_client-0.1.9/compose_api_client.egg-info/PKG-INFO +0 -9
- compose_api_client-0.1.9/compose_api_client.egg-info/SOURCES.txt +0 -51
- compose_api_client-0.1.9/compose_api_client.egg-info/dependency_links.txt +0 -1
- compose_api_client-0.1.9/compose_api_client.egg-info/requires.txt +0 -3
- compose_api_client-0.1.9/compose_api_client.egg-info/top_level.txt +0 -1
- compose_api_client-0.1.9/pyproject.toml +0 -19
- compose_api_client-0.1.9/setup.cfg +0 -4
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/__init__.py +0 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/__init__.py +0 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/biosim_api/__init__.py +0 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/compute/__init__.py +0 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/api/curated/__init__.py +0 -0
- {compose_api_client-0.1.9/compose_api_client/api/results → compose_api_client-0.7.6/compose_api_client/api/datasets}/__init__.py +0 -0
- {compose_api_client-0.1.9/compose_api_client/api/simulation → compose_api_client-0.7.6/compose_api_client/api/results}/__init__.py +0 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/errors.py +0 -0
- /compose_api_client-0.1.9/README.md → /compose_api_client-0.7.6/compose_api_client/py.typed +0 -0
- {compose_api_client-0.1.9 → compose_api_client-0.7.6}/compose_api_client/utils/__init__.py +0 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
docs/source
|
|
2
|
+
.idea
|
|
3
|
+
|
|
4
|
+
# From https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore
|
|
5
|
+
|
|
6
|
+
# Byte-compiled / optimized / DLL files
|
|
7
|
+
__pycache__/
|
|
8
|
+
*.py[codz]
|
|
9
|
+
*$py.class
|
|
10
|
+
|
|
11
|
+
# C extensions
|
|
12
|
+
*.so
|
|
13
|
+
|
|
14
|
+
# Distribution / packaging
|
|
15
|
+
.Python
|
|
16
|
+
build/
|
|
17
|
+
develop-eggs/
|
|
18
|
+
dist/
|
|
19
|
+
downloads/
|
|
20
|
+
eggs/
|
|
21
|
+
.eggs/
|
|
22
|
+
lib/
|
|
23
|
+
lib64/
|
|
24
|
+
parts/
|
|
25
|
+
sdist/
|
|
26
|
+
var/
|
|
27
|
+
wheels/
|
|
28
|
+
share/python-wheels/
|
|
29
|
+
*.egg-info/
|
|
30
|
+
.installed.cfg
|
|
31
|
+
*.egg
|
|
32
|
+
MANIFEST
|
|
33
|
+
|
|
34
|
+
# PyInstaller
|
|
35
|
+
# Usually these files are written by a python script from a template
|
|
36
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
37
|
+
*.manifest
|
|
38
|
+
*.spec
|
|
39
|
+
|
|
40
|
+
# Installer logs
|
|
41
|
+
pip-log.txt
|
|
42
|
+
pip-delete-this-directory.txt
|
|
43
|
+
|
|
44
|
+
# Unit test / coverage reports
|
|
45
|
+
htmlcov/
|
|
46
|
+
.tox/
|
|
47
|
+
.nox/
|
|
48
|
+
.coverage
|
|
49
|
+
.coverage.*
|
|
50
|
+
.cache
|
|
51
|
+
nosetests.xml
|
|
52
|
+
coverage.xml
|
|
53
|
+
*.cover
|
|
54
|
+
*.py.cover
|
|
55
|
+
.hypothesis/
|
|
56
|
+
.pytest_cache/
|
|
57
|
+
cover/
|
|
58
|
+
|
|
59
|
+
# Translations
|
|
60
|
+
*.mo
|
|
61
|
+
*.pot
|
|
62
|
+
|
|
63
|
+
# Django stuff:
|
|
64
|
+
*.log
|
|
65
|
+
local_settings.py
|
|
66
|
+
db.sqlite3
|
|
67
|
+
db.sqlite3-journal
|
|
68
|
+
|
|
69
|
+
# Flask stuff:
|
|
70
|
+
instance/
|
|
71
|
+
.webassets-cache
|
|
72
|
+
|
|
73
|
+
# Scrapy stuff:
|
|
74
|
+
.scrapy
|
|
75
|
+
|
|
76
|
+
# Sphinx documentation
|
|
77
|
+
docs/_build/
|
|
78
|
+
|
|
79
|
+
# PyBuilder
|
|
80
|
+
.pybuilder/
|
|
81
|
+
target/
|
|
82
|
+
|
|
83
|
+
# Jupyter Notebook
|
|
84
|
+
.ipynb_checkpoints
|
|
85
|
+
|
|
86
|
+
# IPython
|
|
87
|
+
profile_default/
|
|
88
|
+
ipython_config.py
|
|
89
|
+
|
|
90
|
+
# pyenv
|
|
91
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
92
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
93
|
+
# .python-version
|
|
94
|
+
|
|
95
|
+
# pipenv
|
|
96
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
97
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
98
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
99
|
+
# install all needed dependencies.
|
|
100
|
+
#Pipfile.lock
|
|
101
|
+
|
|
102
|
+
# UV
|
|
103
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
104
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
105
|
+
# commonly ignored for libraries.
|
|
106
|
+
#uv.lock
|
|
107
|
+
|
|
108
|
+
# poetry
|
|
109
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
110
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
111
|
+
# commonly ignored for libraries.
|
|
112
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
113
|
+
#poetry.lock
|
|
114
|
+
#poetry.toml
|
|
115
|
+
|
|
116
|
+
# pdm
|
|
117
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
118
|
+
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
|
|
119
|
+
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
|
|
120
|
+
#pdm.lock
|
|
121
|
+
#pdm.toml
|
|
122
|
+
.pdm-python
|
|
123
|
+
.pdm-build/
|
|
124
|
+
|
|
125
|
+
# pixi
|
|
126
|
+
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
|
|
127
|
+
#pixi.lock
|
|
128
|
+
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
|
|
129
|
+
# in the .venv directory. It is recommended not to include this directory in version control.
|
|
130
|
+
.pixi
|
|
131
|
+
|
|
132
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
133
|
+
__pypackages__/
|
|
134
|
+
|
|
135
|
+
# Celery stuff
|
|
136
|
+
celerybeat-schedule
|
|
137
|
+
celerybeat.pid
|
|
138
|
+
|
|
139
|
+
# SageMath parsed files
|
|
140
|
+
*.sage.py
|
|
141
|
+
|
|
142
|
+
# Environments
|
|
143
|
+
.env
|
|
144
|
+
.envrc
|
|
145
|
+
.venv
|
|
146
|
+
env/
|
|
147
|
+
venv/
|
|
148
|
+
ENV/
|
|
149
|
+
env.bak/
|
|
150
|
+
venv.bak/
|
|
151
|
+
|
|
152
|
+
# Spyder project settings
|
|
153
|
+
.spyderproject
|
|
154
|
+
.spyproject
|
|
155
|
+
|
|
156
|
+
# Rope project settings
|
|
157
|
+
.ropeproject
|
|
158
|
+
|
|
159
|
+
# mkdocs documentation
|
|
160
|
+
/site
|
|
161
|
+
|
|
162
|
+
# mypy
|
|
163
|
+
.mypy_cache/
|
|
164
|
+
.dmypy.json
|
|
165
|
+
dmypy.json
|
|
166
|
+
|
|
167
|
+
# Pyre type checker
|
|
168
|
+
.pyre/
|
|
169
|
+
|
|
170
|
+
# pytype static type analyzer
|
|
171
|
+
.pytype/
|
|
172
|
+
|
|
173
|
+
# Cython debug symbols
|
|
174
|
+
cython_debug/
|
|
175
|
+
|
|
176
|
+
# PyCharm
|
|
177
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
178
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
179
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
180
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
181
|
+
.idea/
|
|
182
|
+
|
|
183
|
+
# Abstra
|
|
184
|
+
# Abstra is an AI-powered process automation framework.
|
|
185
|
+
# Ignore directories containing user credentials, local state, and settings.
|
|
186
|
+
# Learn more at https://abstra.io/docs
|
|
187
|
+
.abstra/
|
|
188
|
+
|
|
189
|
+
# Visual Studio Code
|
|
190
|
+
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
|
|
191
|
+
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
|
|
192
|
+
# and can be added to the global gitignore or merged into this file. However, if you prefer,
|
|
193
|
+
# you could uncomment the following to ignore the entire vscode folder
|
|
194
|
+
# .vscode/
|
|
195
|
+
|
|
196
|
+
# Ruff stuff:
|
|
197
|
+
.ruff_cache/
|
|
198
|
+
|
|
199
|
+
# PyPI configuration file
|
|
200
|
+
.pypirc
|
|
201
|
+
|
|
202
|
+
# Cursor
|
|
203
|
+
# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
|
|
204
|
+
# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
|
|
205
|
+
# refer to https://docs.cursor.com/context/ignore-files
|
|
206
|
+
.cursorignore
|
|
207
|
+
.cursorindexingignore
|
|
208
|
+
|
|
209
|
+
# Marimo
|
|
210
|
+
marimo/_static/
|
|
211
|
+
marimo/_lsp/
|
|
212
|
+
__marimo__/
|
|
213
|
+
|
|
214
|
+
# Vscode config files
|
|
215
|
+
.vscode/
|
|
216
|
+
|
|
217
|
+
# PyCharm
|
|
218
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
219
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
220
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
221
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
222
|
+
#.idea/
|
|
223
|
+
|
|
224
|
+
assets/dev/config/.dev_env
|
|
225
|
+
|
|
226
|
+
assets/dev/config/compose_known_hosts
|
|
227
|
+
# Grant text stays private; the tracker under trd3/tracking/ is versioned.
|
|
228
|
+
/docs/grant/**
|
|
229
|
+
!/docs/grant/trd3/
|
|
230
|
+
!/docs/grant/trd3/tracking/
|
|
231
|
+
!/docs/grant/trd3/tracking/**
|
|
232
|
+
|
|
233
|
+
# Agentic Framework
|
|
234
|
+
.kilo/
|
|
235
|
+
.agents/
|
|
236
|
+
.crush/
|
|
237
|
+
.freebuff/
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: compose-api-client
|
|
3
|
+
Version: 0.7.6
|
|
4
|
+
Summary: Python client for compose-api: generated from its OpenAPI spec, plus a hand-written application layer
|
|
5
|
+
Project-URL: Repository, https://github.com/biosimulations/compose-api
|
|
6
|
+
Project-URL: Documentation, https://github.com/biosimulations/compose-api/blob/main/docs/plan-cli.md
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Requires-Python: >=3.11
|
|
9
|
+
Requires-Dist: attrs>=25.4.0
|
|
10
|
+
Requires-Dist: httpx<0.29,>=0.28.1
|
|
11
|
+
Requires-Dist: python-dateutil>=2.9.0.post0
|
|
12
|
+
Provides-Extra: cli
|
|
13
|
+
Requires-Dist: click>=8.1; extra == 'cli'
|
|
14
|
+
Requires-Dist: rich>=13.7; extra == 'cli'
|
|
15
|
+
Requires-Dist: typer>=0.16.1; extra == 'cli'
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
|
|
18
|
+
# compose-api-client
|
|
19
|
+
|
|
20
|
+
The Python client for [compose-api](https://github.com/biosimulations/compose-api).
|
|
21
|
+
|
|
22
|
+
- `compose_api_client` (`api/`, `models/`, `client.py`, `types.py`, `errors.py`): **generated** from the service's
|
|
23
|
+
OpenAPI spec by `make clients` in the repository root. Never edit these by hand; `make check-clients` fails on drift.
|
|
24
|
+
- `compose_api_client.utils.run_simulation_and_wait`: the hand-written helper pbest uses (kept from 0.2.0).
|
|
25
|
+
|
|
26
|
+
Until 0.2.0 this package lived in [biosimulations/compose-api-client](https://github.com/biosimulations/compose-api-client);
|
|
27
|
+
it was brought here with its history. The plan for this package, its application layer and the `compose-api` command
|
|
28
|
+
line is [`docs/plan-cli.md`](../../docs/plan-cli.md).
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# compose-api-client
|
|
2
|
+
|
|
3
|
+
The Python client for [compose-api](https://github.com/biosimulations/compose-api).
|
|
4
|
+
|
|
5
|
+
- `compose_api_client` (`api/`, `models/`, `client.py`, `types.py`, `errors.py`): **generated** from the service's
|
|
6
|
+
OpenAPI spec by `make clients` in the repository root. Never edit these by hand; `make check-clients` fails on drift.
|
|
7
|
+
- `compose_api_client.utils.run_simulation_and_wait`: the hand-written helper pbest uses (kept from 0.2.0).
|
|
8
|
+
|
|
9
|
+
Until 0.2.0 this package lived in [biosimulations/compose-api-client](https://github.com/biosimulations/compose-api-client);
|
|
10
|
+
it was brought here with its history. The plan for this package, its application layer and the `compose-api` command
|
|
11
|
+
line is [`docs/plan-cli.md`](../../docs/plan-cli.md).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from http import HTTPStatus
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any
|
|
3
3
|
|
|
4
4
|
import httpx
|
|
5
5
|
|
|
@@ -12,6 +12,7 @@ from ...types import Response
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def _get_kwargs() -> dict[str, Any]:
|
|
15
|
+
|
|
15
16
|
_kwargs: dict[str, Any] = {
|
|
16
17
|
"method": "get",
|
|
17
18
|
"url": "/health",
|
|
@@ -21,14 +22,13 @@ def _get_kwargs() -> dict[str, Any]:
|
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
def _parse_response(
|
|
24
|
-
*, client:
|
|
25
|
-
) ->
|
|
25
|
+
*, client: AuthenticatedClient | Client, response: httpx.Response
|
|
26
|
+
) -> CheckHealthHealthGetResponseCheckHealthHealthGet | None:
|
|
26
27
|
if response.status_code == 200:
|
|
27
|
-
response_200 = CheckHealthHealthGetResponseCheckHealthHealthGet.from_dict(
|
|
28
|
-
response.json()
|
|
29
|
-
)
|
|
28
|
+
response_200 = CheckHealthHealthGetResponseCheckHealthHealthGet.from_dict(response.json())
|
|
30
29
|
|
|
31
30
|
return response_200
|
|
31
|
+
|
|
32
32
|
if client.raise_on_unexpected_status:
|
|
33
33
|
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
34
34
|
else:
|
|
@@ -36,7 +36,7 @@ def _parse_response(
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
def _build_response(
|
|
39
|
-
*, client:
|
|
39
|
+
*, client: AuthenticatedClient | Client, response: httpx.Response
|
|
40
40
|
) -> Response[CheckHealthHealthGetResponseCheckHealthHealthGet]:
|
|
41
41
|
return Response(
|
|
42
42
|
status_code=HTTPStatus(response.status_code),
|
|
@@ -48,7 +48,7 @@ def _build_response(
|
|
|
48
48
|
|
|
49
49
|
def sync_detailed(
|
|
50
50
|
*,
|
|
51
|
-
client:
|
|
51
|
+
client: AuthenticatedClient | Client,
|
|
52
52
|
) -> Response[CheckHealthHealthGetResponseCheckHealthHealthGet]:
|
|
53
53
|
"""Check Health
|
|
54
54
|
|
|
@@ -71,8 +71,8 @@ def sync_detailed(
|
|
|
71
71
|
|
|
72
72
|
def sync(
|
|
73
73
|
*,
|
|
74
|
-
client:
|
|
75
|
-
) ->
|
|
74
|
+
client: AuthenticatedClient | Client,
|
|
75
|
+
) -> CheckHealthHealthGetResponseCheckHealthHealthGet | None:
|
|
76
76
|
"""Check Health
|
|
77
77
|
|
|
78
78
|
Raises:
|
|
@@ -90,7 +90,7 @@ def sync(
|
|
|
90
90
|
|
|
91
91
|
async def asyncio_detailed(
|
|
92
92
|
*,
|
|
93
|
-
client:
|
|
93
|
+
client: AuthenticatedClient | Client,
|
|
94
94
|
) -> Response[CheckHealthHealthGetResponseCheckHealthHealthGet]:
|
|
95
95
|
"""Check Health
|
|
96
96
|
|
|
@@ -111,8 +111,8 @@ async def asyncio_detailed(
|
|
|
111
111
|
|
|
112
112
|
async def asyncio(
|
|
113
113
|
*,
|
|
114
|
-
client:
|
|
115
|
-
) ->
|
|
114
|
+
client: AuthenticatedClient | Client,
|
|
115
|
+
) -> CheckHealthHealthGetResponseCheckHealthHealthGet | None:
|
|
116
116
|
"""Check Health
|
|
117
117
|
|
|
118
118
|
Raises:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from http import HTTPStatus
|
|
2
|
-
from typing import Any,
|
|
2
|
+
from typing import Any, cast
|
|
3
3
|
|
|
4
4
|
import httpx
|
|
5
5
|
|
|
@@ -9,6 +9,7 @@ from ...types import Response
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def _get_kwargs() -> dict[str, Any]:
|
|
12
|
+
|
|
12
13
|
_kwargs: dict[str, Any] = {
|
|
13
14
|
"method": "get",
|
|
14
15
|
"url": "/version",
|
|
@@ -17,21 +18,18 @@ def _get_kwargs() -> dict[str, Any]:
|
|
|
17
18
|
return _kwargs
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
def _parse_response(
|
|
21
|
-
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
22
|
-
) -> Optional[str]:
|
|
21
|
+
def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> str | None:
|
|
23
22
|
if response.status_code == 200:
|
|
24
23
|
response_200 = cast(str, response.json())
|
|
25
24
|
return response_200
|
|
25
|
+
|
|
26
26
|
if client.raise_on_unexpected_status:
|
|
27
27
|
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
28
28
|
else:
|
|
29
29
|
return None
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
def _build_response(
|
|
33
|
-
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
34
|
-
) -> Response[str]:
|
|
32
|
+
def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[str]:
|
|
35
33
|
return Response(
|
|
36
34
|
status_code=HTTPStatus(response.status_code),
|
|
37
35
|
content=response.content,
|
|
@@ -42,7 +40,7 @@ def _build_response(
|
|
|
42
40
|
|
|
43
41
|
def sync_detailed(
|
|
44
42
|
*,
|
|
45
|
-
client:
|
|
43
|
+
client: AuthenticatedClient | Client,
|
|
46
44
|
) -> Response[str]:
|
|
47
45
|
"""Get Version
|
|
48
46
|
|
|
@@ -65,8 +63,8 @@ def sync_detailed(
|
|
|
65
63
|
|
|
66
64
|
def sync(
|
|
67
65
|
*,
|
|
68
|
-
client:
|
|
69
|
-
) ->
|
|
66
|
+
client: AuthenticatedClient | Client,
|
|
67
|
+
) -> str | None:
|
|
70
68
|
"""Get Version
|
|
71
69
|
|
|
72
70
|
Raises:
|
|
@@ -84,7 +82,7 @@ def sync(
|
|
|
84
82
|
|
|
85
83
|
async def asyncio_detailed(
|
|
86
84
|
*,
|
|
87
|
-
client:
|
|
85
|
+
client: AuthenticatedClient | Client,
|
|
88
86
|
) -> Response[str]:
|
|
89
87
|
"""Get Version
|
|
90
88
|
|
|
@@ -105,8 +103,8 @@ async def asyncio_detailed(
|
|
|
105
103
|
|
|
106
104
|
async def asyncio(
|
|
107
105
|
*,
|
|
108
|
-
client:
|
|
109
|
-
) ->
|
|
106
|
+
client: AuthenticatedClient | Client,
|
|
107
|
+
) -> str | None:
|
|
110
108
|
"""Get Version
|
|
111
109
|
|
|
112
110
|
Raises:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from http import HTTPStatus
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any
|
|
3
3
|
|
|
4
4
|
import httpx
|
|
5
5
|
|
|
@@ -10,6 +10,7 @@ from ...types import Response
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def _get_kwargs() -> dict[str, Any]:
|
|
13
|
+
|
|
13
14
|
_kwargs: dict[str, Any] = {
|
|
14
15
|
"method": "get",
|
|
15
16
|
"url": "/core/processes/list",
|
|
@@ -18,9 +19,7 @@ def _get_kwargs() -> dict[str, Any]:
|
|
|
18
19
|
return _kwargs
|
|
19
20
|
|
|
20
21
|
|
|
21
|
-
def _parse_response(
|
|
22
|
-
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
23
|
-
) -> Optional[list["BiGraphProcess"]]:
|
|
22
|
+
def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> list[BiGraphProcess] | None:
|
|
24
23
|
if response.status_code == 200:
|
|
25
24
|
response_200 = []
|
|
26
25
|
_response_200 = response.json()
|
|
@@ -30,6 +29,7 @@ def _parse_response(
|
|
|
30
29
|
response_200.append(response_200_item)
|
|
31
30
|
|
|
32
31
|
return response_200
|
|
32
|
+
|
|
33
33
|
if client.raise_on_unexpected_status:
|
|
34
34
|
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
35
35
|
else:
|
|
@@ -37,8 +37,8 @@ def _parse_response(
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
def _build_response(
|
|
40
|
-
*, client:
|
|
41
|
-
) -> Response[list[
|
|
40
|
+
*, client: AuthenticatedClient | Client, response: httpx.Response
|
|
41
|
+
) -> Response[list[BiGraphProcess]]:
|
|
42
42
|
return Response(
|
|
43
43
|
status_code=HTTPStatus(response.status_code),
|
|
44
44
|
content=response.content,
|
|
@@ -49,8 +49,8 @@ def _build_response(
|
|
|
49
49
|
|
|
50
50
|
def sync_detailed(
|
|
51
51
|
*,
|
|
52
|
-
client:
|
|
53
|
-
) -> Response[list[
|
|
52
|
+
client: AuthenticatedClient | Client,
|
|
53
|
+
) -> Response[list[BiGraphProcess]]:
|
|
54
54
|
"""Get the list of processes
|
|
55
55
|
|
|
56
56
|
Raises:
|
|
@@ -58,7 +58,7 @@ def sync_detailed(
|
|
|
58
58
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
59
59
|
|
|
60
60
|
Returns:
|
|
61
|
-
Response[list[
|
|
61
|
+
Response[list[BiGraphProcess]]
|
|
62
62
|
"""
|
|
63
63
|
|
|
64
64
|
kwargs = _get_kwargs()
|
|
@@ -72,8 +72,8 @@ def sync_detailed(
|
|
|
72
72
|
|
|
73
73
|
def sync(
|
|
74
74
|
*,
|
|
75
|
-
client:
|
|
76
|
-
) ->
|
|
75
|
+
client: AuthenticatedClient | Client,
|
|
76
|
+
) -> list[BiGraphProcess] | None:
|
|
77
77
|
"""Get the list of processes
|
|
78
78
|
|
|
79
79
|
Raises:
|
|
@@ -81,7 +81,7 @@ def sync(
|
|
|
81
81
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
82
82
|
|
|
83
83
|
Returns:
|
|
84
|
-
list[
|
|
84
|
+
list[BiGraphProcess]
|
|
85
85
|
"""
|
|
86
86
|
|
|
87
87
|
return sync_detailed(
|
|
@@ -91,8 +91,8 @@ def sync(
|
|
|
91
91
|
|
|
92
92
|
async def asyncio_detailed(
|
|
93
93
|
*,
|
|
94
|
-
client:
|
|
95
|
-
) -> Response[list[
|
|
94
|
+
client: AuthenticatedClient | Client,
|
|
95
|
+
) -> Response[list[BiGraphProcess]]:
|
|
96
96
|
"""Get the list of processes
|
|
97
97
|
|
|
98
98
|
Raises:
|
|
@@ -100,7 +100,7 @@ async def asyncio_detailed(
|
|
|
100
100
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
101
101
|
|
|
102
102
|
Returns:
|
|
103
|
-
Response[list[
|
|
103
|
+
Response[list[BiGraphProcess]]
|
|
104
104
|
"""
|
|
105
105
|
|
|
106
106
|
kwargs = _get_kwargs()
|
|
@@ -112,8 +112,8 @@ async def asyncio_detailed(
|
|
|
112
112
|
|
|
113
113
|
async def asyncio(
|
|
114
114
|
*,
|
|
115
|
-
client:
|
|
116
|
-
) ->
|
|
115
|
+
client: AuthenticatedClient | Client,
|
|
116
|
+
) -> list[BiGraphProcess] | None:
|
|
117
117
|
"""Get the list of processes
|
|
118
118
|
|
|
119
119
|
Raises:
|
|
@@ -121,7 +121,7 @@ async def asyncio(
|
|
|
121
121
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
122
122
|
|
|
123
123
|
Returns:
|
|
124
|
-
list[
|
|
124
|
+
list[BiGraphProcess]
|
|
125
125
|
"""
|
|
126
126
|
|
|
127
127
|
return (
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from http import HTTPStatus
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any
|
|
3
3
|
|
|
4
4
|
import httpx
|
|
5
5
|
|
|
@@ -10,6 +10,7 @@ from ...types import Response
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def _get_kwargs() -> dict[str, Any]:
|
|
13
|
+
|
|
13
14
|
_kwargs: dict[str, Any] = {
|
|
14
15
|
"method": "get",
|
|
15
16
|
"url": "/core/simulator/list",
|
|
@@ -18,13 +19,12 @@ def _get_kwargs() -> dict[str, Any]:
|
|
|
18
19
|
return _kwargs
|
|
19
20
|
|
|
20
21
|
|
|
21
|
-
def _parse_response(
|
|
22
|
-
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
23
|
-
) -> Optional[RegisteredSimulators]:
|
|
22
|
+
def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> RegisteredSimulators | None:
|
|
24
23
|
if response.status_code == 200:
|
|
25
24
|
response_200 = RegisteredSimulators.from_dict(response.json())
|
|
26
25
|
|
|
27
26
|
return response_200
|
|
27
|
+
|
|
28
28
|
if client.raise_on_unexpected_status:
|
|
29
29
|
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
30
30
|
else:
|
|
@@ -32,7 +32,7 @@ def _parse_response(
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
def _build_response(
|
|
35
|
-
*, client:
|
|
35
|
+
*, client: AuthenticatedClient | Client, response: httpx.Response
|
|
36
36
|
) -> Response[RegisteredSimulators]:
|
|
37
37
|
return Response(
|
|
38
38
|
status_code=HTTPStatus(response.status_code),
|
|
@@ -44,7 +44,7 @@ def _build_response(
|
|
|
44
44
|
|
|
45
45
|
def sync_detailed(
|
|
46
46
|
*,
|
|
47
|
-
client:
|
|
47
|
+
client: AuthenticatedClient | Client,
|
|
48
48
|
) -> Response[RegisteredSimulators]:
|
|
49
49
|
"""Get the list of simulators
|
|
50
50
|
|
|
@@ -67,8 +67,8 @@ def sync_detailed(
|
|
|
67
67
|
|
|
68
68
|
def sync(
|
|
69
69
|
*,
|
|
70
|
-
client:
|
|
71
|
-
) ->
|
|
70
|
+
client: AuthenticatedClient | Client,
|
|
71
|
+
) -> RegisteredSimulators | None:
|
|
72
72
|
"""Get the list of simulators
|
|
73
73
|
|
|
74
74
|
Raises:
|
|
@@ -86,7 +86,7 @@ def sync(
|
|
|
86
86
|
|
|
87
87
|
async def asyncio_detailed(
|
|
88
88
|
*,
|
|
89
|
-
client:
|
|
89
|
+
client: AuthenticatedClient | Client,
|
|
90
90
|
) -> Response[RegisteredSimulators]:
|
|
91
91
|
"""Get the list of simulators
|
|
92
92
|
|
|
@@ -107,8 +107,8 @@ async def asyncio_detailed(
|
|
|
107
107
|
|
|
108
108
|
async def asyncio(
|
|
109
109
|
*,
|
|
110
|
-
client:
|
|
111
|
-
) ->
|
|
110
|
+
client: AuthenticatedClient | Client,
|
|
111
|
+
) -> RegisteredSimulators | None:
|
|
112
112
|
"""Get the list of simulators
|
|
113
113
|
|
|
114
114
|
Raises:
|