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.1.0.tar.gz (7.3 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.1.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for driftstone-1.1.0.tar.gz
Algorithm Hash digest
SHA256 114721785b9464f6fa3b83364429b7a16e27b9df21bd74e1cce6fc8dfc541c5b
MD5 245c730abed4aa10a7321f3dbcdb219e
BLAKE2b-256 94219dac1690b2ca0b6057f45d5c6ddce0436614d65d02291f247a74743506ea

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for driftstone-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e95092d8bf86e097ba452e5e8cc0ae2e79dfffcf5793679e3f2bbfe51d2ece7
MD5 85588400bfc2bc8d3d02d1f0d72a041b
BLAKE2b-256 765d93a6d05dee06782f444ebad40539fd8dbdf306df75148e0e5678da71d523

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