Skip to main content

Speed up file transfers with the baseten.co + baseten_fs.

Project description

Truss-Transfer

Python-optional download utility for resolving Baseten Pointers (bptr).

Installation

pip install truss-transfer
# pip install /workspace/model-performance/michaelfeil/truss/truss-transfer/target/wheels/truss_transfer-0.1.0-cp39-cp39-manylinux_2_34_x86_64.whl

How to Resolve a bptr

Via Python Package

import truss_transfer

# Resolve bptr using default download directory from environment
result_dir = truss_transfer.lazy_data_resolve()

# Resolve bptr with custom download directory
result_dir = truss_transfer.lazy_data_resolve("/custom/download/path")

# Example usage in a data loader
def lazy_data_loader(download_dir: str):
    print(f"download using {truss_transfer.__version__}")
    try:
        resolved_dir = truss_transfer.lazy_data_resolve(str(download_dir))
        print(f"Files resolved to: {resolved_dir}")
        return resolved_dir
    except Exception as e:
        print(f"Lazy data resolution failed: {e}")
        raise

Via CLI

# Using the compiled binary
./target/x86_64-unknown-linux-musl/release/truss_transfer_cli /tmp/download_dir

# Using the Python package CLI
python -m truss_transfer /tmp/download_dir

How to Build a bptr and Save it via Python

You can create Baseten Pointers from HuggingFace models using the Python API:

import truss_transfer
import json

# Define models to include in the bptr
models = [
    truss_transfer.PyModelRepo(
        repo_id="microsoft/DialoGPT-medium",
        revision="main",
        volume_folder="dialogpt",
        kind="hf",  # "hf" for HuggingFace, "gcs" for Google Cloud Storage
        runtime_secret_name="hf_access_token",
        allow_patterns=["*.safetensors", "*.json"],  # Optional: specific file patterns
        ignore_patterns=["*.txt"]  # Optional: patterns to ignore
    ),
    truss_transfer.PyModelRepo(
        repo_id="julien-c/dummy-unknown",
        revision="60b8d3fe22aebb024b573f1cca224db3126d10f3",
        volume_folder="julien_dummy",
        runtime_secret_name="hf_access_token_2"
    )
]

# Create the bptr manifest
bptr_manifest = truss_transfer.create_basetenpointer_from_models(models)

# Save to file
with open("/bptr/static-bptr-manifest.json", "w") as f:
    f.write(bptr_manifest)

# Or parse as JSON for programmatic use
manifest_data = json.loads(bptr_manifest)
print(f"Created bptr with {len(manifest_data)} pointers")

PyModelRepo Parameters

  • repo_id: Repository identifier (e.g., "microsoft/DialoGPT-medium")
  • revision: Git commit hash or branch name (e.g., "main", commit hash)
  • volume_folder: Local folder name where files will be stored
  • kind: Repository type - "hf" for HuggingFace, "gcs" for Google Cloud Storage
  • runtime_secret_name: Name of the secret containing access token
  • allow_patterns: Optional list of file patterns to include
  • ignore_patterns: Optional list of file patterns to exclude

End-to-End Flow

Here's a complete example of creating and resolving a bptr:

Step 1: Create a bptr Manifest

import truss_transfer
import json
import os

# Create models configuration
models = [
    truss_transfer.PyModelRepo(
        repo_id="microsoft/DialoGPT-medium",
        revision="main",
        volume_folder="dialogpt",
        runtime_secret_name="hf_access_token"
    ),
    truss_transfer.PyModelRepo(
        repo_id="gs://llama-3-2-1b-instruct/",
        revision="",
        volume_folder="llama",
        # requires json in /secrets/gcs-service-account-jsn
        runtime_secret_name="gcs-service-account-jsn",
        kind="gcs"
    ),
    truss_transfer.PyModelRepo(
        repo_id="s3://bt-training-dev-org-b68c04fe47d34c85bfa91515bc9d5e2d/training_projects",
        revision="",
        volume_folder="training",
        # requires json in /secrets/aws
        runtime_secret_name="aws-secret-json",
        kind="s3"
    )
]

# Generate the bptr manifest
bptr_manifest = truss_transfer.create_basetenpointer_from_models(models)

