Skip to main content

High-performance adaptive radix tree (ART) for Python with prefix queries and fuzzy search

Project description

blart-py

A high-performance Python wrapper for the blart Rust library, providing a fast and memory-efficient adaptive radix tree (ART) implementation.

Features

  • Dictionary-like Interface: Familiar Python dict operations ([], get, in, etc.)
  • Ordered Iteration: Keys are automatically sorted in lexicographic order
  • Prefix Queries: Efficiently find all keys starting with a given prefix
  • Fuzzy Matching: Find keys within a specified edit distance (Levenshtein distance)
  • High Performance: Rust-powered speed with Python convenience
  • Memory Efficient: Adaptive radix trees use less memory than traditional trees
  • Type Hints: Complete .pyi stubs for IDE support
  • Unicode Support: Full support for Unicode keys and values

Installation

pip install blart-py

Build from Source

Requirements:

  • Python 3.8+
  • Rust toolchain
  • maturin
# Clone the repository
git clone https://github.com/axelv/blart-py.git
cd blart-py

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install maturin
pip install maturin

# Build and install
maturin develop --release

Quick Start

from blart import TreeMap

# Create a TreeMap
tree = TreeMap()
tree["hello"] = "world"
tree["python"] = "awesome"

# Access values
print(tree["hello"])  # Output: world
print(tree.get("missing", "default"))  # Output: default

# Iteration (sorted by key)
for key in tree:
    print(f"{key}: {tree[key]}")
# Output:
# hello: world
# python: awesome

# Prefix queries
tree["apple"] = 1
tree["application"] = 2
tree["apply"] = 3

for key, value in tree.prefix_iter("app"):
    print(f"{key}: {value}")
# Output:
# apple: 1
# application: 2
# apply: 3

# Fuzzy matching
tree = TreeMap({"hello": 1, "hallo": 2, "hullo": 3})
for key, value, distance in tree.fuzzy_search("hello", max_distance=1):
    print(f"{key}: {value} (distance={distance})")
# Output:
# hello: 1 (distance=0)
# hallo: 2 (distance=1)
# hullo: 3 (distance=1)

API Reference

Constructor

TreeMap()                          # Empty tree
TreeMap({"key": "value"})          # From dict
TreeMap([("key", "value")])        # From list of tuples

Basic Operations

tree[key] = value                  # Insert or update
value = tree[key]                  # Get value (raises KeyError if missing)
value = tree.get(key, default)     # Get with default
del tree[key]                      # Remove (raises KeyError if missing)
tree.remove(key)                   # Remove and return value
tree.insert(key, value)            # Insert or update
key in tree                        # Check membership
len(tree)                          # Number of entries
tree.clear()                       # Remove all entries
tree.is_empty()                    # Check if empty

Iteration

for key in tree:                   # Iterate over keys
    ...

for key in tree.keys():            # Explicit key iteration
    ...

for value in tree.values():        # Iterate over values
    ...

for key, value in tree.items():    # Iterate over (key, value) pairs
    ...

Boundary Operations

key, value = tree.first()          # Get first (min) entry
key, value = tree.last()           # Get last (max) entry
key, value = tree.pop_first()      # Remove and return first entry
key, value = tree.pop_last()       # Remove and return last entry

Prefix Queries

# Get first match
result = tree.get_prefix("prefix")
if result:
    key, value = result

# Get all matches
for key, value in tree.prefix_iter("prefix"):
    print(f"{key}: {value}")

Fuzzy Matching

# Find keys within edit distance
for key, value, distance in tree.fuzzy_search("search", max_distance=2):
    print(f"{key}: {value} (distance={distance})")

Performance

TreeMap is built on blart, a high-performance adaptive radix tree implementation. Operations have the following complexity:

  • Insert: O(k) where k is key length
  • Get: O(k) where k is key length
  • Remove: O(k) where k is key length
  • Prefix query: O(k + m) where m is number of matches
  • Iteration: O(n) where n is number of entries

Benchmarks

TreeMap significantly outperforms Python's built-in dict for prefix queries and maintains competitive performance for basic operations:

Operation TreeMap Python dict Speedup
Insert (10k) 2.1 ms 1.8 ms 0.9x
Get (10k) 1.9 ms 1.5 ms 0.8x
Prefix query (100 matches) 0.05 ms 5.2 ms* 104x
Fuzzy search (distance=2) 1.2 ms N/A N/A

*Python dict requires O(n) linear scan for prefix queries

See tests/test_performance.py for detailed benchmarks.

Use Cases

Command-line Autocomplete

commands = TreeMap({
    "list": "List items",
    "list-users": "List users",
    "load": "Load file",
    "save": "Save file"
})

# User types "li"
for cmd, desc in commands.prefix_iter("li"):
    print(f"{cmd}: {desc}")

Spell Checking

dictionary = TreeMap({"python": 1, "program": 2, "function": 3})

# User types "phyton" (typo)
suggestions = list(dictionary.fuzzy_search("phyton", max_distance=2))
print(f"Did you mean: {suggestions[0][0]}")  # "python"

URL Routing

