anycloud Python SDK
Submit jobs and run workloads on any cloud with anycloud.
Install
pip install anycloud-sdk
Quick start
import anycloud
ac = anycloud.Client()
job = ac.submit("my-training:latest", gpu="h100:8", env={"LR": "0.01"})
job.wait()
print(job.logs())
Chaining jobs
prep = ac.submit("prep:latest")
prep.wait()
train = ac.submit("train:latest", gpu="h100:8", env={"LR": "0.01"})
train.wait()
eval_job = ac.submit("eval:latest")
eval_job.wait()
Fan-out / fan-in
from anycloud import Submission
split = ac.submit("split:latest")
split.wait()
shards = ac.submit_many([
Submission(image="worker:latest", env={"LR": lr})
for lr in ["0.1", "0.01", "0.001"]
])
shards.wait()
merge = ac.submit("merge:latest")
merge.wait()
Workload images
Publish an image containing your code and dependencies, then select its
entrypoint with command. Use an immutable tag or digest when reproducibility
matters:
job = ac.submit(
"ghcr.io/acme/trainer:git-a1b2c3d",
gpu="h100:8",
command=["python", "-m", "training", "--lr", "0.01"],
)
job.wait()
service = ac.serve(
"ghcr.io/acme/inference:git-a1b2c3d",
gpu="L40S:1",
command=["python", "-m", "myapp"],
deployment_id="model-a-001",
)
service.wait_running(timeout=600)
print(service.url)
AnyCloud sets PORT=8088 for Services by default; override it with
env={"PORT": "<port>"}. When a workload fails,
DeploymentFailedError.logs includes its container logs:
from anycloud import DeploymentFailedError
try:
job.wait()
except DeploymentFailedError as e:
print(e.state, e.logs)
Buckets
Discover storage, inspect objects, and chain data between jobs using bucket
handles. Select a credential saved with anycloud credentials new:
ac = anycloud.Client(credentials="aws-prod")
for bucket in ac.list_buckets():
print(bucket.name, bucket.region, bucket.created_at)
data = ac.bucket("training-data")
model = ac.bucket("model-output")
data.upload("~/datasets/imagenet.tar", remote_path="datasets/imagenet.tar")
data.upload_directory("~/datasets/shards", prefix="datasets/shards/")
for entry in data.list_objects(prefix="datasets/"):
print(entry.kind, entry.key, entry.size_bytes)
all_objects = data.list_objects(recursive=True, limit=None)
prep = ac.submit("prep:latest", input=data, output=model)
prep.wait()
train = ac.submit("train:latest", input=model, output=model, gpu="h100:8")
train.wait()
model.download_directory("~/checkpoints", prefix="checkpoints/")
Listings default to 1,000 sorted results; limit=None exhausts every API page.
Prefixes are literal, so include a trailing / to browse a folder. Bucket I/O
and listing stream through the local anycloud api server—no provider SDK
extras are needed. Input buckets must already exist; output buckets used by a
Job can be created by the server.
Downloads validate the received byte count and atomically replace the target
only after a complete response. Incomplete responses are retried twice, then
raise DownloadIntegrityError while preserving any existing target.
Directory upload, download, and prefix deletion use four workers by default;
pass concurrency=1 through 32 to tune the bound. They return a
BucketOperationResult. Partial item failures raise BucketOperationError
with the result summary and ordered (object_key, exception) failures.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anycloud_sdk-0.1.59.tar.gz.
File metadata
- Download URL: anycloud_sdk-0.1.59.tar.gz
- Upload date:
- Size: 42.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2251ae08f922bcac59140672bbd9fdf59e337317afaa5788d24247d3cdcb05b
|
|
| MD5 |
78281e5b04c91375b60a0dc163e493c9
|
|
| BLAKE2b-256 |
662df7d9e791a864b126f094556d1ae7a96e359b9b760d01fcddf658fcc0c321
|
Provenance
The following attestation bundles were made for anycloud_sdk-0.1.59.tar.gz:
Publisher:
release.yml on anycloud-sh/anycloud
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anycloud_sdk-0.1.59.tar.gz -
Subject digest:
f2251ae08f922bcac59140672bbd9fdf59e337317afaa5788d24247d3cdcb05b - Sigstore transparency entry: 2507074642
- Sigstore integration time:
-
Permalink:
anycloud-sh/anycloud@de40fded0eaec9c35ad4df851002475f27cb6f1c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/anycloud-sh
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@de40fded0eaec9c35ad4df851002475f27cb6f1c -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file anycloud_sdk-0.1.59-py3-none-any.whl.
File metadata
- Download URL: anycloud_sdk-0.1.59-py3-none-any.whl
- Upload date:
- Size: 28.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88ef657f2d27753c997b978b5b5ad53e73d4c033c65b11b30f6395de51db17e7
|
|
| MD5 |
2c6797f1b7a93f3a7bf7eee853f48dc9
|
|
| BLAKE2b-256 |
f0b104f6a74b61fb6e7a92bc7b83abbb611f8616e533bdfab31a803725bc2021
|
Provenance
The following attestation bundles were made for anycloud_sdk-0.1.59-py3-none-any.whl:
Publisher:
release.yml on anycloud-sh/anycloud
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anycloud_sdk-0.1.59-py3-none-any.whl -
Subject digest:
88ef657f2d27753c997b978b5b5ad53e73d4c033c65b11b30f6395de51db17e7 - Sigstore transparency entry: 2507074724
- Sigstore integration time:
-
Permalink:
anycloud-sh/anycloud@de40fded0eaec9c35ad4df851002475f27cb6f1c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/anycloud-sh
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@de40fded0eaec9c35ad4df851002475f27cb6f1c -
Trigger Event:
workflow_dispatch
-
Statement type: