ax_utils - High-Performance Python Utilities
A standalone Python package providing high-performance utilities with C/C++ extensions, converted from the original ax.utils namespace package.
Author: Stephan Bentheimer
Features
- AXQueue: High-performance thread-safe queue implementation with C++ backend
- AXTree: Fast tree data structure with C extensions for efficient nested data manipulation
- Simple Deepcopy: Optimized deep copy implementation
- Props to Tree: Convert flat property notation to nested tree structures
- Unicode Utils: Fast Unicode processing utilities
- Gevent Integration: Seamless integration with gevent for async applications
Installation
pip install axiros-utils
The package includes C/C++ extensions that will be compiled during installation, providing significant performance improvements over pure Python implementations.
Troubleshoot Installation
Problem: Compile fail on darwin.
[stderr]
ax_utils/ax_queue/_ax_queue.cpp:4:10: fatal error: 'exception' file
not found
4 | #include <exception>
| ^~~
1 error generated.
error: command '/usr/bin/clang++' failed with exit code 1
With Python 3.11.13 (main, Jun 3 2025, 18:38:25) [Clang 17.0.0 (clang-1700.0.13.3)] on darwin
Solution: Refresh your compiler tools. E.g. xcode-select --install.
The tests contain a few tests on osx.
Quick Start
from ax_utils.ax_queue import AXQueue
from ax_utils.ax_tree import AXTree
from ax_utils.simple_deepcopy import deepcopy
from ax_utils.props_to_tree import props_to_tree
# High-performance queue
queue = AXQueue()
queue.put("hello")
print(queue.get()) # "hello"
# Tree data structure with dot notation
tree = AXTree()
tree['user.profile.name'] = 'John'
print(tree['user']['profile']['name']) # 'John'
# Fast deep copy
data = {'complex': [1, 2, {'nested': 'value'}]}
copied = deepcopy(data)
# Convert flat properties to tree
props = {'app.database.host': 'localhost', 'app.database.port': 5432}
tree_data = props_to_tree(props)
Performance
All core operations are implemented in C/C++ for maximum performance:
- AXQueue: C++ implementation with std::mutex for thread safety
- AXTree: C implementation for fast tree operations
- Unicode processing: C implementations for encoding/decoding operations
- Deep copy: Optimized C implementation
Compatibility
- Python 3.9+
- Linux and macOS
- Automatic compilation during pip install
Migration from ax.utils
If you're migrating from the original ax.utils namespace package:
# Old imports
from ax.utils.ax_queue import AXQueue
from ax.utils.ax_tree import AXTree
# New imports
from ax_utils.ax_queue import AXQueue
from ax_utils.ax_tree import AXTree
Development
The package uses modern Python packaging with pyproject.toml and supports development installation:
# Clone and install in development mode
git clone <repository>
cd ax_utils
pip install -e .
License
BSD-3-Clause license (incl. Axiros attribution obligation).
Metadata
Release files for axiros-utils 3.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| axiros_utils-3.1.0.tar.gz | 34.3 kB | Without provenance | Details for axiros_utils-3.1.0.tar.gz |
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| axiros_utils-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.17+ x86-64 | Details for axiros_utils-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
| axiros_utils-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.17+ ARM64 | Details for axiros_utils-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
| axiros_utils-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.17+ x86-64 | Details for axiros_utils-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
| axiros_utils-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.17+ ARM64 | Details for axiros_utils-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
Total release size: 813.6 kB
Release files / axiros_utils-3.1.0.tar.gz
| Download URL | axiros_utils-3.1.0.tar.gz |
|---|---|
| Size | 34.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4f6fa11251d55ef614fe508fdede0a0480606a1fb63b2664470865185d0c56fa
|
|
BLAKE2b-256 checksum How to use checksums |
db001c45393534264659a7e8f9a82f360fd4e68ae9d5ea871b30a5c222cbbe4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / axiros_utils-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | axiros_utils-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 195.3 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
ff191e0dd17faa3adcce7988337d47f009d5593ae00e1d74a99f6539212608ae
|
|
BLAKE2b-256 checksum How to use checksums |
c1989d2d23b64549829cc8ad5641a84b7e40f065066b7616e59d53792da88d35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / axiros_utils-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | axiros_utils-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 197.7 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
7c3da24113ba681a2919df9904085d49c0c9fb8d047076097b2cce73475029c5
|
|
BLAKE2b-256 checksum How to use checksums |
23ec039a7adea062f64745d2a5aec03c00db82ae7cd910dd620f42ab331c4b1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / axiros_utils-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | axiros_utils-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 191.5 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
74903e1886e0bd16bad942dcb2946d71d97fa6edfc079dee3cc9c5c099a9a2c1
|
|
BLAKE2b-256 checksum How to use checksums |
048ee5ccaa63f4a6232f69b0da5153a7df420da0ab1294b07830832f28987340
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / axiros_utils-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | axiros_utils-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 194.6 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
d483c757e44fd779a6e844f8a716ebd9c5e737230512a4e2870751a0ad651a32
|
|
BLAKE2b-256 checksum How to use checksums |
0d4003246a60dafb8d0183ae442d3342320d9e4d0cf410e7c4e668ba63d6956b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for axiros-utils 3.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.