synaster-client 0.12.1__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.
- synaster_client-0.12.1/.gitignore +66 -0
- synaster_client-0.12.1/PKG-INFO +80 -0
- synaster_client-0.12.1/README.md +55 -0
- synaster_client-0.12.1/pyproject.toml +42 -0
- synaster_client-0.12.1/src/synaster_client/__init__.py +54 -0
- synaster_client-0.12.1/src/synaster_client/__main__.py +5 -0
- synaster_client-0.12.1/src/synaster_client/cli.py +839 -0
- synaster_client-0.12.1/src/synaster_client/client.py +779 -0
- synaster_client-0.12.1/src/synaster_client/config.py +97 -0
- synaster_client-0.12.1/src/synaster_client/errors.py +93 -0
- synaster_client-0.12.1/src/synaster_client/models.py +250 -0
- synaster_client-0.12.1/src/synaster_client/py.typed +1 -0
- synaster_client-0.12.1/src/synaster_client/version.py +3 -0
- synaster_client-0.12.1/uv.lock +104 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.egg-info/
|
|
6
|
+
*.egg
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
|
|
10
|
+
# Pixi
|
|
11
|
+
.pixi/
|
|
12
|
+
|
|
13
|
+
# Virtual environments
|
|
14
|
+
.venv/
|
|
15
|
+
venv/
|
|
16
|
+
|
|
17
|
+
# IDE
|
|
18
|
+
.vscode/
|
|
19
|
+
.idea/
|
|
20
|
+
*.swp
|
|
21
|
+
*.swo
|
|
22
|
+
|
|
23
|
+
# Runtime
|
|
24
|
+
volcano_backend/workspace/
|
|
25
|
+
# volcano-services.sh launcher logs
|
|
26
|
+
/logs/
|
|
27
|
+
# Release state and provenance are host-local. They survive Git checkouts but
|
|
28
|
+
# must never be committed.
|
|
29
|
+
/.deploy/
|
|
30
|
+
# Generated at frontend build time and copied into dist by Vite.
|
|
31
|
+
/frontend/public/release.json
|
|
32
|
+
|
|
33
|
+
# Kombu filesystem transport 的 pidbox 控制消息会泄到启动 cwd
|
|
34
|
+
# (已在 celery_app.py 里显式指向 CELERY_STATE_DIR,但保留兜底以防手动起服务)
|
|
35
|
+
/control/
|
|
36
|
+
/reply/
|
|
37
|
+
|
|
38
|
+
# nf-pipelines submodule runtime artefacts (must NOT be tracked by main repo)
|
|
39
|
+
volcano_backend/nf-pipelines/outputs/
|
|
40
|
+
volcano_backend/nf-pipelines/work/
|
|
41
|
+
volcano_backend/nf-pipelines/.nextflow/
|
|
42
|
+
volcano_backend/nf-pipelines/.nextflow.log*
|
|
43
|
+
volcano_backend/nf-pipelines/.pixi/
|
|
44
|
+
volcano_backend/nf-pipelines/tools/installed/
|
|
45
|
+
|
|
46
|
+
# dotenv
|
|
47
|
+
.env
|
|
48
|
+
!.env.example
|
|
49
|
+
|
|
50
|
+
# OS
|
|
51
|
+
.DS_Store
|
|
52
|
+
Thumbs.db
|
|
53
|
+
|
|
54
|
+
# Testing
|
|
55
|
+
.pytest_cache/
|
|
56
|
+
.coverage
|
|
57
|
+
htmlcov/
|
|
58
|
+
|
|
59
|
+
# Pixi lock (keep in repo for reproducibility)
|
|
60
|
+
# pixi.lock
|
|
61
|
+
openspec/
|
|
62
|
+
.cursor/
|
|
63
|
+
.codex/
|
|
64
|
+
|
|
65
|
+
# Bohrium OpenAPI 网关代码(独立仓库,仅本地参考,不随主仓库提交)
|
|
66
|
+
bohrium_gateway/openapi/
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: synaster-client
|
|
3
|
+
Version: 0.12.1
|
|
4
|
+
Summary: Official Python SDK and CLI for SynAster
|
|
5
|
+
Project-URL: Homepage, https://syn-aster.bohrium.com
|
|
6
|
+
Project-URL: Documentation, https://syn-aster.bohrium.com
|
|
7
|
+
Project-URL: Repository, https://github.com/macroversus/SynAsterHub
|
|
8
|
+
Project-URL: Issues, https://github.com/macroversus/SynAsterHub/issues
|
|
9
|
+
Author: SynAster Team
|
|
10
|
+
Keywords: ai-for-science,bioinformatics,bohrium,cli,sdk
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Requires-Python: >=3.10
|
|
23
|
+
Requires-Dist: httpx>=0.28
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
|
|
26
|
+
# synaster-client
|
|
27
|
+
|
|
28
|
+
Official lightweight Python SDK and `synaster` command-line client for
|
|
29
|
+
SynAster. It calls the existing Bohrium OpenAPI and does not install or run
|
|
30
|
+
FastAPI, Celery, Redis, Nextflow, or scientific tool containers.
|
|
31
|
+
|
|
32
|
+
Requires Python 3.10 or newer.
|
|
33
|
+
|
|
34
|
+
## Install
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pipx install synaster-client
|
|
38
|
+
synaster --version
|
|
39
|
+
|
|
40
|
+
# one-off execution
|
|
41
|
+
uvx --from synaster-client synaster --version
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The console script and module entrypoint are equivalent:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
synaster skills --json
|
|
48
|
+
python -m synaster_client skills --json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Authenticate and run
|
|
52
|
+
|
|
53
|
+
AccessKey values are only accepted from `SYNASTER_ACCESS_KEY` or one line of
|
|
54
|
+
stdin via `--access-key-stdin`. There is intentionally no
|
|
55
|
+
`--access-key VALUE` option, and secret values are rejected in config files.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
export SYNASTER_ACCESS_KEY="<your Bohrium AccessKey>"
|
|
59
|
+
|
|
60
|
+
synaster doctor
|
|
61
|
+
synaster describe adabmdca
|
|
62
|
+
synaster run adabmdca \
|
|
63
|
+
--input family_msa.fasta \
|
|
64
|
+
--file query=query.fasta
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Use `submit` for a one-shot POST, then resume from the returned task ID:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
synaster submit tmpred --input proteins.fasta
|
|
71
|
+
synaster wait <task-id>
|
|
72
|
+
synaster download <task-id>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
For `--mode bohr`, the CLI refreshes live machine prices and requires an
|
|
76
|
+
explicit per-command charge confirmation. POST requests are never
|
|
77
|
+
automatically retried.
|
|
78
|
+
|
|
79
|
+
See the repository's `docs/synaster-cli-sop.md` for the complete command,
|
|
80
|
+
JSON, exit-code, recovery, download, and Python SDK reference.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# synaster-client
|
|
2
|
+
|
|
3
|
+
Official lightweight Python SDK and `synaster` command-line client for
|
|
4
|
+
SynAster. It calls the existing Bohrium OpenAPI and does not install or run
|
|
5
|
+
FastAPI, Celery, Redis, Nextflow, or scientific tool containers.
|
|
6
|
+
|
|
7
|
+
Requires Python 3.10 or newer.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pipx install synaster-client
|
|
13
|
+
synaster --version
|
|
14
|
+
|
|
15
|
+
# one-off execution
|
|
16
|
+
uvx --from synaster-client synaster --version
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The console script and module entrypoint are equivalent:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
synaster skills --json
|
|
23
|
+
python -m synaster_client skills --json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Authenticate and run
|
|
27
|
+
|
|
28
|
+
AccessKey values are only accepted from `SYNASTER_ACCESS_KEY` or one line of
|
|
29
|
+
stdin via `--access-key-stdin`. There is intentionally no
|
|
30
|
+
`--access-key VALUE` option, and secret values are rejected in config files.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
export SYNASTER_ACCESS_KEY="<your Bohrium AccessKey>"
|
|
34
|
+
|
|
35
|
+
synaster doctor
|
|
36
|
+
synaster describe adabmdca
|
|
37
|
+
synaster run adabmdca \
|
|
38
|
+
--input family_msa.fasta \
|
|
39
|
+
--file query=query.fasta
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Use `submit` for a one-shot POST, then resume from the returned task ID:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
synaster submit tmpred --input proteins.fasta
|
|
46
|
+
synaster wait <task-id>
|
|
47
|
+
synaster download <task-id>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
For `--mode bohr`, the CLI refreshes live machine prices and requires an
|
|
51
|
+
explicit per-command charge confirmation. POST requests are never
|
|
52
|
+
automatically retried.
|
|
53
|
+
|
|
54
|
+
See the repository's `docs/synaster-cli-sop.md` for the complete command,
|
|
55
|
+
JSON, exit-code, recovery, download, and Python SDK reference.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "synaster-client"
|
|
3
|
+
version = "0.12.1"
|
|
4
|
+
description = "Official Python SDK and CLI for SynAster"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.10"
|
|
7
|
+
authors = [
|
|
8
|
+
{ name = "SynAster Team" },
|
|
9
|
+
]
|
|
10
|
+
keywords = ["ai-for-science", "bioinformatics", "bohrium", "cli", "sdk"]
|
|
11
|
+
classifiers = [
|
|
12
|
+
"Development Status :: 4 - Beta",
|
|
13
|
+
"Environment :: Console",
|
|
14
|
+
"Intended Audience :: Developers",
|
|
15
|
+
"Intended Audience :: Science/Research",
|
|
16
|
+
"Operating System :: OS Independent",
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3.10",
|
|
19
|
+
"Programming Language :: Python :: 3.11",
|
|
20
|
+
"Programming Language :: Python :: 3.12",
|
|
21
|
+
"Programming Language :: Python :: 3.13",
|
|
22
|
+
"Programming Language :: Python :: 3.14",
|
|
23
|
+
]
|
|
24
|
+
dependencies = [
|
|
25
|
+
"httpx>=0.28",
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
[project.urls]
|
|
29
|
+
Homepage = "https://syn-aster.bohrium.com"
|
|
30
|
+
Documentation = "https://syn-aster.bohrium.com"
|
|
31
|
+
Repository = "https://github.com/macroversus/SynAsterHub"
|
|
32
|
+
Issues = "https://github.com/macroversus/SynAsterHub/issues"
|
|
33
|
+
|
|
34
|
+
[project.scripts]
|
|
35
|
+
synaster = "synaster_client.cli:main"
|
|
36
|
+
|
|
37
|
+
[build-system]
|
|
38
|
+
requires = ["hatchling"]
|
|
39
|
+
build-backend = "hatchling.build"
|
|
40
|
+
|
|
41
|
+
[tool.hatch.build.targets.wheel]
|
|
42
|
+
packages = ["src/synaster_client"]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""Official SynAster Python SDK."""
|
|
2
|
+
|
|
3
|
+
from .client import DEFAULT_BASE_URL, SynAsterClient, infer_input_type, redact
|
|
4
|
+
from .errors import (
|
|
5
|
+
SynAsterApiError,
|
|
6
|
+
SynAsterAuthError,
|
|
7
|
+
SynAsterConfirmationError,
|
|
8
|
+
SynAsterContractVersionError,
|
|
9
|
+
SynAsterDownloadError,
|
|
10
|
+
SynAsterError,
|
|
11
|
+
SynAsterProtocolError,
|
|
12
|
+
SynAsterRemoteTaskError,
|
|
13
|
+
SynAsterTransportError,
|
|
14
|
+
SynAsterValidationError,
|
|
15
|
+
SynAsterWaitError,
|
|
16
|
+
)
|
|
17
|
+
from .models import (
|
|
18
|
+
BohrChargeConfirmation,
|
|
19
|
+
BohrMachineOption,
|
|
20
|
+
BohrOptionsData,
|
|
21
|
+
RunResult,
|
|
22
|
+
SkillContract,
|
|
23
|
+
StandardResponse,
|
|
24
|
+
TaskStatus,
|
|
25
|
+
TaskSubmission,
|
|
26
|
+
)
|
|
27
|
+
from .version import __version__
|
|
28
|
+
|
|
29
|
+
__all__ = [
|
|
30
|
+
"__version__",
|
|
31
|
+
"DEFAULT_BASE_URL",
|
|
32
|
+
"SynAsterClient",
|
|
33
|
+
"infer_input_type",
|
|
34
|
+
"redact",
|
|
35
|
+
"SynAsterError",
|
|
36
|
+
"SynAsterApiError",
|
|
37
|
+
"SynAsterAuthError",
|
|
38
|
+
"SynAsterConfirmationError",
|
|
39
|
+
"SynAsterContractVersionError",
|
|
40
|
+
"SynAsterDownloadError",
|
|
41
|
+
"SynAsterProtocolError",
|
|
42
|
+
"SynAsterRemoteTaskError",
|
|
43
|
+
"SynAsterTransportError",
|
|
44
|
+
"SynAsterValidationError",
|
|
45
|
+
"SynAsterWaitError",
|
|
46
|
+
"BohrChargeConfirmation",
|
|
47
|
+
"BohrMachineOption",
|
|
48
|
+
"BohrOptionsData",
|
|
49
|
+
"RunResult",
|
|
50
|
+
"SkillContract",
|
|
51
|
+
"StandardResponse",
|
|
52
|
+
"TaskStatus",
|
|
53
|
+
"TaskSubmission",
|
|
54
|
+
]
|