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

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

truss_transfer-0.0.24rc8-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.24rc8-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.24rc8-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (4.2 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ i686

truss_transfer-0.0.24rc8-cp313-cp313t-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

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

Uploaded CPython 3.8+Windows x86-64

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

Uploaded CPython 3.8+Windows x86

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

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARMv7l

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

Uploaded CPython 3.8+macOS 11.0+ ARM64

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

File metadata

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

File hashes

Hashes for truss_transfer-0.0.24rc8.tar.gz
Algorithm Hash digest
SHA256 eb46f30ad32467ddd114a8e163911242d075fa91c6d897c8e81093e174565d3c
MD5 77a9582c5d1b434673088bd09f21dea5
BLAKE2b-256 c900a369002b5aeb6bf49749154dda46d5267af41b493f8907e8c00a0b0657ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1b61ba2bb072ffbe728be82c3d4a009bb381ec3fbad3581c09d2bc3834a8d275
MD5 2b5925d4d4bdb54534c74b69b2bc398d
BLAKE2b-256 dc302cc12161236be1cea04d2fa0aea66f9f02bb482cfa0f6310c39f5af6bc29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 dd30d2c97abbcc58da4fc34c23beab10fb38d64b57ed6fe957e1a4671026e8f8
MD5 db26fbbf13983a6c13a70a56a18b671f
BLAKE2b-256 9c28eb559b206b87fefcbbf0bd6909aa4630589d24693175896c7f3eefaee57f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 a673ccaeeeaf27aba0598cdc126a15fc710d6cfea4d3860a46db491fb0cd03d7
MD5 191d5e905b01e61a1eac94acc8c73de1
BLAKE2b-256 a901f2fb43d90c91fcfb981ae913f12744d19c9bc75c076c5454ba719d406b5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aa2f33f24a186d3f3d482d0df441f81b9b3e3f9b9ded26973ea68607523a378a
MD5 b2150e7a4cf5a3613ed19ec33d530d59
BLAKE2b-256 0778be36e9b3ea4e239ae12d4dcda41535f72240b1c750cad86cd98e63b004ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9fe94089b628f76255214f8f4c69b58c2ae731a28e1519ba7b34699e3837707f
MD5 7e2a07c9a2886eb0a07977567105edd6
BLAKE2b-256 3a10cac895f9990bb2a7c63f50675de66f022358542d37db4b71e67082c9022e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 bca482b3d898c138485e9c5845f6bb70f044902018a4b68730e72592fc2b0ae8
MD5 51e78cb2531888298afecf5231e73ce8
BLAKE2b-256 f716378ecc630a1c6177f691526ae17257ff4e3984e785f84be1c51b7d8dace8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 404ab69d0c70a9bddb958a94e724d24b34615a9430dad7ca045adb1723cfaebb
MD5 ddfed8eff8de7f5385a76f9ab35df3a5
BLAKE2b-256 8007f2a5791cce6459a92336a668a314cb6d8b9c221ede5540cc70d407c3b9a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 053e705f6fc1bde685e1c843a42100f602ecf5d578e4b301f2c237ff3474a51a
MD5 12429f1936e3a049d40a67c61b4af871
BLAKE2b-256 c71f3428c6909cf17f8c17d0ead49eccc40306e22ef5e994410bf0e8d5b8178f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1de0e035ff8e98de0bfb9528589d1a3b474db3cf20023a6c5516987d003b8ba2
MD5 fb9807e8fc70a135395cda2887d32e8e
BLAKE2b-256 bdfbe42a211e79c290206b8c39485d055f24b170503da9c900604804461d22eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 48754517837b4b996fbe4cf4c25e5ddc6d87786a21914b8b20971130c1e720c2
MD5 ef6b168f9db4d25e11097fc6918b07bd
BLAKE2b-256 3cccf5cbc1d42950873fa82cd5e3216e3d3f33ccac3a320c1712d6004e9de9cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 0cdaab30f4213f6df5afc0c2a460126cad0374b89e8a85edf3b132b5bbf8dc88
MD5 900550ecc72dadebfce2d9af962a5fdb
BLAKE2b-256 174a09cbb8c5be1591c64efceaa8e0cf549e68dc746ce2faa0627c1fdc7de8f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5d34a76dae86668f8dbe5d1849f4edd3c2eecef95ba95e0148a875ca7a17ef95
MD5 9fbd4adb1d119fe5e12133d8d441e985
BLAKE2b-256 6051fd4dd61ec6621341a3fd618c5c6819aabdf099b39be71dbebde3d10fae87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 e6e7c4bcbb84fc655afa57fd2397a39e345f7b966a59ad9faab3aac74d8a5f50
MD5 40819902117786dbaab2f350a286b332
BLAKE2b-256 def7c27583cdcce4e0e621fcc8f634ffa144d144da4a181e89d606415017292f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 eb1ecd24aea38a04f190c9b53bd17bef2d07cd652aa29fc4b57569c4276be848
MD5 2b4220ba1e1c2cd7f4efd819f0bc495a
BLAKE2b-256 71d17257350eab1e04b4dfe8f6e8c37f6020619aab557dbe6742fb22ded1e9f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8f87c8c9a19e1fcf9cb9813b93c44242744cf415539e8d150588d39ebdf9c4c2
MD5 9f08e1412191bee716e12cde52ae4ec3
BLAKE2b-256 6c5f3e81a90be61c9922394008400e431de04be8b3a2f8517074694622fc64ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 10869601b839147b7e4cf6f839b9a3c3a4bc76d16ed96696ab81ffc88f4fd666
MD5 b82159257ce39357486ad90d7388c9d5
BLAKE2b-256 fe504bf58f1364aa87a6abf445be72ca54c901619837ee98a7437a9b504d1d25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7e7d598f28356ce4ad04fc753e76261a2321fea0bb87dd09e96683c3bebaeb1c
MD5 7e7ed9824559b1a6e43395316bc13e9e
BLAKE2b-256 a0bb5ec4fb31a79f5fe247a611ca58b6816fab6c320d4f1f93d61dd2b5f58c3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ebaab88817a2d2f7ecfed83a157f5aaf5b3e9a2abdfab575e94f635784bc95c
MD5 97ef256aed10498b5fec5203391e497f
BLAKE2b-256 9682e5fc005d096a5ac89f62dc815add5295a2d18bfb332a4cac0df8d98b3b3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 befb2ba5b8697618039c7d78de9e83e5145fe0b219e1ee085993c74529a2f1ae
MD5 e5d5dfff26c8b23bbf6462b4170e35e6
BLAKE2b-256 152d97b1721025d4ca3cbffd082c0ed090e01dfd18614f896efee8a487810c4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3a14564eb9f117bd5a335ac5d82ebf585b7f75be9a3c78c361f8a8fba1db8bcc
MD5 c71a21091d03b406ccf33e24e4f1d76d
BLAKE2b-256 2b797f14ab82189082b744a500143373d5f45a464ac574cd8c738dff443d997c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 948e3e4fa87e84761f95c363aefc62750f4029f8fcfa83e844a1c7042183ceea
MD5 cd510e6c9aabccee355bcfe47cb59200
BLAKE2b-256 7f5c8a614ed1884a4d31e2172a91fca3c7c0e830c8ec76d59f4c77a820a2a6eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.24rc8-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9e8211b0555e979233e230fd8ec84e83a03fd7dd8a8b94b6205787fa84f61e41
MD5 e5e2c07601410b9781dc4caa79d0418b
BLAKE2b-256 2b3e666b76fa41f4b6546b5096a611b44eba825b5eb273e522f94aebb4a38d83

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