# Ensure the directory exists
os.makedirs("/bptr", exist_ok=True)

# Save the manifest
with open("/bptr/static-bptr-manifest.json", "w") as f:
    f.write(bptr_manifest)

print("bptr manifest created successfully!")

Step 2: Set up Environment (Optional)

# Configure download location
export TRUSS_TRANSFER_DOWNLOAD_DIR="/tmp/my-models"

# Enable b10fs caching (optional)
export BASETEN_FS_ENABLED=1

# Set up authentication (if needed)
export HF_TOKEN="your-huggingface-token"
# Or use the official HuggingFace environment variable
export HUGGING_FACE_HUB_TOKEN="your-huggingface-token"

Step 3: Resolve the bptr

import truss_transfer

# Resolve the bptr - downloads files to the specified directory
resolved_dir = truss_transfer.lazy_data_resolve("/tmp/my-models")
print(f"Files downloaded to: {resolved_dir}")

# Now you can use the downloaded files
import os
files = os.listdir(resolved_dir)
print(f"Downloaded files: {files}")

Step 4: Use the Downloaded Files

# Example: Load a model from the resolved directory
model_path = os.path.join(resolved_dir, "dialogpt")
# Your model loading code here...

Complete Workflow

# Complete example combining creation and resolution
import truss_transfer
import json
import os

def create_and_resolve_bptr():
    # runtime_secret_name: best to be created with `-` in baseten.
    # 1. Create bptr manifest
    models = [
        truss_transfer.PyModelRepo(
            repo_id="NVFP4/Qwen3-235B-A22B-Instruct-2507-FP4",
            revision="main",
            # write to folder named
            volume_folder="dialogpt",
            # read secret from /secrets/hf-access-token
            runtime_secret_name="hf-access-token"
        ),
        # requires a gcs service account json
    ]
    root = "/tmp/my-models"
    bptr_manifest = truss_transfer.create_basetenpointer_from_models(models, root)

    # 2. Save manifest
    os.makedirs("/static-bptr", exist_ok=True)
    with open("/static-bptr/static-bptr-manifest.json", "w") as f:
        f.write(bptr_manifest)

    # 3. Resolve bptr. If we would set `root` above to "", we could define the base dir here.
    truss_transfer.lazy_data_resolve(root)

    # 4. Verify files were downloaded
    dialogpt_path = os.path.join(root, "dialogpt")
    if os.path.exists(dialogpt_path):
        files = os.listdir(dialogpt_path)
        print(f"Successfully downloaded {len(files)} files to {dialogpt_path}")
        return dialogpt_path
    else:
        raise Exception("Model files not found after resolution")

# Run the workflow
model_path = create_and_resolve_bptr()

Secrets

Preferably, use a - to and lowercase characters to add credentials in baseten.

AWS

{
  "access_key_id": "XXXXX",
  "secret_access_key": "adada/adsdad",
  "region": "us-west-2"
}

Google GCS

{
      "private_key_id": "b717a4db1dd5a5d1f980aef7ea50616584b6ebc8",
      "private_key": "-----BEGIN PRIVATE KEY-----\nMI",
      "client_email": "b10-some@xxx-example.iam.gserviceaccount.com"
}

Huggingface

The Huggingface token.

Azure

(Untested)

{
    "account_key": "key",
}

Environment Variables and Settings

The following environment variables can be used to configure truss-transfer behavior:

Core Configuration

  • TRUSS_TRANSFER_DOWNLOAD_DIR (default: /tmp/bptr-resolved)

    • Directory where resolved files will be downloaded
    • Used when no explicit download directory is provided
    • Can be overridden by passing a directory to the CLI or Python function
  • RUST_LOG (default: info)

    • Controls logging level: error, warn, info, debug, trace
    • Example: RUST_LOG=debug for detailed logging

Authentication

  • HF_TOKEN (optional)

    • HuggingFace access token for accessing private repositories
    • Takes precedence over HUGGING_FACE_HUB_TOKEN
    • Used when runtime_secret_name is hf_token or hf_access_token
  • HUGGING_FACE_HUB_TOKEN (optional)

    • Official HuggingFace Hub token environment variable
    • Used as fallback if HF_TOKEN is not set
    • Allows access to private HuggingFace repositories

