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.24.tar.gz (65.8 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.24-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.24-cp313-cp313t-musllinux_1_2_i686.whl (4.2 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13tmacOS 11.0+ ARM64

truss_transfer-0.0.24-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.24-cp38-abi3-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.8+Windows x86-64

truss_transfer-0.0.24-cp38-abi3-win32.whl (3.0 MB view details)

Uploaded CPython 3.8+Windows x86

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

Uploaded CPython 3.8+macOS 11.0+ ARM64

truss_transfer-0.0.24-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.24.tar.gz.

File metadata

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

File hashes

Hashes for truss_transfer-0.0.24.tar.gz
Algorithm Hash digest
SHA256 07cc8b3ce1a3cdfeabc65f509c3d431bf3d6e1b93ab8e032df470a0e8b2869bf
MD5 1a57a8b8f8e9ff31f86b971e16e8726e
BLAKE2b-256 9995b66a54d55f823d5164a1c479dd7c01a2554d2bdd9790b830306320477266

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5946acd85e4d9f3bbdc4644bbf552ce78987762b9d226d7cd833d9b06292f00c
MD5 4c4da78407155a6850a67a886325c141
BLAKE2b-256 3b7d2df923aa3c82d9adb06622c9739a3bbdca9dd7a980672d13242e3bce6722

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 19d234fb336e546ff44b9315cd5aa5c1690d6384b68e0bb89b0a81a499cbd037
MD5 3ad3a649bd717bdd51b236a07ec26cbc
BLAKE2b-256 4976aa10e99ceb9eb7a2a4e7a27d8f84c14e8f8a5db9dd8b8ce1d41fd31ddf5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 dfec6ca681966f33e046cb1cebc6844889297522d1b0a74d433bc47977ae06cd
MD5 7f09616d9b210bcee9d81d2cdd32625d
BLAKE2b-256 cf48510cd2ece8ef5653a9fe155e42d4cc3b062960f2a9967015235b6647adea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e72ceac784c6822a40bbf2052b52971c03fb7397e479e121439a77f8855b08aa
MD5 2502d12418fe81c035af6e538734306b
BLAKE2b-256 60c589f4aeaccbd78b7232c6ba2c808769cda424ecf7d9b7c8338bcbfa720868

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 23794dae85ffa4d9f345dbf612873f4b967af059580d3cbb0b9ce74501075db4
MD5 aa0651d5dcf3d78fcd08d876b917eef5
BLAKE2b-256 c9cc46494685b864fd155b3c20f078227daba3cf5534ef83cdc0eba96c957b16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 9710b8fe590cf359e2bbd310b3a6800c3e9c52a3ebb7ccb503c4ffe2c5b9e6ca
MD5 36ac513fc9865ade8424c5d409f2ea5f
BLAKE2b-256 f20c0d7f6f9ee9ededc20d28878f7968d83e2425f3ffc3897681e4b173379b3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ca42e2fc3b020da6f02ca1c156191083b7b8a287472f7ae016f3cc16c3628429
MD5 18487af97ca5fe253ce86c9ff52406db
BLAKE2b-256 356af92160f4ce45ec6d1d9b35440a06c725c22394dd46af324b9a34bb0c848a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25b596aee7f7cd620661e6c80dc74ba825d8183645f2e79abec6fff9e5a6f29c
MD5 ca78ddb7b0e51d3094bce6498330d575
BLAKE2b-256 b1b8b507255a2b9e63b28b92ea30c748122bade312e87294ba152d9fa3574b1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cdbd0d0f7fe72475084646665bdabe1ae23ac4c1ac0f4c1b0afc522a6f1035f7
MD5 5db69d1dccf4d644844365810ce8d411
BLAKE2b-256 8215cecc00939e4e2fab14a5d430f48c7f1775d0dc332759a2b0e46752905f89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3d9a025a958793cf79e6a22c9c1a996db68e713bb6e2b4c8cdb22ec15906ef61
MD5 a9f89694b3be9041f4f67b9e1291f949
BLAKE2b-256 beff88bf076b357868bcf0b3690a7917505af0cb0064418ff04d01b956436c90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 72a2ebec8e8f52dbbe3bba5a371046e857510aacd1229db30faa6b1d728a2454
MD5 f9fbf127151d200355fd4b6c83e8d5f0
BLAKE2b-256 886620f4dea6706014b02ed1e7a008d5c7b59d9b29683aa82e5c3e1efd744cf9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e4ee79afbae1640d27f745d87eba30c927e3c3eda9ca016b2a1ae87db59999fb
MD5 0a22dcbd5a38fb6155ce9d3008a40e03
BLAKE2b-256 40c90798e4f17d5cbd3d5224331260a1587363830074104b8fee3d150d21780d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d2a1c1c04ff7aa522ad24f8b8b7567f650c88b4ad7251fc6be680927a5e9b3d8
MD5 dc933e5b8ec56bf342a60fa29f10cc61
BLAKE2b-256 3d235eee0736fcc7c62bb9f770f73554b5ba3297776863c90cf91008af5de9b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 21c58f9aa10b0082a8b4ce5ebb7eb30387c7966b66cb306031bc9114081ca2fe
MD5 950bf7be3f7eef39f5d484a4a48fa5ec
BLAKE2b-256 4acf29e372c61d7f11f3b5e0a66205f31f222939bc891b7c4c99e1459250456b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2681888d935ac29157f0e84cc0a3ebe27dacbd2f63c75f732e05f1ff70670e90
MD5 d533dbccd3bbe50311a7e904dd2368de
BLAKE2b-256 8f46a5eccf0b9df0afb22422274adeaf4a0f7e00d9bb874207c8e87e60f315c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 d08b0eca9dc4a9fe8d641c19c07e25a757511d11626f7511c36f6f387251cf54
MD5 fee0eec60079c93ea361cfa96258df92
BLAKE2b-256 d9f73fe418c598baee42cd3e59547ab4a3da070be1b78c445379d80de78a0a01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0a81caceeab6ce691abe99474ccf6b1f4355609156434722a0f88e721f9396b4
MD5 30a357a485e9c779d425bf12b228df16
BLAKE2b-256 000da1ed08e31b404ae7e9fd0c531ba2b3bc36abdc16ef9716b5d67fc2f9f89e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5a36f73d76e90354122c2d7482dfefb63ef9622c09f5d71a1c70db21777cf894
MD5 9fd3408def61806cdd2a38abcf771d90
BLAKE2b-256 43c40a1aa7c7aac14895c231da8efcbcee86bba989edfef55b74870ea69ff5ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7ee901287e3c084e62a2dc62ed5557282cf460483ca78e7d3af0cb8c80375498
MD5 96b8100e0966a4e039319745f920160f
BLAKE2b-256 d4c871ca517f3477db0de01f2baea22a2f14e72ceb6d0662ff598f5d5bcbdd72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c538a6803107b0398242c25013d76068beef5cef9e864ed5615d8898cc9fee1a
MD5 8f0646700bae9311599c51faf1d98f14
BLAKE2b-256 e8922a46619b12c18a5d4a6ebd94564e08a7df5e01a68d5754b7cfce62a5a290

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40ea9c1e3b2553cd1fe4bf2d62813aa3c50be39fdb537f971b39382eab337d1c
MD5 2551759abbd8a2a5cda12344dfc974e2
BLAKE2b-256 f5739566c2f5c77dbd87401ffcdba5c0a706d1b2140d5240f052e3a9c3e8fab9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 038d008b3cc112ad04ce9bdd8a6a23310c7811874dfeb2fcc8805985334ea927
MD5 728f96f44dcf80dd8934435fb021ca1f
BLAKE2b-256 ca560e193d5faf882b488a192e71f6533c8bfcdb8fb17f858e73451e779c96fa

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