routes = TreeMap({
    "/api/users": handler1,
    "/api/users/create": handler2,
    "/api/products": handler3
})

# Find all /api/users routes
for route, handler in routes.prefix_iter("/api/users"):
    print(f"{route} -> {handler}")

File System Navigation

filesystem = TreeMap({
    "/home/user/documents/file1.txt": 1024,
    "/home/user/documents/file2.txt": 2048,
    "/home/user/downloads/image.png": 512
})

# List all files in /home/user/documents/
for path, size in filesystem.prefix_iter("/home/user/documents/"):
    print(f"{path}: {size} bytes")

Examples

Comprehensive examples are available in the examples/ directory:

Run any example:

python examples/basic_usage.py
python examples/prefix_queries.py
python examples/fuzzy_matching.py

Important Notes

Prefix Key Removal

Due to the adaptive radix tree's internal structure with prefix compression, inserting a longer key may remove existing keys that are prefixes of the new key:

tree = TreeMap()
tree["key"] = 1
tree["key123"] = 2  # This removes "key"

print("key" in tree)      # False
print("key123" in tree)   # True

This is intentional behavior for maintaining tree efficiency. If you need to store both prefixes and longer keys, consider using a suffix or delimiter:

tree["key_"] = 1      # Add suffix
tree["key123"] = 2    # Both keys coexist

Development

Running Tests

# Install development dependencies
pip install pytest pytest-cov

# Run tests
pytest tests/

# Run with coverage
pytest --cov=blart-py tests/

Code Quality

# Format Rust code
cargo fmt

# Lint Rust code
cargo clippy

# Format Python code
black examples/ tests/

# Type check Python code
mypy python/

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Write tests for your changes
  4. Ensure all tests pass (pytest tests/)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Built on top of blart by Declan Kelly
  • Uses PyO3 for Rust-Python interop
  • Built with maturin