Baseten FS (b10fs) Configuration

  • BASETEN_FS_ENABLED (default: false)

    • Enable/disable Baseten FS caching: 1/true to enable, 0/false to disable
    • When enabled, files are cached in /cache/org/artifacts/truss_transfer_managed_v1
  • TRUSS_TRANSFER_B10FS_CLEANUP_HOURS (default: 96)

    • Hours after last access before deleting cached files from other tenants
    • Helps manage disk space by removing old cached files
    • Example: TRUSS_TRANSFER_B10FS_CLEANUP_HOURS=48 for 2 days
  • TRUSS_TRANSFER_B10FS_DOWNLOAD_SPEED_MBPS (default: 350)

    • Expected download speed in MB/s for b10fs performance benchmarking
    • Used to determine if b10fs is faster than direct download
    • Lower values make b10fs more likely to be used

Example Configuration

# Basic setup
export TRUSS_TRANSFER_DOWNLOAD_DIR="/tmp/my-models"
export RUST_LOG=info

# With b10fs enabled and authentication
export BASETEN_FS_ENABLED=1
export TRUSS_TRANSFER_B10FS_CLEANUP_HOURS=48
export TRUSS_TRANSFER_B10FS_DOWNLOAD_SPEED_MBPS=100
export HF_TOKEN="your-huggingface-token"

Development

Running Tests

# Run all tests
cargo test

# Run tests without network dependencies
cargo test --lib

# Run Python tests
python -m pytest tests/

Running the CLI as binary

Compiling the libary as musl-linux target for cross-platform usage.

# Add one-time installations
# apt-get install -y musl-tools libssl-dev libatomic-ops-dev
# rustup target add x86_64-unknown-linux-musl

# To build with cargo:
cargo build --release --target x86_64-unknown-linux-musl --features cli --bin truss_transfer_cli
# To run the binary
./target/x86_64-unknown-linux-musl/release/truss_transfer_cli /tmp/ptr

Building a wheel from source

Prerequisites:

# apt-get install patchelf
# Install rust via Rustup https://www.rust-lang.org/tools/install
pip install maturin==1.8.1

This will build you the wheels for your current python3 --version. The output should look like this:

maturin build --release
🔗 Found pyo3 bindings
🐍 Found CPython 3.9 at /workspace/model-performance/michaelfeil/.asdf/installs/python/3.9.21/bin/python3
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.75s
🖨  Copied external shared libraries to package truss_transfer.libs directory:
    /usr/lib/x86_64-linux-gnu/libssl.so.3
    /usr/lib/x86_64-linux-gnu/libcrypto.so.3
📦 Built wheel for CPython 3.9 to /workspace/model-performance/michaelfeil/truss/truss-transfer/target/wheels/truss_transfer-0.1.0-cp39-cp39-manylinux_2_34_x86_64.whl

Release a new version and make it the default version used in the serving image builder for new deploys

