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, requires both flags)
export BASETEN_FS_ENABLED=1
export USE_BASETEN_FS_TRUSS_TRANSFER=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/truss_transfer)

    • 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
  • TRUSS_TRANSFER_LOG or RUST_LOG (default: info)

    • Controls logging level: error, warn, info, debug, trace
    • TRUSS_TRANSFER_LOG takes precedence over RUST_LOG
    • Example: RUST_LOG=debug for detailed logging
  • TRUSS_TRANSFER_CACHE_DIR (default: /cache/org/artifacts/truss_transfer_managed_v1)

    • Cache directory for b10fs operations
    • Used when Baseten FS is enabled

Download Configuration

  • TRUSS_TRANSFER_NUM_WORKERS (default: 6)

    • Number of concurrent download workers
    • Controls parallelism for file downloads
  • TRUSS_TRANSFER_USE_RANGE_DOWNLOAD (default: true)

    • Enable/disable range-based downloading for large files
    • Set to 1, true, yes, or y to enable
  • TRUSS_TRANSFER_RANGE_DOWNLOAD_WORKERS (default: 192)

    • Total number of range download workers across all files
    • Used when range downloading is enabled
  • TRUSS_TRANSFER_RANGE_DOWNLOAD_WORKERS_PER_FILE (default: 84)

    • Number of concurrent range workers per individual file
    • Used when range downloading is enabled
  • TRUSS_TRANSFER_DOWNLOAD_MONITOR_SECS (default: 30)

    • Interval in seconds for monitoring download progress
    • Controls how often progress is reported
  • TRUSS_TRANSFER_PAGE_AFTER_DOWNLOAD (default: false)

    • Enable/disable memory paging after downloads complete
    • Set to 1, true, yes, or y to enable
    • Helps with memory management for large downloads

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
    • Requires USE_BASETEN_FS_TRUSS_TRANSFER to also be set for b10fs to be enabled
    • When enabled, files are cached in the directory specified by TRUSS_TRANSFER_CACHE_DIR
  • USE_BASETEN_FS_TRUSS_TRANSFER (default: false)

    • Secondary flag to enable Baseten FS via truss-transfer
    • Must be set alongside BASETEN_FS_ENABLED for b10fs to be enabled
  • 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: dynamic)

    • Expected download speed in MB/s for b10fs performance benchmarking
    • Used to determine if b10fs is faster than direct download
    • Default: 400 MB/s for >16 cores, 90 MB/s for ≤16 cores (with randomization)
    • Lower values make b10fs more likely to be used
  • TRUSS_TRANSFER_B10FS_MAX_STALE_CACHE_SIZE_GB (default: unlimited)

    • Maximum size in GB for stale cache files before cleanup is triggered
    • When set, actively purges old cache files to maintain this limit
    • Example: TRUSS_TRANSFER_B10FS_MAX_STALE_CACHE_SIZE_GB=500

Example Configuration

# Basic setup
export TRUSS_TRANSFER_DOWNLOAD_DIR="/tmp/my-models"
export TRUSS_TRANSFER_LOG=info
export TRUSS_TRANSFER_NUM_WORKERS=8

# Advanced download configuration
export TRUSS_TRANSFER_USE_RANGE_DOWNLOAD=1
export TRUSS_TRANSFER_RANGE_DOWNLOAD_WORKERS=256
export TRUSS_TRANSFER_RANGE_DOWNLOAD_WORKERS_PER_FILE=64
export TRUSS_TRANSFER_PAGE_AFTER_DOWNLOAD=1

# With b10fs enabled and tuned
export BASETEN_FS_ENABLED=1
export USE_BASETEN_FS_TRUSS_TRANSFER=1
export TRUSS_TRANSFER_CACHE_DIR="/fast-ssd/cache"
export TRUSS_TRANSFER_B10FS_CLEANUP_HOURS=48
export TRUSS_TRANSFER_B10FS_DOWNLOAD_SPEED_MBPS=200
export TRUSS_TRANSFER_B10FS_MAX_STALE_CACHE_SIZE_GB=1000

