Skip to main content

A collection of submodules/patterns that are commonly used within Internal Development

Project description

lazyops: Lazy Operations Toolkit (lzl / lzo)

PyPI version

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 the MRegistry core with hook support for pre/post instantiation along with helpers for registering clients and settings. See src/lzo/registry/README.md for an overview and run make test-lzo-registry to exercise the accompanying tests.
  • lzo.types – Re-exports the LazyOps pydantic wrappers such as BaseSettings and BaseModel, streamlining environment-aware configuration. Quick-start examples live in src/lzo/types/README.md and can be validated with make test-lzo-types.
  • lzo.utils – Collects lightweight helper modules (retry decorators, key generators, formatting utilities) that avoid heavy dependencies. The façade README at src/lzo/utils/README.md highlights the most common entry points; run make test-lzo-utils to 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 main branch
  • Local Preview: Run make mkdocs-serve to preview documentation locally at http://127.0.0.1:8000/
  • Build: Run make mkdocs-build to 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.

Project details


Release history Release notifications | RSS feed

This version

0.4.8

Download files

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

Source Distribution

lazyops-0.4.8.tar.gz (701.7 kB view details)

Uploaded Source

Built Distribution

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

lazyops-0.4.8-py3-none-any.whl (898.2 kB view details)

Uploaded Python 3

File details

Details for the file lazyops-0.4.8.tar.gz.

File metadata

  • Download URL: lazyops-0.4.8.tar.gz
  • Upload date:
  • Size: 701.7 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for lazyops-0.4.8.tar.gz
Algorithm Hash digest
SHA256 7c9328f6fa3b6d688ff728c8da734312f078e102b98c97a71a6d92fb084eb5b9
MD5 7d5d118566948cc3ca0bc66c77f8d882
BLAKE2b-256 c51ae5315afe22250a47ac09fad176c7f3f460680dfce275f6a447e800f224fa

See more details on using hashes here.

File details

Details for the file lazyops-0.4.8-py3-none-any.whl.

File metadata

  • Download URL: lazyops-0.4.8-py3-none-any.whl
  • Upload date:
  • Size: 898.2 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for lazyops-0.4.8-py3-none-any.whl
Algorithm Hash digest
SHA256 3e8e06c8792f6f75386c2858f4e86c1262de6ed1e4cad26d58e7b803114f94bf
MD5 e123021b0fdbc31c4eb7137e55f1583d
BLAKE2b-256 1b3bab738633908027b7d478f18bb16a944d733c653b8ecbb911153043090257

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