Metadata-Version: 2.4
Name: lazyops
Version: 0.4.3
Summary: A collection of submodules/patterns that are commonly used within Internal Development
Author-email: Tri Songz <ts@songzcorp.com>
License: MIT License
Project-URL: Homepage, https://github.com/trisongz/lazyops
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: loguru
Requires-Dist: pydantic
Requires-Dist: pydantic-settings
Requires-Dist: frozendict
Requires-Dist: async_lru
Requires-Dist: pyyaml
Requires-Dist: filelock
Requires-Dist: xxhash
Requires-Dist: typing_extensions; python_version < "3.8"
Requires-Dist: setuptools; python_version > "3.11"
Requires-Dist: anyio>=3.7.1
Requires-Dist: typer>=0.17.3
Provides-Extra: kops
Requires-Dist: kubernetes; extra == "kops"
Requires-Dist: kubernetes_asyncio; extra == "kops"
Requires-Dist: kopf; extra == "kops"
Requires-Dist: aiocache; extra == "kops"
Requires-Dist: kr8s; extra == "kops"
Provides-Extra: fastapi
Requires-Dist: fastapi; extra == "fastapi"
Requires-Dist: uvicorn; extra == "fastapi"
Requires-Dist: python-multipart; extra == "fastapi"
Provides-Extra: builder
Requires-Dist: typer; extra == "builder"
Provides-Extra: openai
Requires-Dist: httpx; extra == "openai"
Requires-Dist: backoff; extra == "openai"
Requires-Dist: tiktoken; extra == "openai"
Requires-Dist: jinja2; extra == "openai"
Requires-Dist: pyyaml; extra == "openai"
Requires-Dist: numpy; extra == "openai"
Requires-Dist: scipy; extra == "openai"
Provides-Extra: fileio
Requires-Dist: botocore>=1.34.0; extra == "fileio"
Requires-Dist: boto3>=1.34.0; extra == "fileio"
Requires-Dist: aiobotocore>=2.11.0; extra == "fileio"
Requires-Dist: fsspec>=2024.2.0; extra == "fileio"
Requires-Dist: s3fs>=2024.2.0; extra == "fileio"
Requires-Dist: s3transfer>=0.10.0; extra == "fileio"
Requires-Dist: python-magic; extra == "fileio"
Requires-Dist: aiopath; extra == "fileio"
Requires-Dist: aiofiles; extra == "fileio"
Requires-Dist: aiofile; extra == "fileio"
Provides-Extra: file
Requires-Dist: botocore>=1.34.0; extra == "file"
Requires-Dist: boto3>=1.34.0; extra == "file"
Requires-Dist: aiobotocore>=2.11.0; extra == "file"
Requires-Dist: fsspec>=2024.2.0; extra == "file"
Requires-Dist: s3fs>=2024.2.0; extra == "file"
Requires-Dist: s3transfer>=0.10.0; extra == "file"
Requires-Dist: python-magic; extra == "file"
Requires-Dist: aiopath; extra == "file"
Requires-Dist: aiofiles; extra == "file"
Requires-Dist: aiofile; extra == "file"
Dynamic: license-file

# lazyops: Lazy Operations Toolkit (lzl / lzo)

[![PyPI version](https://badge.fury.io/py/lazyops.svg)](https://badge.fury.io/py/lazyops)
<!-- Add other badges here later: e.g., Build Status, Code Coverage -->

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:

```bash
pip install --upgrade lazyops
```

Or install directly from GitHub for the latest development version:

```bash
pip install --upgrade git+https://github.com/trisongz/lazyops.git
```

---

### Basic Usage (Illustrative)

```python
# 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).*

---

### Core Dependencies

*   Python 3.7+
*   [pydantic](https://github.com/pydantic/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`)*.

---

### Contributing

Contributions are welcome! Please read the **[`CONTRIBUTING.md`](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`](LICENSE) file for details.
