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"
    )
]

# 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-30B-A3B-Thinking-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
        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"
        )
    ]
    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.22.tar.gz (60.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.22-cp313-cp313t-musllinux_1_2_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

truss_transfer-0.0.22-cp313-cp313t-musllinux_1_2_i686.whl (4.0 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

truss_transfer-0.0.22-cp313-cp313t-musllinux_1_2_armv7l.whl (3.9 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.22-cp313-cp313t-musllinux_1_2_aarch64.whl (4.0 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

truss_transfer-0.0.22-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

truss_transfer-0.0.22-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (4.9 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.22-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (4.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ i686

truss_transfer-0.0.22-cp313-cp313t-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

truss_transfer-0.0.22-cp313-cp313t-macosx_10_12_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

truss_transfer-0.0.22-cp38-abi3-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.8+Windows x86-64

truss_transfer-0.0.22-cp38-abi3-win32.whl (2.8 MB view details)

Uploaded CPython 3.8+Windows x86

truss_transfer-0.0.22-cp38-abi3-musllinux_1_2_x86_64.whl (4.1 MB view details)

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

truss_transfer-0.0.22-cp38-abi3-musllinux_1_2_i686.whl (4.0 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

truss_transfer-0.0.22-cp38-abi3-musllinux_1_2_armv7l.whl (3.9 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.22-cp38-abi3-musllinux_1_2_aarch64.whl (4.0 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

truss_transfer-0.0.22-cp38-abi3-manylinux_2_28_armv7l.whl (3.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARMv7l

truss_transfer-0.0.22-cp38-abi3-manylinux_2_28_aarch64.whl (3.9 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARM64

truss_transfer-0.0.22-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

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

truss_transfer-0.0.22-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (4.9 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.22-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (4.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ i686

truss_transfer-0.0.22-cp38-abi3-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

truss_transfer-0.0.22-cp38-abi3-macosx_10_12_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for truss_transfer-0.0.22.tar.gz
Algorithm Hash digest
SHA256 a7bf1140ad73f673a5e22a4828cb38ba4b6fade7281f98d833eeeb16346fbb04
MD5 f1756d84d0b5273d66c741ada0ed006e
BLAKE2b-256 ab58fc4a2f58b6f1854589fbd561a148b7faa57dd8c13eaf77dd670b405f1adf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 45673f0586bde1d5234811f75827b188a80bc066f655214a2282ea8dbe7d57a0
MD5 1d5e8c8639ab5ad74d6b8589a08cf257
BLAKE2b-256 da777f5492ba09610ecb686c6f0f1b9c4379976799345b683dd7e50482bb5687

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 824a1c371ea26bfaed6ccd7764382a649d31de5111c363445f0f7c54e9fe56cb
MD5 ef9c35c70cb30f92dc99ee624dcdd2ad
BLAKE2b-256 a2ae78acaa30259c35044f03ce53b3e12faefdb282397c8300ab04d06a09f1e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 ad0bf7484f0d1fbc6cba65bc51db7c1d9549d638b2fe9235da41d6e0d2d8d893
MD5 a048852532ebcf715fbc12fef20887d4
BLAKE2b-256 2e795531664ff5dde9766d52205390d2132239c2a11a6ff7590b294d17ea3486

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 14e7734a1ab13061de6ca4ab1b94bc97fdd3bb3f369316a053d51650334a313f
MD5 a1c76f6b0083545af8a794bf1da88793
BLAKE2b-256 0015d5a81de573aa9c76f2664e7f01cbabf920bc9504917e1cb3cdf35213fdc4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f238411c898da41d972f66d1300f89e35aee6de89d8a61bb3e78ad13ee12a035
MD5 c111cc0b13e6eced619a545e77ea0f6b
BLAKE2b-256 de2b3faceb8e6c10e466fe8ead43288911b19617b799fd3234719238fde8bb13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 482b1e99eed0b87328ad78e496c0f920eebeb848373b41ccd8da2430e8a29930
MD5 289431302b3d97bff834132ecf0a4d70
BLAKE2b-256 1bc9888c29735ae4e76403e29b3cd2e7d8302e65e3ebeaeec0c2776884de87f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0db230b549a1193437c3625e756ff8939863090a1a22183961ffc79d09e58de6
MD5 796995bbcd9623223af22093a1922ad3
BLAKE2b-256 6acfdcd4a544642fd66ddf08b9c05e09572981aab22cec0023fbc767e2670946

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f45d04e8b098dd30512a76141277f30ded55a96489239d75707b842143fcddb
MD5 2622d77cc5213f0b323e805fb60cd13f
BLAKE2b-256 9ad6b7c86c51eb37993c3b92c38468fa161f26861afd95acd2eedf09f1dac05c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f66886255c9b2b4b610038deb5900b331c559a9f49ee4f0d4c476bd093ebc15b
MD5 a979464ade395a62db38697b412be6f9
BLAKE2b-256 4a9c4b0383ae639924708ac76c248e00fbc5d720eff1bff061e3e570597f000b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 bb590cba35027b77bb5322462556673dcb279e49d6a3f89a612da04220440abe
MD5 96e5e717f74754bc727ee3d6f0608771
BLAKE2b-256 bf962ed7c3809fcd8961d81f5c7c4112a6eb7ffd1cb8d670d2bae05c3ada708f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 26caab26ad8672f383541355c2656f1f854ebd21362a8fd980bcbfbad3237616
MD5 eb3f6191f440a35efabc77799b275fcb
BLAKE2b-256 fa528e5ff90de4eb5edc0e9435820af545aabc2309246d6c3c5bcd6c61c0af3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 19ee65c3fb3958716d2e5fcc687f1a6f47a4bc7c9c6557bfb2f0b39a5a6c3614
MD5 5ff237d2cfad8b464485df174d7d6d6b
BLAKE2b-256 4d293d451ec131cde4581617b9050ea5e06d7dd94c325f8c9c27b5edbcb5f54b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a250abacd734569a3808d0bff1ac95fb1200123095cec3c323dfc11fbf0e2929
MD5 b42d7c2e7f983c13d504840ff9ee9f01
BLAKE2b-256 940ecdfc3403c5d00228cc6da989b29541b0bf0c4172a3f8cc94a9cd2d4dd347

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 0257427d599a064c21fc5c33cc190658d3209e0a9827182cf68ab90249a12043
MD5 e98b48038b003a8a4c087dee7d38eb96
BLAKE2b-256 9c93279c6dc1fb3bc6a97275ca7d25043fe2ec8abdfa04419660a8125c6b838e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 32ebb5bb212936d6ad80eb0f1324a351de69238660c7a545b614100d95dc1871
MD5 a2408e6c6318b690b1dd6b6365f57c17
BLAKE2b-256 7311e7756da14a367ac6e632db982aa74b58ab66d35f1ec60521b57dd9833f40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 d2f7a77344265f2e86974ce3a48f366cff4be5388e015ed4ba8ea63f75dfbd18
MD5 3cf8d7c3d5f9a7e49142b211f8312f9c
BLAKE2b-256 a0c488b334287c1ef923eb4d4f929e9bfdc9e39f120a51f702d4912fe9328d73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 95621510f22a1e73e78cd85052709afa65f0bd37faf67cdebefd1774764f9d44
MD5 3b4aadc6bfbb6cd76740b0d3f746dd89
BLAKE2b-256 48292b50c773754cb551abe9ebe93734caf396d09ff7143d062c2e4d39730751

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 42bfebbde013f4c727ce3d0cd230a2285b7b3cddef0438229ee7d8d5ab79018b
MD5 b4a9561a412d9a3aab847e4301c5c110
BLAKE2b-256 bac39aff28a8a1b712ddf71fa9fb81f18aefffce2f72a2e2e646eed6f0775cb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 bf85743182123eb7b00cb8c451a86905f2ad258dbc0c6699171e86ecf2bd8a7e
MD5 a4aa0849928719cb24309d73ca9dc683
BLAKE2b-256 41c900e3ca9e8d7c35f0d15b18a1208c2877baafe0c3419a9f9242d333e2b724

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bd5c5f15ac28641e75564873f1d2a6ff14cc89c1beff9cb4e68ac5dbee88019f
MD5 84392dad28fb0221678f6a5887058239
BLAKE2b-256 1a00d5f4901219382ffba89201c7a55ce567c0ae920a2525d0fde4a9c9341863

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e2f20053bd06e1629bde9962dfd3ff9cf57f261476ec946bf1a1a3b076ca383
MD5 267c7492afc9635c61e79accc666ca3d
BLAKE2b-256 df3e45a700763c54e81fc219a23741fed64b4946fe98a63e87fd20a5e9b915be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3d8ff9187f3b991859295a81adc1b73b93444634a27722dd81b7f14083764164
MD5 007188f8f809046c9612fc0c3559e765
BLAKE2b-256 ea2aced97477a5619416c5e987e14ca78a9cd3a436f487e8421c8a61d5928b2e

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