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/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
    • When enabled, files are cached in the directory specified by TRUSS_TRANSFER_CACHE_DIR
  • 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 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.41.tar.gz (85.6 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.41-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

truss_transfer-0.0.41-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (4.6 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

truss_transfer-0.0.41-pp310-pypy310_pp73-manylinux_2_28_armv7l.whl (4.2 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARMv7l

truss_transfer-0.0.41-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl (4.5 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

truss_transfer-0.0.41-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (5.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.41-pp39-pypy39_pp73-manylinux_2_28_armv7l.whl (4.2 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARMv7l

truss_transfer-0.0.41-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl (4.5 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

truss_transfer-0.0.41-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (5.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.41-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.41-cp313-cp313t-musllinux_1_2_i686.whl (4.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

truss_transfer-0.0.41-cp313-cp313t-musllinux_1_2_armv7l.whl (4.4 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

truss_transfer-0.0.41-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.41-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.41-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (4.6 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ i686

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

Uploaded CPython 3.13tmacOS 11.0+ ARM64

truss_transfer-0.0.41-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.41-cp38-abi3-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.8+Windows x86-64

truss_transfer-0.0.41-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.41-cp38-abi3-musllinux_1_2_i686.whl (4.6 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

truss_transfer-0.0.41-cp38-abi3-musllinux_1_2_armv7l.whl (4.4 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.41-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.41-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.41-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.41-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.41-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.41-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (4.6 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ i686

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

Uploaded CPython 3.8+macOS 11.0+ ARM64

truss_transfer-0.0.41-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.41.tar.gz.

File metadata

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

File hashes

Hashes for truss_transfer-0.0.41.tar.gz
Algorithm Hash digest
SHA256 714677a081e9b0ee8a855296ad42a287eac29af42d9a595178e7ef972f46130a
MD5 eefd91d8ff91549cc7274482cf5b88fd
BLAKE2b-256 d98034b3ab5e885a62e331d313929a2896dc45a78ef86f32d60be857485d9b53

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.41-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.41-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 daabc862c33bfbc1b4306d3deff0b5aa7630cbb98c450931e24e5423e58522b7
MD5 732a65167d9bbf8d3f02c552263e6530
BLAKE2b-256 6e2addafdc5e821a7fd23c3d516f366f065f0a29a1b7e9bde7a90c714b73b9f8

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.41-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.41-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 986b7b7a6d8769268d9c6f3866b0e0507e132a1a86702e677538bfa3ff02735d
MD5 ec5589dc8ce09675d66157e50c505a47
BLAKE2b-256 f40f634eec7f70b8e13418404611d67d11f3fda9a4cf30eaaba852a6dea03197

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.41-pp310-pypy310_pp73-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.41-pp310-pypy310_pp73-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 9467d4d63b20309cde21897099ef4f42dffcb52d8c8e241940226c387ddcb912
MD5 8c0fcb60a719350d293d55275fe787f5
BLAKE2b-256 cb6dc00e6c1220945e32ef029c33391954190880a342bbe650ca604be075f807

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.41-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.41-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d2cc439c67896c5cd2de5b06ec563b99ea400aae54675c209eefbc602203d061
MD5 1c046ac92f1b328a31b5ad8293af561e
BLAKE2b-256 27abc6c99a862fd6672bd637953f6be5625676882b4722f6430ad5c51ac44c19

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.41-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.41-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 fafa1881443d90d4eaa7bd0974ccc909129a97f65efa9f66f74a50e8f8dc2c23
MD5 43a7e5b8ddff87f9272aa0855a17b9e2
BLAKE2b-256 990dc12783fc345c4545b3a046a0d446fc26c28f5e23c920bd7c0292ce8c1295

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.41-pp39-pypy39_pp73-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.41-pp39-pypy39_pp73-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 1c48bd74cebe0d6a91c2862e7ac8b0d8162ed714d0edc0d1916295910f111084
MD5 9c7a32a2996478305a95ca862b7bf89a
BLAKE2b-256 61650d6f40ef485c42002c95fa3ea0f0967760fbdd51d70d8db5f2e0728cec4a

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.41-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.41-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ce37266c45d681090600314ac88b0e154f2bc1febb57becf74d1346aa72e6cb7
MD5 e6957b6a2202cee0d5c61983668add86
BLAKE2b-256 dd4defc80957a559dcb576f35a5663dce702cfb0dad6955aa2f224e86c06571f

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.41-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.41-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5704c383cb2ff332a805421ff2084070489160bfdea2e2fef3ccc09780541b15
MD5 5aff74e225752a5f9adc4d8c53cde57c
BLAKE2b-256 b5a55f928c9539c46b7df277af3bfbac1a02d4e03edc8bab38ca5d7e8d954cac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 438d29a9b0a8fb60f1937a8aa3177b4feee46ec8e36af73be280eeb195660ecb
MD5 4477b7e707ead99111ff86e31d908624
BLAKE2b-256 9e9d6b4ec91dca9fb74e2bb79058f8a4b7e9170321116cd076b7811d56363261

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b3afd1e0cbba74e40c89a2b6888b2d232743c59dd8dc5f0ba9684aa264f6785d
MD5 3ac170a86cc2442fae3cfbacb8c8748c
BLAKE2b-256 375d4a10434e01c111ef8fafba9ba85d79f050c17f8c309ebef84895ce00abf2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 b5c35ccb5eaf08f2940af9f821cc13d567642dce6915bb7f9e50486e76f59a62
MD5 31890edf992ba4ff928f22fa8e3c25ae
BLAKE2b-256 9ed7a391605a7b58b9469b57b71946be87042521a7ac731c193f5d41356c35bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8efacc2e28f6dae9f29b4c5ab8a1cc9b25321b75d64e1b59851199a42a03edbc
MD5 a702cc0f5794872a2a82fb9b81da52a2
BLAKE2b-256 269f81858966800397a3ffa383d9dd220dbb9fd273f2f3b5a964f6aa25691f3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a34a4ab7f6431713784cf2c582106d8eef245d0aae3578255c6c4589371e26a
MD5 c74f3a23ff630d16d948c89b783b1ac2
BLAKE2b-256 3dde19931e9402915ab3506b87fc2ac51f4e4d96ea7c6d1c092b7136b0dd5897

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7deb761670ec497b2112a2a719daf1bff0a1ab111fda2d41ba02254dfe2fc838
MD5 d207f06348083b0656efbcfccbd5b31b
BLAKE2b-256 07198a80e8ad676dc2fb0030adbd3da733eef124757c5159a937256023538b79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cac85c01cfa871d1c9e16f9841b631e1b80e001fc51cc93943f95e19b173fdd0
MD5 2ab9bb0cc214fd4f5f6e3a60ef765bac
BLAKE2b-256 a538ed415d4f89b79acec5a764610be6c6d64137ae542875aeae12acfcfe3c34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d4751679ab049ffff38bd27da05146443c05d52621a2beda40968dbec6275d4
MD5 67a12ae33ac8f89b38ef095f97a6c276
BLAKE2b-256 2de184f680b36ba9435f66d84518ae9cfb51608fec7b31a004c8731abdaac850

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fde9b292fbea55570c1133609c61e3a207cafa50b277189b57136e9cbe9ca657
MD5 b6529db0f982e491dba52063e5f03bae
BLAKE2b-256 c412c927d03a264532b30b5068c5b47c7b86f54a4301f1769354512c4cabdb87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 80d69053f84748955b3c00c8ce031a1374c86347f11cd6a606792b93b1ac18ae
MD5 449ff56cd4e1d07b917036f8a2c98ee2
BLAKE2b-256 7e16f7b8d867c4679a6b0c96770fc8c00d7d251d66c36ced4245e9d10ec10001

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ae3d863f8fb8c6167664ca727439d38a8a0b5aa2beccaa231fdbe8c46aab2ed0
MD5 f7b3c76f0f57d9845e6af06e16c0209d
BLAKE2b-256 7185f2b3b977f49daa894b8239675bccc966689f5b98532320034f2f9bbc3483

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 802f23b8405b267bfb9940d73c21a70def60c7f68a887e194f2f2073118d967c
MD5 4a06375a23744db9b11c1ea366da933c
BLAKE2b-256 b08413a337c6025c9868ff60b9d8dba7018658b56cf3669f4bee42b293166bf9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 61b4ebec3e25e0ebcad376d456190a8aa0b370cb267c07f3cdc8b302e558a786
MD5 483965bc1aae9285447816b6d2c41afb
BLAKE2b-256 3a8495e6b8c48f03c6beb63f80b6e7196eba1f80ab990a6b51ce321ace9848b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fe7fa5e42f3791faaf801d26fa51778866472b51dbe48bd9ce199d9781ba8945
MD5 ee21a9dcb7e0c7ad4b4f6f9ed2c80704
BLAKE2b-256 cbed3c1911eb7a813fc6c1060f16c01fc5d543cb8a1b2fad304752bf541bff0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 21e15d8ebee52bccb8efcaf5865ee84040fb0099ae854e39d9a2079db3bf1637
MD5 ba7408e3e11a06e50a388d9323d89ac1
BLAKE2b-256 440e2a84c0a7e157310307bd4def983ea03da848b7902f27c533514323b4dc03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fc08476bd15b3e7bc5e8760a29168ccaadb4a61df608c6b693c29afa39c984f3
MD5 2e12ca1363b05f005d8c7464289afcce
BLAKE2b-256 3f2f77784b63a0c9de2a43bff98609d41e2e30f199f6ee8518de644c8e5fec94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cac235c2994a66f421fc3dddadec7dcb1c584541913b21fdab2621c54d8fae5e
MD5 e5a6ead5f758e672ea66d5ebc9514f94
BLAKE2b-256 3ccfdf5cacdcd6b4c02ba4c28bc6a77b1a8815bdee33f0bfe329f921b4f120e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 278a930dd0828e5a3367a092a044bc33726b0084191d5f0e82752f81d186a51e
MD5 5c06a7b169f4dcb5ae0e584a80f09466
BLAKE2b-256 37c619ea1674ff10d67848bd4daa8b93151da42f733c8a92ed2993e92a2868cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 316fca259a8322c10469b63a97ab7cd20f549a32572cb2b0986911037b9f478b
MD5 7762fbd820d6ff99f4a813fa8da0904e
BLAKE2b-256 c69c1cf76cee978616c7dca3e4782416cfde0306ddaa1dbc73a6f6008e878864

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d163f15339ebcd72e4faab08aa01563f860ef784ebf1667952e4cddcd21c079
MD5 40e29269c44893a8f759dbdb4e2766a1
BLAKE2b-256 a2f796f098b057c9e502f52b4a2a2bfb69a0d64cee46265ebbb037333bbe8683

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.41-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a3b66a47b71543b730fed94118afe7fbd3af8e72476ac861a68847f50a9c80fa
MD5 f6ecc9c60f222c293649a1cf19a607ed
BLAKE2b-256 6a2762c6d18f86bc677ff71a0cc11850dcf35ca6729f4076e6c1e8b3f00219a1

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