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/bptr-manifest", "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/bptr-manifest", "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():
    # 1. Create bptr manifest
    models = [
        truss_transfer.PyModelRepo(
            repo_id="microsoft/DialoGPT-medium",
            revision="main",
            volume_folder="dialogpt",
            runtime_secret_name="hf_access_token"
        )
    ]

    bptr_manifest = truss_transfer.create_basetenpointer_from_models(models)

    # 2. Save manifest
    os.makedirs("/bptr", exist_ok=True)
    with open("/bptr/bptr-manifest", "w") as f:
        f.write(bptr_manifest)

    # 3. Resolve bptr
    resolved_dir = truss_transfer.lazy_data_resolve("/tmp/my-models")

    # 4. Verify files were downloaded
    dialogpt_path = os.path.join(resolved_dir, "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()

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
  3. Run a `Buid and Release truss-transfer" action https://github.com/basetenlabs/truss/actions with "release to pypi = true"
  4. Make x.z.y+1.rc0 as truss pyproject.toml, and server_requirements.txt dependency
  5. Bump 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

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.16rc0.tar.gz (45.2 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.16rc0-cp313-cp313t-musllinux_1_2_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

truss_transfer-0.0.16rc0-cp313-cp313t-musllinux_1_2_i686.whl (2.8 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

truss_transfer-0.0.16rc0-cp313-cp313t-musllinux_1_2_armv7l.whl (2.8 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.16rc0-cp313-cp313t-musllinux_1_2_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

truss_transfer-0.0.16rc0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

truss_transfer-0.0.16rc0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.16rc0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (2.8 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ i686

truss_transfer-0.0.16rc0-cp313-cp313t-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

truss_transfer-0.0.16rc0-cp313-cp313t-macosx_10_12_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

truss_transfer-0.0.16rc0-cp38-abi3-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.8+Windows x86-64

truss_transfer-0.0.16rc0-cp38-abi3-win32.whl (1.9 MB view details)

Uploaded CPython 3.8+Windows x86

truss_transfer-0.0.16rc0-cp38-abi3-musllinux_1_2_x86_64.whl (2.9 MB view details)

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

truss_transfer-0.0.16rc0-cp38-abi3-musllinux_1_2_i686.whl (2.8 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

truss_transfer-0.0.16rc0-cp38-abi3-musllinux_1_2_armv7l.whl (2.8 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

truss_transfer-0.0.16rc0-cp38-abi3-musllinux_1_2_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

truss_transfer-0.0.16rc0-cp38-abi3-manylinux_2_28_armv7l.whl (2.6 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARMv7l

truss_transfer-0.0.16rc0-cp38-abi3-manylinux_2_28_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARM64

truss_transfer-0.0.16rc0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

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

truss_transfer-0.0.16rc0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

truss_transfer-0.0.16rc0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (2.8 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ i686

truss_transfer-0.0.16rc0-cp38-abi3-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

truss_transfer-0.0.16rc0-cp38-abi3-macosx_10_12_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for truss_transfer-0.0.16rc0.tar.gz
Algorithm Hash digest
SHA256 0a42d392d61d2fe4a305f3ba7e750236f9e9ab5500d4958d36d86b308acc6a1d
MD5 37e857753a306b69a1020e33d47c622a
BLAKE2b-256 fbfb5799769172134980de5b754c949b0560677ec69ef209d0e962998de394c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e8af4afe8910652eba0b19d4289a85c55abe92b019e2d3de024e062b7b6f7012
MD5 84b2828f49d579b189f41b40bc82b769
BLAKE2b-256 d51927735286a4199047daf093fcee9f40fdc6620353fb243c44953b014f7fec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1ab43225285ff0aecf0496d3709137616eedde2637d24183b04cad962af7ffc6
MD5 bc790e4dc3192387f1c812366b74edea
BLAKE2b-256 7636e10e5fd02f180fa581039af1121854c978b6ed63cf4ade2904f84fd8ab60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 fbe9c2efee857a1767b2e11ad2c59104fa46a687541ecf74e43527ea01f1c35d
MD5 dc01059864a942612445d9888ad6aeee
BLAKE2b-256 6e9b510fbb32c67ee0a78f8c03c26b2c8bdbe1eb3f6cafac27625bfd9e8fd433

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4662e734d4addfb0426138c3c87e7600c94525e0dab4a9ce6026a47e21eaa764
MD5 e9121c30329c869ec97a58afdb86b8c6
BLAKE2b-256 77986f796e9c651abe3c7da0de7019e938043186a0310af6ad90ecbc6f40abe9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7da22ab06c47138edeb34188c0cb2f87d365d34f7e490f0da09a5a08fb07dc1d
MD5 75bea9d6712bf1af1212e797c02e766d
BLAKE2b-256 0a026d2876885a67409e1bd8eefcb808c09e7f3bff22819553ea1609c1962430

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 6f719bb962693ac08a5422d49f6a98ab8304a9576228ad18e5ba4d397b7c5e20
MD5 4e6ddcf441b6b255dd6b2008bb2412ea
BLAKE2b-256 1777c2efbdb8dd5fe3f831327ead0862848d11459728628af7ec9b36878c3585

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6673ec2772e965c071a51fd34db978a420871afa2c89f5d932d8e9cc240a155c
MD5 78a58ed436feb0f5e62627c2e8da9713
BLAKE2b-256 6df88da0e6158245108b109736bb392d016d293bcfd5f4e81cbd578c93b9dc46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 36f3f9ee0b6400c7fe084bc7930caa8d9a8037d1c33134907d7d3a44e1f87537
MD5 6c4be1e2875c947a9f237c96c1147d9b
BLAKE2b-256 e67388e7c68bc6c3155b6c949d08a9b18f3f06375a7a6d955c6ed28019d29db9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7ad541aaae7684f41562fb8ef58c7c6278f9413c3acec35770a474f859500a39
MD5 92c42a26ca8faad2570ce2d762b5f51c
BLAKE2b-256 6364e8a8ebde937734a9bfbcd479f1824ea7e72b53febcd10b804e907bd99cf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 614634a62dcc2aa0008bf76e4d5bbfc66a471e6fd74e1ed0920aea23613c979f
MD5 6d8a85120633b784b69789a7c811868b
BLAKE2b-256 258cb2e99aae6ca46cb96b989fd62b635b0dfb605bb0701d340150ffdbd7f258

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 2fc1cd2b0fdac67957192ab8059183f13bbaac7658fc4c4c3841bb7a7b5a9a52
MD5 2a6a4fcac9b693490053199a79a49346
BLAKE2b-256 3a8bafa72b70daa669534c37969c6173f733b91773162e57dc63f3097937beaf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f7919c253c1f9c1d188ebeb065588d84ec8fc0e4dad266c9da21e1b573de0843
MD5 b30035048eb59163ac2f098ba41b735c
BLAKE2b-256 b431624889013a3b04a5d7c974eedb06b69f7026bc7a3b78c4256bca75c7bdd0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 04f6d4e40c12ea3a6d5e8858f28f4a890c2824b96430df6e0109d7ac0d57623a
MD5 c0f6fe5e14a6901e1f86404c85fa3322
BLAKE2b-256 4bb854e5cd25e39cc182befa029ef2aa0ccd67b52d31cd5d25d5d2a5e023a899

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 69fafc8c1d67a80b2b35d2d857a38dc50b857ac4dc83492e9b078b3fcccddd5c
MD5 983a4c92e335feec0526149c137bd133
BLAKE2b-256 6048e976d54ade961a41e78b42cf2e4403c6cce001d37dc29a3dc01ca42bdb91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 76836a888f9ab3f5b5ddea0686b5e1aa8af25115ada19d8b2d9caa17601de53f
MD5 328ce034622d5192b9368377528e8c5b
BLAKE2b-256 e67b56136a51fc252f4b10f3cafda4a1151a1d22e824f2f9a60d22719e5d2457

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 ea35c3be210a152238fbf391a8a2b0471e93614bba6895d9b695868fd309abb8
MD5 4fe5a9c481cb7d3eaffc9bb77bbd8c4d
BLAKE2b-256 3dc3c448a9574391f70c5b5bb510f0ef1b54dde93ca8b1a1abe44fc6cc82ab85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 95d9f5432a907c8bb40f88e345b256c677b734ee9f0e7dbd7756da3347f716cf
MD5 e87a3878d1edd2bb2a4e57f09ff8115b
BLAKE2b-256 545e495c88a4c3c723a5a26e2d3e381a3d700377195e1b57b949045286cf679f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e5edf999f26a18e97cf74d3592e241878f2ccea2001c6adc29492eb3330f40a
MD5 17321d0a54d5d3a6a727e398b090d5ff
BLAKE2b-256 a0171425477e41fa288b9e3ab723cfadc929979516670b8828778674f0d7a0a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f30de451592f8870d5a6dc437ae4704eb87859f189e927d38e9cf8a9ecf08bc3
MD5 965b93b9c298f681d4d9db60971bb3b5
BLAKE2b-256 07b49e0361485ac629be2a8cf9243efa210089415b76ff1c9c5e66664068c6de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d7a50a184def119f11e7e2112cbb2698acf921e286250332bf1543c97886afc4
MD5 23d0a3b0651c5bd29fcba9a089c6494a
BLAKE2b-256 34befa216763cdec931333d0389e8a9024ec69b7b77c5c2950ca938654697ab8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8009961891245b3cf773952f075d50dd930630b4d3d5f978c3c14444c3681858
MD5 55ac6f1ab208c35b4c769d2f7f286810
BLAKE2b-256 45c5871ce6a0c879ff4f6595c8487b1226f8d23713e080257c2fc7d8b66c726a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for truss_transfer-0.0.16rc0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5136e607a476a9d082a07465f96b041f9fbb597f3773dc9e7a555aa71d490950
MD5 201bc649a6466c5cdc888108081a7e06
BLAKE2b-256 8edfd7dff089cc48a575f37cb36c30f3c04f3404c89683148cfc7ad4bc914f0d

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