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.34.tar.gz (72.1 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.34-cp313-cp313t-musllinux_1_2_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.13tmacOS 11.0+ ARM64

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

Uploaded CPython 3.13tmacOS 10.12+ x86-64

truss_transfer-0.0.34-cp38-abi3-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.8+Windows x86-64

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

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

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

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

truss_transfer-0.0.34-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.34-cp38-abi3-musllinux_1_2_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

truss_transfer-0.0.34-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.34-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.34-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB view details)

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

truss_transfer-0.0.34-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (5.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

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

Uploaded CPython 3.8+macOS 11.0+ ARM64

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

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for truss_transfer-0.0.34.tar.gz
Algorithm Hash digest
SHA256 ac014c80164a2d394fc95d088df557d9e094b73ea6f61e2ff004fdf52659fb44
MD5 a65e6f15cfa3f9f6850c36826cac7bc7
BLAKE2b-256 57d4c3c89d9729bb5b2711acb78fbb7f5f2ce937590fae4bd9d9b1461e354a2f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f4d455ae0c4941f1999f23a3c8b92dd152f2849184ecff3c8d06b6a09f5b2aeb
MD5 cd697d0b5d9a69860c26985ad933a0d8
BLAKE2b-256 4ae67016c7c245c2acbeea3020278e3507631d90ea3ee9531dccb47fb412c78c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 13528649a127e2d353d475e4bdc5a5ccc3530196a66eaf395fb58cda4aaf9a9c
MD5 689d332e5fe9721a42655dfc4c519309
BLAKE2b-256 8484beb5345dfe5e428940cf152053ba2bd85e0f38c2d65c789f72e5ae7768d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 ad558cf4b01666a2b0802b5b5a7740dfdae1a4e9f3249dd64af833e17b8c056c
MD5 b0e229eb74cda9e9a335b594b590796d
BLAKE2b-256 053b290e92f3d61b83f7b6d3aa5c460d174dd9efc713e8042eb5402c9d22598d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2d09f9f1a3b41754cca76c7bdb53eaf6afc374fca2d6c6e6bce0e2ab06ead0f1
MD5 463afdccfa329500323b00ddd3b5e254
BLAKE2b-256 e6220526326f523d0ae545c968600a416f1a912e82997648332fe466d10d5587

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cac927a5129d3c7ba8115552a41a47b1009d42c9e0d88e6e6c6e8cffb5f5da87
MD5 1f79d3d178d11ce5b43de3c1744f2f5c
BLAKE2b-256 45fae0917f02af2fbf4a3f2b5909fe474fd686a272beda5d05b87449f15faa34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e8080cfa529d1828d7c96095baf1a934ca597065a0226352a8e4bd65ebd1b671
MD5 7fc80ea32a9ee09f9bb116faa4419c46
BLAKE2b-256 8c7680c8c1d8ee8cf1def5c1f8c904f4557b1a15e0694725d98811cb78475ae0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d387d69737220a0be6ba06cfce7c4196d28def034e6869a40ed62573c3e1fc70
MD5 0e192d89be330279f5a6db3fe82e1ae8
BLAKE2b-256 595505cea3387969f19ccbbba680dd7ebbac98f283f166fafa91740481d8d134

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2fdd3014101a3841f2d684a3dfa6e10116aeed0d14405dc1cfbc8067b25b524a
MD5 b1d02fc4dc9e0bdbfb1faebef69d105c
BLAKE2b-256 6487d31a05f65c79cecbb5d241a311ab0a232dfe83a90bbc2f34568f500a1ae0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8f48fb09e93bf79c911be737ca16a58248e4c398dbfe6afd215186ddee481209
MD5 70f2dec5e9d661733369fe70eb078403
BLAKE2b-256 f506ee5569ce5000de8d0811a5f1381b61c001edc3cf369370d17ee9dfe987f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4f0217b0761d1339c87b5eb5ecd81b58b46fb191bbdd957b54f585ee6c26550a
MD5 8521c493f6bd9f0e058740f57b3d1d5d
BLAKE2b-256 bae921862574dc55ca86182bfce6f50776496b14fe2da6a3163f15191f43f054

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a624f1697bcf85a7071cf3ee72aaad22ae825638d6372d88eedc28166145deae
MD5 e2ad7306adbff76e6d44b4021ce2ee98
BLAKE2b-256 260cb1ff53202fcb05e7039ca7b4956fa27cd747fb3177f35d3dcf397c5efcb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 3f105229f7036703bd54b4a1c1557576a3c2be56bdec1d0d60f1a26cc0c58577
MD5 e35fe9a020610e6733830c043ba7053a
BLAKE2b-256 c82615ab156934828012eb6ca0315311d757845fdb8454ef88e4674b3b6db614

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 565576aa49e20c62a20a09e0b1c651f08d0acbf2f8b0fa9ee76fb378a69329d7
MD5 954e59d1c75cd3b1d78e93596aae472f
BLAKE2b-256 0947f6ad89da69f62c180f40a0fb004ada3126dc9cbc60020324ffdaffafe8f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0386c63f4e7febccbb0c2e6b3c246a0c67dddea59a1b80cfedee1ee2d8eb15b2
MD5 3ce9e3d24821e5506ec8c000aa789d49
BLAKE2b-256 bae9a381b2c3a3af5379e70113e12b5969dd1b2e03176370c68e99753f3e3b0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 19d21cfa45a473cbc4016ef051b3a17a522ecf9f7e1f8965490e51ccfff067bd
MD5 092d31553d4a2644f224fb6d09d16cc8
BLAKE2b-256 a5265b4d284bbaa1a71688f5087740776b828447b1bdbbe003d4273e95d0c440

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2786d6265ad941444a11cf53e0b41b3d601c4103cacce66b62acfadf94084afa
MD5 5a303970451ce01e2a15a25a0bb14bbb
BLAKE2b-256 ec2129a58ad14e675d25fe0b5b666b8e13f720ddc678a5fa63479f6b0bc5b541

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b27627ad6029fe2b29831d52077708afa6fa8ddeaaaf8be9020f56250952e71
MD5 6c00030ffcd4803cca4ed680eb8a48ad
BLAKE2b-256 a749edb89a6420830d2a25fe0c280fc2d934d9c2d991345c86f4ef7b532bde8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b6983c3eba0c49d3c4688d76e0195402c69b439b9161491dbdec97dbcd7181be
MD5 23e756007245b6b6a7b28922a0b8986b
BLAKE2b-256 b440eacfb4b455026f10621496707a59d64bc8aa4df7df3f308eb13c3cbac97c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3d5b295b27c9eaf948db72a7429a18c49aa6d4c0c41ec766fcfac99bf4605bcf
MD5 4fa7babeb0e6c9e95c8be088b9c617f9
BLAKE2b-256 567f1f60f9595415f2844b400bb3e4fba93fd71db8b758a73b05517badd31531

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89c0cd24b5cc024326a38fa086ad8ab155cee21e9348acf0aceda6b0cddb1c4a
MD5 a953e44bf8cdec0054fcc0e089a7f1ab
BLAKE2b-256 f7f081df1b7ad9778f8f865a946f1bb7313a859d6308b3487b6e8d6422f2b5c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.34-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c376338265907a89c7506945f9d8fae69952edc1d6a2eb3288e8a4f491d6abf7
MD5 6a1b6c9c17edf93204a400eb67c618b3
BLAKE2b-256 263a4cc7d14053e3de9047de2d01da243fd4b73fd99e784b3b9b4ea14c634ae7

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