Set up a Python project with proper structure and best practices.
Project type: [WEB APP / API / SCRIPT / DATA SCIENCE / CLI TOOL / PACKAGE]
Framework: [FLASK / DJANGO / FASTAPI / NONE]
Python version: [3.10+ / 3.11+ / 3.12+]
Provide:
1. **Project Structure**: Folder layout following Python conventions
2. **Virtual Environment**: Setup with venv or poetry
3. **Dependencies**: requirements.txt or pyproject.toml setup
4. **Configuration**: Environment variables and config management
5. **Linting & Formatting**: Black, ruff, isort, and mypy setup
6. **Testing Setup**: pytest configuration with fixtures and test structure
7. **Logging**: Proper logging setup (not print statements)
8. **Error Handling**: Exception hierarchy and error handling patterns
9. **Docker Setup**: Dockerfile and docker-compose for development
10. **CI Pipeline**: GitHub Actions workflow for testing and linting