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

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13tmacOS 11.0+ ARM64

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

Uploaded CPython 3.8+Windows x86-64

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

Uploaded CPython 3.8+Windows x86

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

Uploaded CPython 3.8+macOS 11.0+ ARM64

truss_transfer-0.0.31rc1-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.31rc1.tar.gz.

File metadata

  • Download URL: truss_transfer-0.0.31rc1.tar.gz
  • Upload date:
  • Size: 66.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for truss_transfer-0.0.31rc1.tar.gz
Algorithm Hash digest
SHA256 2020235ed08facf572ebe798ee0b8764264d21bb948831ac13014ba5c11826d5
MD5 99716f3fa091f5e6be0ab5529dc233b5
BLAKE2b-256 6375723765fc44603fb59d41448415a1e7001ede8c21eb2b3379d2ef2d853192

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 655180dc12c4b0e7007abe6c0f3bc6c6094c3f616916a0a410f6b96a0d925312
MD5 bc2382e28e4c5d1205640803f0720694
BLAKE2b-256 a0bc1ca4f64bc80c5e87fc7cbb02df538c7c6bdcd7321c6215dccae34494fe73

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 01c61b769cb28e9385953c602c682d14b1f5e3efafcd51317574956c6c1ce749
MD5 49602fe0e619ee57c2e35a7547a87b72
BLAKE2b-256 50a29804172fbe5aa5a791ea27fbb61eadb23868fb3a608e7be3793c8692ebd4

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 e661fa22b5c862ca7ac51f934af37516cc7a12fe3a045f6ca0a87add47d5796b
MD5 6d6c8546e0db8bed4a79941317497756
BLAKE2b-256 bbe4b736d0e2c774798152eed65c1e5b69fd6b33b6271d3f89c33a0322efa1dc

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e10906b79d2533c063d85a116052f9953d8341928dc17817958d6da363b20d37
MD5 0552ec616cc9ffdf2fa054c305b34745
BLAKE2b-256 9ba7537fde6de7bbe1d0e89975393519e1ce041081ec4c7a41996c707b3c2d23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 47437ab89b424125c090f7c07521e761730c519de866a7bb8602521cebf1c48e
MD5 527874e88cc83b22485d9e51d68b8e46
BLAKE2b-256 22b9e8aa9a3f00c6c16fdd0b9331606f83058a0298abedb70cd9536a6ae3c34d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b9aae3505e61838a8156b52d25f0c0e518d4302946e593c38592282153e6b996
MD5 94fc29d73faddcf264b9eb6cf1f5e974
BLAKE2b-256 18e17d1c8ad2c6124356de78e66a4be892ed99a9184fdaba37e6ee8ca74fab9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1042c230a0ee31989967c966b5fcec7361e14d25bbfedf26684bc3a83999eb78
MD5 281cdce29767c749d05a9da6fb187380
BLAKE2b-256 457e79e36257cb50e31908a06f973c1705c793aed7ed4281c3ecae9997c28fbe

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22ee55c0446e73ea32e1e60d06ef0ed1b762c7d5c0ea49de31a36a31cca8088b
MD5 de9097bd02f1051a16ecffe547eaabc6
BLAKE2b-256 b667c4004024825fc61232b8a932e670503dbc7203f573b32b90ed139addb910

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp313-cp313t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ee31448bac3f30f5f79f126a46d06336f15359d75f82e9ee8f949d962566bce9
MD5 e3bc7a1db3e26097ca482397da01c8e0
BLAKE2b-256 9ffee0921e7722a62366dd7463979b2bc02f5bba7404ec10a4bdb64b9d527b36

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4ec87ee6034b7477b562af4b30ecd2a4d24efff5f9748d14d33f4a56be2ed553
MD5 838f11bcae37beaba9543f979d371c60
BLAKE2b-256 118a9a9af4dd03d60eabcc8a29170e8e17b5388faea20455a720db9fad2001f4

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp38-abi3-win32.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 a5d0a4b2235834c56feb40c8c242d4404e1af313df257850d2c43e2f4cdcef5e
MD5 c668bac18622affc8b505cce82b045e0
BLAKE2b-256 8d5e9cdfd214e107c6f42a9b833d02223f234f828dea1c5e4560fc44a9407e18

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 86dad8f38bb24b4c3a98f441b76d270e1b941174e8f55cdda4bf01309f977db3
MD5 72f0404310093e25ea5506691eec3d00
BLAKE2b-256 a513f6a6beadaf0b3c1cf4ef01249c94085493c8451b44a70e4f6813b39a6892

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp38-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d717846d5b0040388302b910bb54e62476e94bfd1a2015db298feccb5f5307c7
MD5 690f7b105b2a313ec7eab6425f735710
BLAKE2b-256 0ac171f9e8a623647c85147f3d085678d0be11da10cfe95884ef3bf52fe4a188

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp38-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 8c6c82f1fcb0ca9dc1992e1935e11b1b7ff0e808e433f8ab4ee90bd866997cbe
MD5 a911f2aca5396d516dce1c10c891fdc8
BLAKE2b-256 afcd080590938bbf8d1bbc139846e7070e9d66689ae7cb4a264207e37e938672

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b230fa73d809cea0fa90e42b2152e267d53c0e28a2ce188a6ae656a1bb05d65e
MD5 58d4dfbe0d140344e7ce264694cdb455
BLAKE2b-256 f6e410185da3686086742c7b1c2aa04d70d41e4665bc947686cf0e5dd572e02f

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp38-abi3-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 fbe1ab09b15b13e6242ce024ab284538406672d471295c19f20d89b778c2ff34
MD5 a866c5aa1a1be498c90c966d61a53e29
BLAKE2b-256 c1136c59ffad6bdba43a5d091071e41a7a998641ebe61fa30554e89773f3fa70

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp38-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a006751c7f3c7429dbbb5440348bf3b7dfec1d27954a1e3f8cc445c0cb578e99
MD5 cc8194bc0fbd2c9fb80b0813417037b5
BLAKE2b-256 4ea39e882092d622875164e48d57873a84db8dd2f2082709ef3d69fb466c1861

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4eb7e44d661856e88c84414a844ac1a9168ec46a970c77397b928dd2651f86e8
MD5 197bd92001f21cfea32b47011610879c
BLAKE2b-256 cb860aa85ebd74a8286b80e71939dfcb33be6aea03ff327fd6b5251b929faf2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 3337e7ca3e6fe9e83e6d2a28c2ab2f8beed4f09408ad8f0d25e9704b48e244f8
MD5 0fe72a3eda68f40df0a93c1db37f5550
BLAKE2b-256 adee7328095db5ca333bfe44c57041f8c2940fe7046eb7289af2d06d1d1d2b25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 17f724d2e3001b92bf95f1b44936cd10f29b75b0829a1c20b24bfcfab9e9274d
MD5 d8ab4a54b78f8e7ffbcea8b65c1d9a85
BLAKE2b-256 c6129114d59498ef302d6fdb8155bc81f3b58c3a90e9cd72abfe0e36a2b096ce

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a473c9fc1055a449700e15c9c16f40a1f426ab90096fd760c53424865f363808
MD5 1369aef93a1e761bf9215569aae7347d
BLAKE2b-256 929b23c0df5d3727f1f2c47a8a9bf7a4b07bd27dfff8210c48da55104f7828da

See more details on using hashes here.

File details

Details for the file truss_transfer-0.0.31rc1-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for truss_transfer-0.0.31rc1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f7683640244d1b0d1545cc25753374aa8674ce3822a0f60ade01e54cb4feaf9e
MD5 4b4d4e10bd62773982415f32e7f58396
BLAKE2b-256 cf4457e6c4f26a032aa7065c97bfe4ef25137e3d578d135b884dc6f9267c3bf0

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