Metadata-Version: 2.4
Name: lukoshkin-lego
Version: 0.0.25.post2
Author: lukoshkin
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: json-repair>=0.8.0
Requires-Dist: loguru>=0.7.2
Requires-Dist: openai>=1.90.0
Requires-Dist: openpyxl>=3.1.2
Requires-Dist: pydantic-settings>=2.2.1
Requires-Dist: pydantic>=2.6.2
Requires-Dist: pyhumps>=3.8.0
Requires-Dist: pyinstrument>=4.6.2
Requires-Dist: python-decouple>=3.8
Requires-Dist: rodi>=2.0.6
Requires-Dist: tenacity>=8.2.3
Requires-Dist: transitions>=0.9.1
Requires-Dist: uvicorn>=0.22.0
Provides-Extra: dev
Requires-Dist: ipython>=8.14.0; extra == 'dev'
Requires-Dist: mypy>=1.4.1; extra == 'dev'
Requires-Dist: pre-commit>=3.3.3; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.25.0; extra == 'dev'
Requires-Dist: pytest-order>=1.3.0; extra == 'dev'
Requires-Dist: pytest>=8.3.4; extra == 'dev'
Requires-Dist: ruff>=0.3.0; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0.12.11; extra == 'dev'
Provides-Extra: litellm
Requires-Dist: boto3; extra == 'litellm'
Requires-Dist: litellm; extra == 'litellm'
Provides-Extra: milvus
Requires-Dist: pymilvus[model]>=2.5.3; extra == 'milvus'
Description-Content-Type: text/markdown

## Lego

Python utilities initially for ChatBot Development and Cloud Engineering.

## Structure

### The most useful parts

- lego/models.py - base for string enums and base for auto-conversion
  between `camelCase` and `snake_case` styles.
- lego/db - database connectors:
  - redis - async Redis JSON connector,
  - milvus - superb MilvusDB connector.
  - redshift - async calls to the Redshift DB.
- lego/utils/io.py - read/write op-s for JSON files.
- lego/utils/ttl.py - ttl utilities used in Redis and Milvus connectors.
- lego/llm/utils/json\_{compose,mediator}.py - interfaces to use in the
  calls to LLM to get structured response (the answer with JSON).
- lego/llm/utils/parse.py - parser functions for LLM responses;
  includes also streaming responses and responses with thinking blockes.
- lego/settings - settings for the DB connectors above (and more)

### The rest is a bit outdated and should move to `legacy` soon
