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.2rc7.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.2rc7-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.2rc7-cp314-cp314-win_amd64.whl (183.0 kB view details)

Uploaded CPython 3.14Windows x86-64

blart_py-0.1.2rc7-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.2rc7-cp314-cp314-macosx_11_0_arm64.whl (292.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

blart_py-0.1.2rc7-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.2rc7-cp313-cp313-macosx_11_0_arm64.whl (294.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

blart_py-0.1.2rc7-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.2rc7-cp312-cp312-macosx_11_0_arm64.whl (294.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

blart_py-0.1.2rc7-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (585.6 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.2rc7-cp310-cp310-win_amd64.whl (183.9 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

blart_py-0.1.2rc7-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.2rc7.tar.gz.

File metadata

  • Download URL: blart_py-0.1.2rc7.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.2rc7.tar.gz
Algorithm Hash digest
SHA256 a65a800e41ed30e0d82359d4928996fd64e6a395f280dc1347cafa74307a7f00
MD5 948d7968fa62af5f1c108fc97daa0862
BLAKE2b-256 73729933e2c10914f19c5880d04d2080aa6aa1d1cb67b31924b4e7dac90f92df

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7.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.2rc7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9c8d8a8e83a8afee111613573bdd0f2cb06eb8a1ce649b6390170e2a53b8d070
MD5 f55040791430c67e4ebb3e1dd6d5994d
BLAKE2b-256 e01fcec6c34e6ef99e23362d03cee1b73f04e9b6c0279e98f3956c183bba5bba

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2rc7-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 183.0 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.2rc7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c26cd4099d5b896f6c298ec9a50daff90093e8b9bf09722921f630bfa740d889
MD5 4790b5de2db520d0e2120ee1e34e135d
BLAKE2b-256 0ce33b11625c3e34f6033949644c423b913ac1d00225a5d02445a6f5d89cd094

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fc8310c67ac428047c333e2db664ec346a0bffc2e9e34e821ded686aaf02d65a
MD5 3ecf7f320b6c8a01b7f68106b767a6c1
BLAKE2b-256 635e6aad5925f437894e264bd39a81bfc6d809c6fe4c75785eeca7dc4cdb8265

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d78170feaee11f27b845d2a66afc341ca3bdd366d5ca8f78c2ba06797ceb8b4c
MD5 af51e8fc4fc096a2f145fc38faf173bb
BLAKE2b-256 5f5799d1c62dbebd57a735674059174d8d36bb32b5c17fbd84be04b5808bc753

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2rc7-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.2rc7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b3a07fba4b3b882e682ce4eb4a08eeaeaba3e5a9c3d8cfa6633343d03e0313d6
MD5 e5c0a430a59ddc18477d5fcaa606a0af
BLAKE2b-256 b398c8eeb679374cc286d247fb8ea77ab50f4cd6df30077096347bc68fd30285

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 510afce0b4426851ed40a2222c47af10a0b9228829f8b53dfa14117b504f9ca7
MD5 f45c36be8a12838409c1c35b5eebc0d9
BLAKE2b-256 0eb0c8bafbcb49463e8db03fc202ef6b75a8994b0606275e9796aab7e4443a05

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b89ecd8406108517b04176337a9047cfdbc18555e52cc00918eb3ae75c3d6ab6
MD5 8fa4bcdcc9ff8edeaa72ff5aba678834
BLAKE2b-256 5531bafab24f779d303a6f3864114de016276504d9d556a6dc77c795dfe42e5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2rc7-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.2rc7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d635bf7f3b0a048611be6903f9c8052f5ce55f347b3fd96d453e2eadce4c63db
MD5 02b86168107277b4d6f5de2475238162
BLAKE2b-256 d55c91e1ec44dde00644fa4f0bf149bae5f16314cc4727eff5d3f53f8eae8d0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef34c0c60190fc09e10904fedc39bd69cf2e8fb48a55866cbfc87ace2e0e454a
MD5 c48efd050105cd3d4b23486fe9dcfd4e
BLAKE2b-256 9fbda3e7b0b87420cb3262d2115be429181ec92d3ceb7acb6d06b2ae7fd21b51

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90e519e1c509568df837aa583c0928013737de008eaf9a716a49d6e6fe0383d0
MD5 688442d78760af7f7930584002fef65f
BLAKE2b-256 3afdde32e659a812a699dd626777efceba6922ad87e51136092c14281e64b9ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2rc7-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.2rc7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5f0a97b88cb1c6f2a272f3bf7b22b513ca79217e8130be97e473ffec3823ef90
MD5 3ad058bf5f64ffeb3cc259d278433407
BLAKE2b-256 2fedf1fd831d8fea3297aacf3349ad85bda58c34ca12810790f27e7057b02770

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 98254ef81e6d1920ae3693317469ccdb81486076e1cb668e9ce7403191e1dd87
MD5 c75db2f38fc034c002c69f6b54ae35d6
BLAKE2b-256 b147051ad727e157e55637a0b8a980aaaafbf6db9b82a0dde661febd7a44f0f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f2eb4f13425991fddf3e0e20672c07865706f5ff8f9d6f32ed0cc4639a7d714
MD5 853dce14fd83132d0397c2c9f9ceb6da
BLAKE2b-256 7f3a09b6b485da0504f1234cbda2d133f646456510a55bbbecc1fe71a223ce61

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-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.2rc7-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 4c29b38a81d2381b1c88a39bb449ee277da70d14c8713bd57cf5228b297e1f6e
MD5 4b454b58f2fa84f630b400ee2a56a13b
BLAKE2b-256 b5848515bc5a87641cc545c08367bab4f2b5230045a5a0e4702609dd5ee169e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2rc7-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.2rc7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3d2929651a7e5a0239c57a422c48addf359fb704d54985078027cc45ae7c54f3
MD5 7a5e5ea26bd77bb4f1e19196595bdbf5
BLAKE2b-256 789ac8fe2bf7fa4d3913df74a454af5d84a64c9128fb9874c0d064503ecbb9e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e9b7e653d471a0537cfdad4de120f82c1545abd3cb8b6c7c3f6dbcb8c00685c1
MD5 e06a68a94f643681a57e38d07fffc596
BLAKE2b-256 53d6d9c2f3c3d1b26bde66eed515448e9fd8ea5986fd59e8b0c3ec0d4a9c44c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: blart_py-0.1.2rc7-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 185.3 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.2rc7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 18588591dff10878183708fcf9f1a36cc1b117ee2ebfef3a65755ecd800132ed
MD5 02a4b357a57eaac17275835c9b98b672
BLAKE2b-256 238655f74e121fb1f04f3cd39cd1a23b92c851db2ac3c66db1947f75d96d02e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 714c63bf0f624b61e6a89e66f30b328a4a15a46427d58c19d2fa7f90cd44106a
MD5 84129f97890457a15c53dc6f56887f4f
BLAKE2b-256 e47879a1b2ac5322f5cebb2c098c1865e76a6ecab9bacd258687a44420200282

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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.2rc7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blart_py-0.1.2rc7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f02b87c1e8cc9c6a2a8aa05cb0d0953bc27f50adb4564c860d397e0d6a9b8c06
MD5 1a25d4062866b446ed983c941716bd4d
BLAKE2b-256 f6a9479e540b0814988e07a5d092a85df8d18844c69ccc15fcee4c63705f4fb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for blart_py-0.1.2rc7-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