lazyops: Lazy Operations Toolkit (lzl / lzo)
A Python library providing a collection of utility modules (lzl) and object registry patterns (lzo) for building robust applications.
⚠️ Project Status: Under Active Refactoring
This library is currently undergoing a major refactoring (targeting version v0.3.x and above).
The core functionality is being migrated from the older lazyops namespace (versions v0.2.x and below) into two distinct, more focused namespaces:
lzl(Lazy Libraries/Utilities): Contains foundational utilities, asynchronous helpers, common API client interfaces, I/O operations, logging, type definitions, and more.lzo(Lazy Objects/Registry): Provides object registry patterns, state management, settings configuration, and related functionalities.
Expect potential API changes and improvements during this transition. The previous v0.2.x implementation is available under the corresponding git tag if needed.
Installation
Install the latest version from PyPI:
pip install --upgrade lazyops
Or install directly from GitHub for the latest development version:
pip install --upgrade git+https://github.com/trisongz/lazyops.git
Basic Usage (Illustrative)
# Import from the new namespaces
import lzl
import lzo
# Example using lzl logging (assuming configuration)
from lzl.logging import logger
logger.info("Logging configured via lzl!")
# Example using lzo registry (illustrative)
# Assuming 'my_settings' are registered somewhere
from lzo.registry import settings
# app_config = settings['my_settings']
# print(f"Loaded setting: {app_config.some_value}")
# Example using lzl utils (e.g., async helper)
# import asyncio
# from lzl.utils import run_as_coro
#
# def my_sync_function(x):
# return x * 2
#
# async def main():
# result = await run_as_coro(my_sync_function, 5)
# print(f"Async result: {result}")
#
# asyncio.run(main())
(More detailed usage examples will be added as the refactoring progresses).
Module Highlights
lzo.registry– Provides theMRegistrycore with hook support for pre/post instantiation along with helpers for registering clients and settings. Seesrc/lzo/registry/README.mdfor an overview and runmake test-lzo-registryto exercise the accompanying tests.lzo.types– Re-exports the LazyOps pydantic wrappers such asBaseSettingsandBaseModel, streamlining environment-aware configuration. Quick-start examples live insrc/lzo/types/README.mdand can be validated withmake test-lzo-types.lzo.utils– Collects lightweight helper modules (retry decorators, key generators, formatting utilities) that avoid heavy dependencies. The façade README atsrc/lzo/utils/README.mdhighlights the most common entry points; runmake test-lzo-utilsto confirm everything behaves as documented.
Core Dependencies
- Python 3.7+
- pydantic: Used for data validation and settings management.
- Other foundational libraries used internally (e.g.,
aiohttpx,loguru,async_lru).
(A more detailed dependency list will be maintained in setup.py or pyproject.toml).
Documentation
Full documentation is available and built with MkDocs using the Material theme:
- Online: Documentation is automatically deployed to GitHub Pages on updates to the
mainbranch - Local Preview: Run
make mkdocs-serveto preview documentation locally athttp://127.0.0.1:8000/ - Build: Run
make mkdocs-buildto build static documentation
To install documentation dependencies:
pip install -e ".[docs]"
See docs/mkdocs-setup.md for more information about the documentation setup.
Contributing
Contributions are welcome! Please read the CONTRIBUTING.md file for guidelines on code style, formatting, type hinting, docstrings, and the development process.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for lazyops 0.4.8
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 |
|---|---|---|---|---|
| lazyops-0.4.8.tar.gz | 701.7 kB | Without provenance | Details for lazyops-0.4.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| lazyops-0.4.8-py3-none-any.whl | Python 3 | none | any | Details for lazyops-0.4.8-py3-none-any.whl |
Total release size: 1.6 MB
Release files / lazyops-0.4.8.tar.gz
| Download URL | lazyops-0.4.8.tar.gz |
|---|---|
| Size | 701.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7c9328f6fa3b6d688ff728c8da734312f078e102b98c97a71a6d92fb084eb5b9
|
|
BLAKE2b-256 checksum How to use checksums |
c51ae5315afe22250a47ac09fad176c7f3f460680dfce275f6a447e800f224fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / lazyops-0.4.8-py3-none-any.whl
| Download URL | lazyops-0.4.8-py3-none-any.whl |
|---|---|
| Size | 898.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3e8e06c8792f6f75386c2858f4e86c1262de6ed1e4cad26d58e7b803114f94bf
|
|
BLAKE2b-256 checksum How to use checksums |
1b3bab738633908027b7d478f18bb16a944d733c653b8ecbb911153043090257
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for lazyops 0.4.8
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.