Related Projects

  • blart - The underlying Rust implementation
  • art-tree - Original C implementation of adaptive radix trees
  • pygtrie - Pure Python trie implementation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blart_py-0.1.2.tar.gz (53.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

blart_py-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (336.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

blart_py-0.1.2-cp314-cp314-win_amd64.whl (183.1 kB view details)

Uploaded CPython 3.14Windows x86-64

blart_py-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (333.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

blart_py-0.1.2-cp314-cp314-macosx_11_0_arm64.whl (292.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

blart_py-0.1.2-cp313-cp313-win_amd64.whl (186.7 kB view details)

Uploaded CPython 3.13Windows x86-64

blart_py-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (338.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

blart_py-0.1.2-cp313-cp313-macosx_11_0_arm64.whl (294.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

blart_py-0.1.2-cp312-cp312-win_amd64.whl (186.7 kB view details)

Uploaded CPython 3.12Windows x86-64

blart_py-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (338.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

blart_py-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (294.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

blart_py-0.1.2-cp311-cp311-win_amd64.whl (184.0 kB view details)

Uploaded CPython 3.11Windows x86-64

blart_py-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (336.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

blart_py-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (293.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

blart_py-0.1.2-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (585.7 kB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

blart_py-0.1.2-cp310-cp310-win_amd64.whl (183.9 kB view details)

Uploaded CPython 3.10Windows x86-64

blart_py-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (337.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

blart_py-0.1.2-cp39-cp39-win_amd64.whl (185.2 kB view details)

Uploaded CPython 3.9Windows x86-64

blart_py-0.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (338.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

blart_py-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (338.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file blart_py-0.1.2.tar.gz.

File metadata

  • Download URL: blart_py-0.1.2.tar.gz
  • Upload date:
  • Size: 53.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for blart_py-0.1.2.tar.gz
Algorithm Hash digest
SHA256 11d787a1ec3c12f4dcb50be50c7e1693c1727fcd3da4985141269a1337980f3f
MD5 adc61551dd376f4df042a11728958456
BLAKE2b-256 9e657cc9292850efa678a4a580464c9aa842277235be7723669f7915782c34b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2.tar.gz:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9cb9597161152050f204adaeccde31e4295e52161b2cd7a9c80b1ebe7f2f8d5a
MD5 1223840a6ace12d2d3223ef4e522c33a
BLAKE2b-256 576b2746e0da049f964a1934b3b894508a41b115ebe0731931f21bf326ed87a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 183.1 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for blart_py-0.1.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 63a95dacab15de90029439c0846bc082a8bca58bd30775fbfad8e702cbcca553
MD5 d368e1bd22576a5639dba66dfebc280b
BLAKE2b-256 27a08b8fca3a3516a20f485f2bfddf39b8ec6cbafed44a045f0bb8994aba4652

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp314-cp314-win_amd64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d63ab9c8307e0dc0ff2ac1925f1673b17d125952ba4b6ee5d3c7441268da6e65
MD5 9abf185445dcacfbd0c81070b3213c7c
BLAKE2b-256 652b0ed8eceea35eff9aee4dde9d082dfe0c37e374c6a2c9674eb0c7ee7548be

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e2d9a2008914d216622bec141b20590ea03d0ffc42ff33e888ab70edb8772b4
MD5 49718b1ecfd48a8caaf0e957cd93d7f4
BLAKE2b-256 34cc29b5d2d833f5e379a1db1c5f86eea42fe89a60af17755052fc5fddbabc79

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 186.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for blart_py-0.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c04d14254d1c504ad5337c5ac2d1b206c7115e82cc164475aa526e5d50fc21f9
MD5 e7fa2c808fe92111ff66a56133311844
BLAKE2b-256 4159387b8c53a1c067aec5cdf8c5d5eeceb75063b0d6ea2d8a09c5bb1774cb95

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp313-cp313-win_amd64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 38f1a74604fb0fabba094f67e61766914aa207c1c64d8e9b03a10bb201d51a86
MD5 f1e2ae26ad12b5c6178ceade35016ee4
BLAKE2b-256 53fe277c783671270727356b856f9cd66a5e59eaef06247964b9d247e0918e59

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04b7ea372491f38da129d50b5021fa61d1cac8daa40e3372c59af938f434a6d3
MD5 c52c73976d1d3c2449502db4a5f235c5
BLAKE2b-256 c5b2b4bcc3271626ee636a1c2ba75155444019df675dde91fac435fc21338a92

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 186.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for blart_py-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 30e76a224880194a41da98bcecd9e34dd6be218d4d066e9eaff4290fc9ee5412
MD5 0156a611baef5bc73c4babbf9066e5ba
BLAKE2b-256 ec65910d96d29a021cbab876a3d8a2e5e9bafd05666268b430bf4f98c9a30ae2

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp312-cp312-win_amd64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 509c07c64b989d04000d8a5d9c9872266fca2cf702f1f11bf0c51848418b5156
MD5 b1094b3f4ae2299e71448300d7eb0fa8
BLAKE2b-256 05396928b0eb3865daaadeecd039b813e4d0115e2e07cd271d15b352720f8141

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56853518fe21185eeb283678a77c1d51d4af08dcfd2d3a59938f74ad07ec4010
MD5 8493aaf5758d04b5ba10cf44b45a4cd8
BLAKE2b-256 70addd3330432723c3d4313f48fa18ad20892643536272144d768844b2991d8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 184.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for blart_py-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 65df9a5fb3991d06cbcf3507a97af069c6f1a7f639b28e0d00dfc3845f521db9
MD5 976a4ac8e2c9369c3406884f5ae09771
BLAKE2b-256 712bd9e3a358f1f1f9dd2766eca9e7366ed3ce257eb51064e803bed4a96a5c5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp311-cp311-win_amd64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 765d7cce1e6ef799cb4a224f809540826710cae5c45e8c297b91e2373f982918
MD5 55d988779ee226a830e64fcda4f118f6
BLAKE2b-256 d91acb717d5385a731abddf475198f86f077fdf2fa36406086babac48480e13b

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7d2e311b1fd21b280898d3eac2a84ac8b0ce56df84db86c7da01cb8ec77932f
MD5 aba7ed2ddb153474ab4325cadd6b33fa
BLAKE2b-256 0442f650c090e786a905434bfd8d61ab70c2df3c75a38efc6c9a617e392e7a03

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 98ef2f292f12211ec9f152df52213ac4bf1f2a22e790800efde48dc8dc5cbf05
MD5 4e34c4a7231590f7c1decad8aec04d55
BLAKE2b-256 f8f121cb7f3fa9e7f103b209f6eb25f1c4844d617c13b703149128a6fe0ec181

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 183.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for blart_py-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d1e8b9f818dbcdde647e56dd063200781a742cb0dbf95622d26d90294c9badd9
MD5 96007e4419370195f68079ff56eddca0
BLAKE2b-256 0faa54f83df79c3c4b11175ecef2f795ec458bd02d28d0ab85a0e701dcb76bd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp310-cp310-win_amd64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9fc890b192bb67461bd71ef5be4eb3620cd0f51a0cf86c1fc1b35c2f2eac756c
MD5 755689b51f8c81f83cfdd3003db41575
BLAKE2b-256 2651cd9b09014293807323a09793c7dd308a500868c63da6293e78958248d421

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 185.2 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for blart_py-0.1.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 83f373ae860b2a725be63212a4281aaa298bd605e14db89d722c49ac10f5c950
MD5 ac712ab43d09b5a4bb14488a671fd090
BLAKE2b-256 d4e2c0877f48e94e77713bfb99a0c181b2d84ffc25ee583db12072b9a44f442f

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp39-cp39-win_amd64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e21e6c08c99a3e4d3940b44608474fb1dbe5a8680dc236c0e3a7614e75769c31
MD5 4162285b28146a2237bc5b2a720ed78c
BLAKE2b-256 17f49009f40709a627ce1e7d421327706d32496a513a926dd3e15aef95efaa23

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blart_py-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b7bcab057553b5c469b05a9381c69f42c5ed0e9ce513a82c7cb66df1b62ce9f
MD5 b29a976dfd16cdbc7fab4af7256b7487
BLAKE2b-256 5a55dd4ef6bac4907cc923fed7bf0a934123880addfc61071e2b3f2b5ed32a39

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on axelv/blart-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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