# Authentication
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.43.tar.gz (87.2 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.43-cp313-cp313t-musllinux_1_2_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

truss_transfer-0.0.43-cp313-cp313t-musllinux_1_2_i686.whl (4.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

truss_transfer-0.0.43-cp313-cp313t-musllinux_1_2_armv7l.whl (4.5 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.43-cp313-cp313t-musllinux_1_2_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

truss_transfer-0.0.43-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

truss_transfer-0.0.43-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (5.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.43-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (4.7 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ i686

truss_transfer-0.0.43-cp313-cp313t-macosx_11_0_arm64.whl (4.0 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

truss_transfer-0.0.43-cp313-cp313t-macosx_10_12_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

truss_transfer-0.0.43-cp38-abi3-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.8+Windows x86-64

truss_transfer-0.0.43-cp38-abi3-musllinux_1_2_x86_64.whl (4.7 MB view details)

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

truss_transfer-0.0.43-cp38-abi3-musllinux_1_2_i686.whl (4.7 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

truss_transfer-0.0.43-cp38-abi3-musllinux_1_2_armv7l.whl (4.5 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.43-cp38-abi3-musllinux_1_2_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

truss_transfer-0.0.43-cp38-abi3-manylinux_2_28_armv7l.whl (4.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARMv7l

truss_transfer-0.0.43-cp38-abi3-manylinux_2_28_aarch64.whl (4.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARM64

truss_transfer-0.0.43-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

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

truss_transfer-0.0.43-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (5.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.43-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (4.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ i686

truss_transfer-0.0.43-cp38-abi3-macosx_11_0_arm64.whl (4.0 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

truss_transfer-0.0.43-cp38-abi3-macosx_10_12_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for truss_transfer-0.0.43.tar.gz
Algorithm Hash digest
SHA256 502cf3b5639f94dd2dcc7978d38400f870b7c405b97ef59f0e71acb90fb83e90
MD5 5b8bedf7adabbdf55adeed0bfe330ca8
BLAKE2b-256 fb12882735ae7be115b0d622d530da6eb3b552a0a1b5a9130908f96c3eb12326

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ba54ad6757e0ffd73e7a0e92e75f502f70e92b83571a51633ad90ad601c73526
MD5 ee9138575edc958ec6bfaa68d4a23c9f
BLAKE2b-256 1555ccda666435d602efd8b0f407aa9c1e918c5a650529f347046d345a86d6ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 7be6ce558222f13585c4912287a265f791600c9cccac6642f4465096816c2eaa
MD5 c6d73f6c63639d98ea7c6ed3035a735a
BLAKE2b-256 102ba7a4eac36c28e95aca2db85802829ffd75b9cab1ffd0d2601a6ecb6ec530

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 e215e22265e9da7c6a128ee0e76bac7c41bafed4ef524e84cd41b53cbc8554b9
MD5 d4e3975bd5703241727fd8f5fde8f9c8
BLAKE2b-256 6442b77fcda48068dfa85c115e532447641ed9361537b87e908a458f0e9ee75e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 12413cad72597d9957b2d0e972aec33b46df3fff098e09888ca5aa5a896768d8
MD5 32f97694cbe05f18228a0c60108669ee
BLAKE2b-256 2e82fbf028bc7e89f18d6a512abe4d51ab69610198c81a01312ecdb614e16857

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1193eadda2f61b0e0ccd9326faf70a26d9aaed84907c69ef482433784bbdf341
MD5 dea84e398718609f67b2ef216f5a86a3
BLAKE2b-256 961ae538f2993103607e0a562d36a90e4cbe6a949ad5af2d2ab279be4152c99e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8122c238d6aeb29190365064360224237f1824150b29f128b1444989be9e673f
MD5 340b062268692cb3fc7502c30f6f23f9
BLAKE2b-256 6ac1cec87643f5526d4b5cf3067e4f2d3a4e01f796d9f147bfb1046d8b91dfe3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6a56f996f604985d2f685a9610c883dd1cb39c2563d6ae0e5d261e59427cd5d4
MD5 0bf0d36faaf28917e3796eecc8085b81
BLAKE2b-256 1eb5654c24d362c2553c7901369e63e26dc9565fd3806995c095220bfa067605

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa9b9ffa9f6abde014a1ae794c14f69c6519bfaac06e767a5d06aa6b68361eee
MD5 1627fc6cdd0e375874b059eef086c3cc
BLAKE2b-256 03139f00eccb1175b74d285954a17fff5f46a975ba78534842af6e4d1d849039

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 98f2f1ce24784f912f81299aec6b43119620f8acaa0b183ba7b42941800674f4
MD5 16e407322d4871205624dd0be0171ec3
BLAKE2b-256 ee44d0e4fe7d2b61e9714bbb5b20a2a1434ea9fcda3cfc0bc43f7ee199865156

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d74287637b34b06d00f4d6c3423b1a805501b0efd0f31d321f89fd8d6d162a1f
MD5 cccb58b7d799f1780a5ac5a49f7e417f
BLAKE2b-256 306eebd8fa29df86ae00b4caedb20a947a93931d2bd1248afe120167e4769fe7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9c5060e5a35de6beafed1e88fd625ddcfc923fc51f63f6894e51ac3221c72047
MD5 1ffabfba7d15df2250c197cf5d7311b9
BLAKE2b-256 4afc56ca8a78f79d974ceb67e580103a32092be40df1f4ebe89546b093dae27b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a996cb9afe4ebf2105a8d00c1907ce6c9b54a2d43e283f7f9f212bbdfc466dad
MD5 a143e74bf1d3b8723db8335857dee74b
BLAKE2b-256 b75792292c9ea821362fd72e49c55ccc86f8d789bd63cf9bbf16d1c5fa105570

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 77206f6cef60f2ac598702e15d10d40fd7c303d901c81a46aa5ad6800a950b3a
MD5 64cafccc070355704be5732997e6ac64
BLAKE2b-256 762960b60bf567f9a08ea71aff48300cf24447e7f025096e5f48926230c47cd9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0243ac41b84ab6fb77d01559cc8614b13c3bb0820c49972720b2b21072389c0d
MD5 09a240c1d8181cff6ab08ac9e8562036
BLAKE2b-256 4bb48b0d3fbca8882724c9c6396313507278947600c4c5d2888f125164126af3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 24e2846dbf321c138960948d9759bb9a5dd2486eca2c0c14a0b41e62fad9ebf8
MD5 bf71eb7b10bf61e3602e312089d986a9
BLAKE2b-256 ee255015a5474ded6d965842830a70abce072beafe49b56994213f1cd14aa178

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 51d89992af24312a2ff78cd683fd9686378492b5c9e1740393f2077b099a9033
MD5 54fde582c64caec5dc3cd21aa42ce234
BLAKE2b-256 06e484e2482332213d49aff3f0404f2454c048fcc615f855c57ded1b4285641a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 198210fa519583f792e8b6e793e81090046e17929507ecca1dac0ae9b7d9e4ff
MD5 72b26e545a79555aa80fc86fbcfa5305
BLAKE2b-256 087218f4cc06fe193e3d80119a12e857090f15c2286c79b12bdff75940aec276

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 1de550e95d0361899230694020ca93f16cefe6f92ff8bed43ca1b7a831306503
MD5 43b4d8fdba134bf43a29a1e357aea4c4
BLAKE2b-256 3f9ae20b514ce4be09d8543d1301f126c70aadb6f3d983607002fd2bb20543eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5b7e8a3cc0df83410541628ae152ba5bad2f6e2356f65aac4e8fe922879ea61d
MD5 dc5cf497bf3e1176f7d6b3e234f90062
BLAKE2b-256 1d86ab257877467e849096248f8d76eb64b3659c546398ebece03c73b4b5b2ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf9965d1d21c0e2ffb24c7bd7a6c9f3c699da1d27c73a83949500e5063926eac
MD5 192b540fb267b1b9962c5e05e479cdee
BLAKE2b-256 c021388762b42fbae69afb5e317b731ace9707b44e072984b5c6a5a26af9e0da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.43-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7014853d0ad5a44a1b7566408de476c4f5f1f063f62c01dfde5f0b2bfefa392a
MD5 d2a2ffe399427e277939e431a4e98637
BLAKE2b-256 367c5222b7f2d5d5a0186b9ffa931e0372867539544ab3092a7e29031e0347ba

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