Skip to main content

Python SDK for the Driftstone API.

Project description

Driftstone - Python

Python SDK for the Driftstone repository API.

Install

pip install driftstone

Quick Start

from driftstone import Driftstone

client = Driftstone(api_key="your-api-key")

repo = client.repos.create(
    "hello-world",
)

upload = client.repos.create_upload(
    "hello-world",
    storage_dir="ver-1234abcd",
    branch="main",
    files=[{"name": "README.md", "hash": "64-character-sha256-or-client-hash"}],
)

# Upload each file to the returned signed URL with PUT and
# Content-Type: application/octet-stream.
for upload_url in upload.upload_urls:
    print(upload_url.name, upload_url.url)

client.repos.complete_upload("hello-world", upload.upload_id)

download = client.repos.create_download(
    "hello-world",
    type="main",
    files=[{"path": "ver-1234abcd/README.md"}],
)

for download_url in download.download_urls:
    print(download_url.path, download_url.url)

branch = client.repos.create_branch(
    "hello-world",
    "feature-readme",
    storage_dir="state-123",
    transforms={"README.md": "# Example Repo\nUpdated content.\n"},
)

branch_upload = client.repos.create_upload(
    "hello-world",
    storage_dir="state-456",
    branch=branch.name,
    files=[{"name": "README.md", "hash": "64-character-sha256-or-client-hash"}],
)
client.repos.complete_upload("hello-world", branch_upload.upload_id)

print(repo.id, branch.name)

Using A Context Manager

from driftstone import Driftstone

with Driftstone(api_key="your-api-key") as client:
    repo = client.repos.get("hello-world")
    branches = client.repos.list_branches(repo.slug)

    print(repo.name, [branch.name for branch in branches])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

driftstone-1.0.3.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

driftstone-1.0.3-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file driftstone-1.0.3.tar.gz.

File metadata

  • Download URL: driftstone-1.0.3.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.6

File hashes

Hashes for driftstone-1.0.3.tar.gz
Algorithm Hash digest
SHA256 4c59e6f688d02115be3dde9b06a4f849c7c2b4d3b3556f4fbc6a03a1e9a36bd0
MD5 e9aceb35659936688c742617394f2781
BLAKE2b-256 2533691ce8b62ee9c0e2f234d2263d51d9ec096d132764de3e6f168d70c2c484

See more details on using hashes here.

File details

Details for the file driftstone-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: driftstone-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.6

File hashes

Hashes for driftstone-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 251412540d3b6b6721f25d19c55c122cd8f6e1989e9cbf60dd889819cffc85ad
MD5 5c4fb58218d5a416223611ab2af36c42
BLAKE2b-256 cdc045b131b509ff36e10cd79dbf1200f4e3e04e912d5bccb622ad200ce410fc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page