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.25.tar.gz (65.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.25-cp313-cp313t-musllinux_1_2_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

truss_transfer-0.0.25-cp313-cp313t-musllinux_1_2_i686.whl (4.2 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.25-cp313-cp313t-musllinux_1_2_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

truss_transfer-0.0.25-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

truss_transfer-0.0.25-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.25-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.25-cp313-cp313t-macosx_11_0_arm64.whl (3.7 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

truss_transfer-0.0.25-cp313-cp313t-macosx_10_12_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

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

Uploaded CPython 3.8+Windows x86-64

truss_transfer-0.0.25-cp38-abi3-win32.whl (2.9 MB view details)

Uploaded CPython 3.8+Windows x86

truss_transfer-0.0.25-cp38-abi3-musllinux_1_2_x86_64.whl (4.3 MB view details)

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

truss_transfer-0.0.25-cp38-abi3-musllinux_1_2_i686.whl (4.2 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

truss_transfer-0.0.25-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.25-cp38-abi3-musllinux_1_2_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

truss_transfer-0.0.25-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.25-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.25-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

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

truss_transfer-0.0.25-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.25-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.25-cp38-abi3-macosx_11_0_arm64.whl (3.7 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

truss_transfer-0.0.25-cp38-abi3-macosx_10_12_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for truss_transfer-0.0.25.tar.gz
Algorithm Hash digest
SHA256 d298b3c1ddde91d4c1a2c6ca9b4c2c691717afcf5593f53e8b9a89055cb217bf
MD5 08e494631d7d26cb48d36543b4b8ad03
BLAKE2b-256 de3a480fc90c5b29079ad49b0b31a9b0426f4c1e3cb11d41aae6f5ceb37a2d13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5416180f098c7f05a670dc9f684aeeb0c1166a5c39ead8f05f1fbb060706aacd
MD5 fd2066d496e57d2020d1c1b3c8370c3e
BLAKE2b-256 080e55c8ec474107557b6ea165ace9360a2c7035f40e0f76c5479f29c49c41a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 e1d2a97e9a8d6f852d44893fc9728a170f3ced1395b77b9f615a21bb49637664
MD5 c4afc5e77ae93b6937a655da3f0b35e7
BLAKE2b-256 cbb06c4473a8a21f546afbd45fb3a52c4dcd989d4d31ff039302fcff2b25cd3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 106ee17fd6fb925fdc0f12bf4f4c43b2f8d69a1ae557c15466119549aa3616a4
MD5 3201050b073e2a1da383eb7cda8d9217
BLAKE2b-256 92aa0e0fe27acf94502f5b729754e2ea0513694479d877ba2ade26028539f4c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 28a0a9a4fa9eb786c80d389b13bae958ece236d1d9c0b5035a483d74cd657668
MD5 16cfe204517a47ac069909818b4c57b5
BLAKE2b-256 d769f237fa9d9b7b196252c4a3e8643917eacaba089178f291aa3f139f488bf2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0f0eedc79ce5da1eb3653e3a63faca1193c0f45e058ac0abe2c6997068edbb35
MD5 fddf9b37ae9684688d1d2bdd55f1be05
BLAKE2b-256 75f2fb40c787b9bcf771802c2a8b1a0015843eee5d702c2c10beda55913df7a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f7163c1ba2b6cd27caeefa370c31e6f0719926f9e16481be7db9e8bbc4c82d8c
MD5 35d50a3b972aa2c04452df3f8e756944
BLAKE2b-256 683862d6c11a5dbd5a1f168ba6045cf720d71a6370df82e772ab752cfbf87d27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1f3ef00d4013a04e7529d10c9413d447ed455521d151711d5891ddecf826d2b4
MD5 91e72d86eb34aeef7ba1e53b9fac6685
BLAKE2b-256 ff2082fc2318f9042dbab2428af753da6987f8d2edb11a11e3e52fc34003e5d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9650642dc19d565a06da0f5668dcaf27b13ec1849664473db010707f2f60dfa2
MD5 6eb19cc8b8a7ae53caba96711721894d
BLAKE2b-256 70ab4e249015af4088e9878b393e0fe1c1d44676d389747414f2268e6d41652c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0a0073bb98e1505e1d08cb9d4dbd24dcbbcb88d9c0505b0237784d2d23a64f89
MD5 5714c641ed8ee79e63cb4c797d1dda11
BLAKE2b-256 2c976df92128ef5bb11a27c2ab1f72ec1654805302683c10339c5b2567c91f05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 442efe31a382f1c8abcb6d5d204c6cd2ab5ec4300c3366221b38f998d8703644
MD5 da7abd8c5aa0fac2c94dfa5f065352f3
BLAKE2b-256 12fdf7fa796f7e862aaec5629660ad3af1a6bbf934343527af3d984005bd00dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 625b6c26ffdfc516b0efb46d48b8505f44e3be2e4e1eb24fc478f52b91782515
MD5 1f6c2eec2357b2640a0b65e64938cb68
BLAKE2b-256 f79e2c131a5a3a9232cc2435308df371602f8acf01cb9681e21d61879852f0e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 30164c84959d51524ea3c61f32e4e732cb17e5b971fc82e12ff6c9f00dfb53dd
MD5 175d2fa3b243383099a240da8551cc15
BLAKE2b-256 cab6aa38ab6c45705e8cd60c6fd8c29a58d2c7310740e0952c6715072361bd12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 bd7ec2bdac54bb37f017e3d51369b4e06dafae8296d6d340d2b4f0c9c3eb1fec
MD5 7702df2b814e29cd0683b789f959ca9f
BLAKE2b-256 b613d1901f24ac3732115f60ed8f806b8a6c9272556ab652232b2f6b7c025ca3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 9898144cd239cd12a6b383cc7960c431d05c5aeb0bfb875a3cbe132e8b140592
MD5 14d4c02455f28f0f4d6a34ca2ce8a454
BLAKE2b-256 d8dfd3d5d1958b49b553b6fffa13b6f3571e8c0f313ffbad321a8f281332eeef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c0349b7407fa363ecf279ad8f82dbda2a064bd73ebb978dc74f0fd8558211b90
MD5 90d714cbc6ea85a359d199898a2d23f4
BLAKE2b-256 ba2f111adc44ef6ba0ebac6250a48d00e639c98401f6ce71fea56d4ecb8aff9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 52c54be20da6438dfd85b2c9f3d209083d447e5c461109226a701b781d3a3940
MD5 8c9c5a402c59dd677c56dd52bd31a6df
BLAKE2b-256 b1d0304c3a8e185816d192ac41683eddf32e1d7c594db3e434a436cfaeb4bd76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 79d79c2dfdae6d258bfe25a70d92da15ee74243d88931e80ff24997ca9bc555f
MD5 50128c18040f6773d12a979d7794ab0c
BLAKE2b-256 67a8744d6724184800298bb77433718bcb3c8d647b1013cf9131aab0cf1ce385

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 16b1e02032c36228b14f2811de8b9524c0149f057fb19fe6f236f6b45a6adb72
MD5 037b9ff00e8c60be1f8534b472422818
BLAKE2b-256 1d4ed4233ec6d40b2c7ea73d32ecc3feaa79f2a03c8897eac17793e79d2deb0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 af62afdbf777ae6f230782e431645dad9ea4927e27724082f5303b67e30c546c
MD5 3a51b922b6852136183a7c1e6963f028
BLAKE2b-256 935631c66a88a21715240f651713e8801b711e31897f098488012abf53c57eb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9a3a9f7e0b6922f3069b2700ed2f3c0e60d1b41f2a32ddf120d4443870fab453
MD5 4b7e37bc35e34e6e6fb34a5e68806254
BLAKE2b-256 bfb7b0f8bf7b73fe96ecb54f0e01321937800ec0d0166b6762a8ffb4d5e2f732

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fa3363a75da41ffed0340e3308155b4e015c0e9c3a4db733d3fcf2c45ca5f59d
MD5 5c4e4b108a201a2af6fcb44c8c370cf5
BLAKE2b-256 4b6dfcaa5835df25aa7c1fec79819e79fef80edd47f42ccabe8ae5a029594a61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.25-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 29bfc7024d6c7ededafb197fd47c920b2204e67c1ca76ac947ec45069195fc60
MD5 363ce2ef161b25960f4dc606d933c5c9
BLAKE2b-256 d2118b1d5a828f6b420e0bd1dbe1d4c8b11bc8795c9a3444d9a70085e8cc11af

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