Core package for PepperPy Framework
Project description
PepperPy Core
PepperPy Core is a comprehensive Python utility library designed to accelerate development by providing essential core capabilities. It offers a robust foundation for building scalable, maintainable, and secure Python applications.
Features
- Task Management: Asynchronous task execution with priority queuing
- Event System: Flexible event-driven architecture
- Plugin System: Extensible plugin architecture
- Security: Built-in security features and validation
- Logging: Advanced structured logging
- Configuration: Flexible configuration management
- I/O Operations: Async-first I/O utilities
- Network Operations: Robust networking capabilities
- Resource Management: Efficient resource handling
- Telemetry: Built-in monitoring capabilities
- Type Safety: Full type hints support
Installation
pip install pepperpy-core
Or with Poetry (recommended):
poetry add pepperpy-core
Quick Start
from pepperpy_core import Task, Event, Logger
# Configure logging
logger = Logger("my_app")
logger.info("Starting application")
# Create and execute a task
@Task.register
async def process_data(data: dict) -> dict:
logger.debug("Processing data", data=data)
# Process your data
return processed_data
# Execute the task
result = await process_data.execute({"input": "data"})
# Emit an event
event = Event("data_processed", {"status": "success"})
await event_bus.emit(event)
Core Modules
Task System
Asynchronous task management with features like:
- Priority-based execution
- Task cancellation
- Worker pools
- Task chaining
Event System
Event-driven architecture supporting:
- Event emission and handling
- Priority-based listeners
- Event metadata
- Async event processing
Plugin System
Extensible plugin architecture with:
- Dynamic plugin loading
- Plugin lifecycle management
- Plugin configuration
- Hook system
Security System
Comprehensive security features including:
- Authentication
- Input validation
- Security contexts
- Validation chains
Logging System
Advanced logging capabilities with:
- Structured logging
- Multiple handlers
- Log levels
- Context-aware logging
Configuration System
Flexible configuration management with:
- Hierarchical configuration
- Configuration validation
- Environment-based settings
- Dynamic updates
I/O Operations
Async-first I/O utilities supporting:
- File operations
- Multiple formats
- Streaming
- Resource management
Network Operations
Robust networking capabilities including:
- Async TCP/IP communication
- Connection pooling
- Retry handling
- Load balancing
Development
Prerequisites
- Python 3.12+
- Poetry for dependency management
Setup
- Clone the repository:
git clone https://github.com/felipepimentel/pepperpy-core.git
cd pepperpy-core
- Install dependencies:
poetry install
- Run tests:
poetry run pytest
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project Structure
pepperpy-core/
├── pepperpy_core/ # Core package
│ ├── task.py # Task management
│ ├── event.py # Event system
│ ├── plugin.py # Plugin system
│ ├── security.py # Security features
│ ├── logging.py # Logging system
│ ├── config.py # Configuration system
│ ├── io.py # I/O operations
│ ├── network.py # Network operations
│ └── ...
├── tests/ # Test suite
├── docs/ # Documentation
│ └── modules/ # Module documentation
├── examples/ # Usage examples
└── scripts/ # Development scripts
Best Practices
- Use type hints consistently
- Write comprehensive tests
- Follow PEP 8 guidelines
- Document your code
- Handle errors gracefully
Support
- Issue Tracker: GitHub Issues
- Documentation: Project Documentation
- Discussion: GitHub Discussions
Acknowledgments
- The Python community
- All contributors who have helped shape this project
- Open source projects that have inspired this work
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pepperpy_core-0.2.0.tar.gz.
File metadata
- Download URL: pepperpy_core-0.2.0.tar.gz
- Upload date:
- Size: 29.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.12.8 Linux/6.5.0-1025-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb89dd9eb2a7c97bde4b691552c1d1d4ad7cbbbfdf8fae8175a9d94203fc03e2
|
|
| MD5 |
371cd19a21019a529a5869e160b6023c
|
|
| BLAKE2b-256 |
834f9d10e099742219fc8ce4f73e039d3e629d5514b302081cadda96ac16b103
|
File details
Details for the file pepperpy_core-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pepperpy_core-0.2.0-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.12.8 Linux/6.5.0-1025-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a594f4dc1f05973c23b07f80193703c291bdf3c2c71a4576df6da6086e0848ac
|
|
| MD5 |
407f01f01273d5fbd925ca4184f25e4a
|
|
| BLAKE2b-256 |
d27c2bfdac6b5c16e5a55044c1e57478ba1d59436104479d9cf33cbf689a4d8a
|