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.
@@ -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
+ ]
@@ -0,0 +1,5 @@
1
+ """Module entrypoint for `python -m synaster_client`."""
2
+
3
+ from .cli import main
4
+
5
+ raise SystemExit(main())