Metadata-Version: 2.4
Name: pyeasycore
Version: 0.5.0
Summary: 
Author: Your Name
Author-email: you@example.com
Requires-Python: >=3.12,<4
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: faker (>=37.4.2,<38.0.0)
Requires-Dist: fastapi (>=0.123.5,<0.124.0)
Requires-Dist: faststream[rabbit] (>=0.5.47,<0.6.0)
Requires-Dist: httpx (>=0.28.1,<0.29.0)
Requires-Dist: marshmallow (==3.23.1)
Requires-Dist: motor (>=3.7.1,<4.0.0)
Requires-Dist: opentelemetry-exporter-otlp (>=1.39.0,<2.0.0)
Requires-Dist: opentelemetry-instrumentation-asgi (>=0.60b0,<0.61)
Requires-Dist: opentelemetry-instrumentation-fastapi (>=0.60b0,<0.61)
Requires-Dist: opentelemetry-instrumentation-faststream (>=0.1.3,<0.2.0)
Requires-Dist: opentelemetry-instrumentation-pymongo (>=0.60b0,<0.61)
Requires-Dist: opentelemetry-instrumentation-redis (>=0.60b0,<0.61)
Requires-Dist: opentelemetry-sdk (>=1.39.0,<2.0.0)
Requires-Dist: pydantic (>=2.12.5,<3.0.0)
Requires-Dist: pydantic-settings (>=2.12.0,<3.0.0)
Requires-Dist: python-json-logger (>=4.0.0,<5.0.0)
Requires-Dist: python-socketio (>=5.15.0,<6.0.0)
Requires-Dist: redis (>=7.1.0,<8.0.0)
Requires-Dist: taskiq-aio-pika (>=0.4.3,<0.5.0)
Requires-Dist: taskiq-faststream (>=0.2.3,<0.3.0)
Requires-Dist: taskiq[rabbitmq] (>=0.11.18,<0.12.0)
Requires-Dist: tenacity (>=9.1.2,<10.0.0)
Requires-Dist: umongo (>=3.1.0,<4.0.0)
Description-Content-Type: text/markdown

# EasyCore

Core utilities for building small Python services with FastAPI and Celery.

## Features

- **FastAPI**: Pre-configured app factory with router management and exception handlers
- **Celery**: Custom task class with correlation ID tracking for distributed tracing
- **Logger**: Correlation ID middleware and context management for request tracking
- **HTTPX**: Monkey patching for enhanced logging
- **Settings**: Pydantic-based settings for Redis, MongoDB, RabbitMQ, API, and more
- **Abstractions**: Singleton metaclass and common patterns

## Installation

```bash
pip install easycore
```

## Quick Start

```python
from easycore import create_fastapi_api_app, create_celery_custom_task_class

# Create FastAPI app
app = create_fastapi_api_app(
    service_name="my-service",
    service_path="api/v1",
    routers=[my_router],
    custom_exc_handlers=None
)

# Create Celery custom task
CustomTask = create_celery_custom_task_class(logger)
```

## Components

- `efastapi`: FastAPI app factories
- `ecelery`: Celery task utilities with correlation ID support
- `elogger`: Logging with correlation ID tracking
- `ehttpx`: HTTPX logging patches
- `env_settings`: Pydantic settings for common services
- `connectors`: API connector utilities
- `abstractions`: Common patterns (Singleton, etc.)