truss-transfer gets bundled with truss in the context-builder phase. In this phase, the truss-transfer version gets installed. To make truss-transfer bundeable, it needs to be published to pypi and github releases.

  1. Open a PR with rust changes
  2. Change the version to x.z.y+1.rc0 in Cargo.toml and push change to branch a.
  3. Run a `Buid and Release truss-transfer" action https://github.com/basetenlabs/truss/actions with "release to pypi = true" on this branch a.
  4. Make x.z.y+1.rc0 as truss pyproject.toml, and templates/server/requirements.txt dependency
  5. Edit truss to a new truss.rcX, publish truss.rcX to pypy.org (main.yml action)
  6. pip install truss=truss.rcX locally and truss push (on example that uses python truss)
  7. Merge PR
  8. Wait for CLI binary to be released under assets as part of a new tag (https://github.com/basetenlabs/truss/releases)
  9. add the CLI to the server.Dockerfile.jinja to have it available for trussless.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

truss_transfer-0.0.32.tar.gz (69.9 kB view details)

Uploaded Source

Built Distributions

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

truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_i686.whl (4.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_armv7l.whl (4.1 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

truss_transfer-0.0.32-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

truss_transfer-0.0.32-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (5.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.32-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (4.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ i686

truss_transfer-0.0.32-cp313-cp313t-macosx_11_0_arm64.whl (3.7 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

truss_transfer-0.0.32-cp313-cp313t-macosx_10_12_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

truss_transfer-0.0.32-cp38-abi3-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.8+Windows x86-64

truss_transfer-0.0.32-cp38-abi3-win32.whl (3.0 MB view details)

Uploaded CPython 3.8+Windows x86

truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_i686.whl (4.3 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_armv7l.whl (4.1 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

truss_transfer-0.0.32-cp38-abi3-manylinux_2_28_armv7l.whl (3.9 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARMv7l

truss_transfer-0.0.32-cp38-abi3-manylinux_2_28_aarch64.whl (4.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARM64

truss_transfer-0.0.32-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

truss_transfer-0.0.32-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (5.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.32-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (4.3 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ i686

truss_transfer-0.0.32-cp38-abi3-macosx_11_0_arm64.whl (3.7 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

truss_transfer-0.0.32-cp38-abi3-macosx_10_12_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file truss_transfer-0.0.32.tar.gz.

File metadata

  • Download URL: truss_transfer-0.0.32.tar.gz
  • Upload date:
  • Size: 69.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for truss_transfer-0.0.32.tar.gz
Algorithm Hash digest
SHA256 5121dd31e3a40858f62a3c9ab6a1a17c087f7839f1771a19ec1e0f1db0ae9264
MD5 a2d463b34dbabf207d35e0d82f68f807
BLAKE2b-256 c2704483155c25a17968ec40fb5be35693437574e2b0daf286765b7175833c3d

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e656b0b935da88565803e8a299289c32af5a0036e318e6ac8ce8a1e37be66c7e
MD5 aaafef04c0eddfc31c8859bdbe727d10
BLAKE2b-256 b6afa96c9e28b3badc2ada4da2f6bc6f173d9c7cf0cdcc7d041e9f72239f3257

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 113dbb55bbefd521bc0e7ac3d5e1646c8a99a3236695fe936c87129b0721f0ac
MD5 a970b5c064b0f2cedf0abe3c48e570f0
BLAKE2b-256 bd9f6a9f127a5d0f0a5ac0f05dd3f0609ae4c833de312a4cf29d4c2bbe061e19

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 2803ceeb42ecdca7fea525443c423a378b89b57b350ed483f03123fd4a922bbf
MD5 716c72f1f59c60f6ff164c7b1a71d9ae
BLAKE2b-256 afc32c3af8c608da58f3697daf06d4e71956c5b5ebf4ed532e93eca68ea564e9

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 822e7a8379680dd39a29bd3acb2f422ecf303009ac7bb49fae0d69a77dff03c3
MD5 b49ea0e713821101af4611ce5428182b
BLAKE2b-256 d7b9139a1d367a80afcd467750908e249871c28ec31859f9b21b9feb90802fbe

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 340f7b089017fd71bbc4a43ded6efd6dab9dc2013a9a174aca6299b4cf404b4b
MD5 b82f9b265ac68ce2608cd98898b54195
BLAKE2b-256 fecad809bae199135336825aa61286cf59f69bf30a6b8dc887c48ee1ef1e0d42

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 47e25bb5f59b901c59bf580dae71140496d6df592912e90bb585a15ec995e3e7
MD5 5b67afa06435594b21cd763b25be049b
BLAKE2b-256 1304c9ff1d365385b799e47372a533d7170bf29c9d12f219eba5787aabe3ced7

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8433bd89bb6a3592832f70642b2129ccc5a13af69444db6123f56de47ccf4238
MD5 806324648e747a48dae777e07b78d02f
BLAKE2b-256 1c6e31cbc01993be1f058959f303728bf511632985f37e9924666738908ab27d

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e966ba1ed208c2b371cb0862921dd088dcf8fa2d039cb19a71998ab37d235561
MD5 ab397f61f1572989d2105c44b6a91280
BLAKE2b-256 ee19385feebd9514fe34273f322597656907fa12c73dd21095cc0beffb537ed3

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp313-cp313t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 efbf7d7dfcb0356739bc6f554a7ad8628736cc40bf2df7b9db36a31fe8db75d0
MD5 f10493c828effc360070afc9178b9ba7
BLAKE2b-256 adbc401088e9b3c541b04b7cc598897cae0874c5b7e00b3711e4ee5c8f57eedd

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6b8093f54974c63b69f7ed5e5c6352914f493590ff8e181ebe405eea679694a4
MD5 4a4900a47be23760a06acff9f3f840fb
BLAKE2b-256 31d271ca856eae2c1cc5864f6e74ba5699b12ece45b893824aaa63bf3fbc9485

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-win32.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 603429660bb83f63ca466506ee76280219e83dbb81a5f5cab1d89ff2f8e18a7b
MD5 33b10c3875f486e86808820cff905405
BLAKE2b-256 2c735c9972e59b48075adf0d54115912e4831b3793290b842db1802ff4cb5b59

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8934d8c1e121d0146d07612bde7666d1dcb0047266538df7f17c9fb25b99493f
MD5 26af9a6e7b9df93105b839e31cd71b14
BLAKE2b-256 9429e07b9f868867515deb314c1b773df77c18b551c94a9acd9c6477183f2558

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ec5f3001048a0f294f5aa33d25ecc9efdf9a8b7c471e96480035239d0f555c43
MD5 a3688f63d79488e5f5dbe2c949488e85
BLAKE2b-256 008f4a37fd75e7cbd2c96286e06c5e471c053e915bda6c8c3e1e633600668023

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 d3f3933b57a6e186b3c177162801894c228b31857c05ceab4625c416bf868f60
MD5 f0a73ec60b3df017f45e01c9fa1e48a5
BLAKE2b-256 2d2a1ec972d136cb845c4c6a6603c1b03b1873fd64e903a05d4fa45cca244b2e

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 20ed53ce0d58a8f0381fae4ab95a56a22e6edf0f8f61ef7829074d638764568e
MD5 be55cb9744727c60054a35250fef333a
BLAKE2b-256 275573e474d36dfe2246217da6c2cf110f453eb080da7a7882349658682109f4

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 7da770ea103f6bdf8c6670c05e43caffb9d97bc86ad8aabeb4bd020d5eb877ac
MD5 c7e2a034e239658dfa08ba4ac0656b2a
BLAKE2b-256 0ba0f3dcfb6d8f7573e5c62dfcddbacaf1b34fcb263ec3de2ae66ccef931478a

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d2318c7c9469981ae2b668939bb0a3886e69859c186e3e9d4a7c440bb2c096cf
MD5 e34fa06198bebe27ca15ae67c45bb167
BLAKE2b-256 b9141252c51a19a86746e492b57646047181068c42674b604165851baff5a299

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8166f8de8b623e354e93d5ba7780619d113b6cf5a15abc23edc1ee41969d704
MD5 079972deb1ab9f9f202e15466670bf39
BLAKE2b-256 434f1fafa07a9edb9974d41fc614253bce4187f3db2e6a29d3139ed467f0ef34

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8b241100f4d049ab952b487bea742db7cb28dc1cbe419b9dfdb0311f65e78da3
MD5 24493f9136e73f12bf5d2dc4b89df36c
BLAKE2b-256 05dd1b28c82529f981427fd413d6acc9d148431ef87ce952d0d3390850e7202c

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 12aef70cfafd9943499acad63b829dbb1b3b807496c5a91b781424b80e64ef23
MD5 503859c082ed9c4f5b1e3f8175ca04a5
BLAKE2b-256 cae227636e301c273ff6ed2f4ad228f85bcd03b4ebc1a002815504702254dd90

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ae9988da0d9db3932af7aa5157f19ae56165a4b5f9caa2e178da74a020853e4c
MD5 b7c99936d6202a465c42fdc5f0b92d5e
BLAKE2b-256 e23d39cb79e3d9d73fc483ec094321611dc448c8af20a019713efc878eb6b8d8

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.32-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.32-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 33c228f4b6c2fad576557de2d49ab9da946b236ab1420e18e6169c2f23222b5f
MD5 ef62f33c7060ffb33114d15a2c8c8a2a
BLAKE2b-256 2c9970951266b12f5f5f3509fa10f4e0d3344ade4bee3cd76ec5dba6a538b290

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