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"
    )
]

# 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="nvidia/DeepSeek-R1-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
        # 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"
        # )
    ]
    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.22rc0.tar.gz (60.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.22rc0-cp313-cp313t-musllinux_1_2_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_i686.whl (4.0 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_armv7l.whl (3.9 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_aarch64.whl (4.0 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

truss_transfer-0.0.22rc0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

truss_transfer-0.0.22rc0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (4.9 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.22rc0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (4.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ i686

truss_transfer-0.0.22rc0-cp313-cp313t-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

truss_transfer-0.0.22rc0-cp313-cp313t-macosx_10_12_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

truss_transfer-0.0.22rc0-cp38-abi3-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.8+Windows x86-64

truss_transfer-0.0.22rc0-cp38-abi3-win32.whl (2.8 MB view details)

Uploaded CPython 3.8+Windows x86

truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_x86_64.whl (4.1 MB view details)

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

truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_i686.whl (4.0 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_armv7l.whl (3.9 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_aarch64.whl (4.0 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_28_armv7l.whl (3.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARMv7l

truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_28_aarch64.whl (3.9 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARM64

truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

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

truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (4.9 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (4.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ i686

truss_transfer-0.0.22rc0-cp38-abi3-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

truss_transfer-0.0.22rc0-cp38-abi3-macosx_10_12_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file truss_transfer-0.0.22rc0.tar.gz.

File metadata

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

File hashes

Hashes for truss_transfer-0.0.22rc0.tar.gz
Algorithm Hash digest
SHA256 75a9a7a45b3f14f7f8eeda8248abf78c97bbeae5caf6b0a44ac127ee2c9cae14
MD5 b13d75c0fc82390fd475d45ece8ef31a
BLAKE2b-256 b01e6c6a6779727c282050d653079652790a9c09efdd614125a55e26724210a2

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 362b4db4ce6f9c6837fbf865124335e1f0772f98c1a2a2f6a85e98095ea144eb
MD5 ba21687f8ce2274de45e86e6679c978c
BLAKE2b-256 588f56081fa60071577bc07bc7c0694913300f5556a623908de72722c266f52d

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1d4cfa7277542c00616a3870a458e6aee49b8d874c85a1f6012dccda1de82005
MD5 8424701888489ef10223ec9b40cd0bd4
BLAKE2b-256 aaca1b415e7058e05855726140e01815d6e88ad3cc1844b91ece1fa25cd1d5a0

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 656a0fe2e258b145609446a1ffb6246e6fb643cd81f30a4f5b837e2fa84c338c
MD5 3f0ee0e7cdd9831842aaaa55a9c5c39e
BLAKE2b-256 797373f8301e528df390b25320c61d3318a87524b54092b2427da3992e54104d

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e5e507d588b9276eae48336eb04e5cfc1bfd1d478378d1089e9313c865d08a07
MD5 70290facf5fc78adda8ecf72193aa814
BLAKE2b-256 9c2fb9b93d48c414cf7fe4cdcd4255b6056b8cfba93c1105d5418f63ed884321

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b844e3bd31630df73b3b4516be14a5ecae7902a7b96dc0b28c83dcc13541e5e0
MD5 9b1ec54b24776b0b5cba7f3225ddfaae
BLAKE2b-256 52f01e3b16b293958c077d6a1ec5be1fb8e5fbf1a69b396c137bfb061dc10f65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 2b938e428bf19967f33be6e886aa9228f4c724b22720d04a4599ec8b4f265dc7
MD5 77949cf70f39c784082746e3da3e8853
BLAKE2b-256 cf79b1b12cac9fa93d0c1a6e4803b4f0d80ef45d2a87a8d448bb3ff08334a919

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d3e669a25725a9d5fdb75e00dd6cd469ef9479b00494506fec9ab6652e35e179
MD5 76d91c4473507bed14120b4fb92fc45c
BLAKE2b-256 2087b75fe65d57ec182992208ccaee3ec8647e6baae2073a1fa15447e18fa125

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f3edf896500844f456226d590c17c39bb8fdaa4241a867500142a9e60e88ffec
MD5 86471232489d6ea806a10280ccf076d5
BLAKE2b-256 d907142449a4f38207a470151d2e2e01f11a807be25adf27159e8e29fb2c3c31

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp313-cp313t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 da8a3d5e1c12ef7c2725fd41068b0a6e070365f5de8ad44ea2bd663cd25e7621
MD5 4326291c9722fbaa476b21c4139a7cdb
BLAKE2b-256 ee20d1d1aff62eda290e521364d34dab2ca364367dee3a4327aa309d98baf80f

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8a97e19bf637a7ebe65c1a518e15f360c1ab74074851aa2d88b65993e9a05d22
MD5 9038ee5efae3eb953d1e74ce99b2682f
BLAKE2b-256 68a1c92fc4d032b55a420e918e656b035603f85bbc8608d1feacb853e10a5435

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp38-abi3-win32.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 496cce08c8e418869649572d0734df0f60bc16c9362e8abcf1339ace4ad090eb
MD5 b193e075a539ceceffff7a9cdfb803ab
BLAKE2b-256 06b2f3d09d07ab2e087d8d05ff87b7372caeeba7f65596b3365e6cefa29d5ab4

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 36c0752d819501f9bd5bcaabc2462574c0511bb72218e972c89d3369e8549449
MD5 133bbc1383f904b6cb1f5190ab1d8492
BLAKE2b-256 12766bc7cf917c3921cd1d6b8a55fba9b155df34a33f1600f8b6be2b4713e709

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 cce72e98263a863f394addc920657b041fd398b3bf88db28794ec098bf7ef209
MD5 aecbdbd9326c2ec1fd34af4d5e253405
BLAKE2b-256 89d16df52a0b4d8316f69600de9c21db626a6477bd32fb0843d48a7c545057af

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 8d9b24f9ae0308c8ffa90fda29d7d470172e5da8819d2769079e8903a0df1f83
MD5 32825d63a033f213db26d92f593449f5
BLAKE2b-256 b1196141c8733e6cf96dea29fa8dddcdb9ccdd640f39f674c82babb2679124f2

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 188c8797771d1b2f9bc582cf7f2477de8c471df35493f35059d4b62993c3a0f0
MD5 ba652834de03ab9dfc6c3ac70320c689
BLAKE2b-256 f0c27048eaf322814348e7e9da34c45fde73ea68af4ff1a38fcb2f7d1e6da2b8

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 e318525713db06fc70fa43f226af5e95476767e624bdb49ebe34d315140818df
MD5 0c0ff4c28e024e05a2456d983f458630
BLAKE2b-256 7b544d4366beca76e0cd16cb5917fc924087d10cf4cfa1772cdc51b27b1b8ebb

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cf650a81b1d9cd062b9926381667fb8fb556a7d97cca4fa7d168f0c102a753b5
MD5 9c6f3b7235d30321fdcc72f61af1d8d9
BLAKE2b-256 6f88ac1f039c6eef03c603ef93dc0a992942683266ab9b367343efa762b2f08b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9c1e9f1c0d5b0ef21fff75cb87222349ed3e9cfc8059f922fa49aedcac71dfd
MD5 8dedff56aaaab67f32a1bf5629f5d607
BLAKE2b-256 74b41ae3ac2a305add87092151c14f99a00db12ad01a112ad83b1b598807d626

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 eeda63bda90d659bd672dcff859298d70ccc21fa206bdcca0035f131e4bd43b6
MD5 82123f7ba613c1f6300b331b34956edd
BLAKE2b-256 7be4191aaffaaf5d3f260f9eee383ca1893f783465977194f27778e9b9eba0d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fc9d5283c043c2d3d77503b0c45b229af6e686df0114c181ad5377d21e44cce2
MD5 720fa813f3831769b04a1e8b424d9e3a
BLAKE2b-256 978bf899c33c07f617a90370ea96a80a07a01c0d4631bed1c80390f537fdd934

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d38829c62f780e15e23d625648496c0e8f48d3a7be0376c3d8b0b93a4e6482c9
MD5 4678e190e132c9bdd5c35b5fbd82949d
BLAKE2b-256 af0448cdb05b4d2a2067777870e2e247723e52a453f47657b37252a1871e256e

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.22rc0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.22rc0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 66f107662db5cd8552d25809047c509b3b532257b05cc590eec45739aa3d7bd9
MD5 45bed6244bd90655b5e1ab953ef1abe4
BLAKE2b-256 4747449e89a143214c3c1a61e780885de38026cb13581764e44c67a00848fc5f

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