ArchiPy - Architecture + Python
Structured Python Development Made Simple
ArchiPy is a Python framework designed to provide a standardized, scalable, and maintainable architecture for modern applications. Built with Python 3.14+, it offers a suite of tools, utilities, and best practices to streamline configuration management, testing, and development workflows while adhering to clean architecture principles.
📋 Table of Contents
🎯 Goals
ArchiPy is built with the following objectives in mind:
- Configuration Management & Injection - Simplify and standardize configuration handling
- Common Adapters & Mocks - Provide ready-to-use adapters with testing mocks
- Standardized Entities & DTOs - Enforce consistency in data modeling
- Common Helpers for Everyday Tasks - Simplify routine development work
- Behavior-Driven Development (BDD) Support - Enable robust feature validation
- Best Practices & Development Structure - Enforce coding standards
Read more about ArchiPy's architecture and design
✨ Features
- Config Standardization: Tools for managing and injecting configurations
- Adapters & Mocks: Pre-built adapters for Redis, SQLAlchemy, and email with testing mocks
- Data Standardization: Base entities, DTOs, and type safety
- Helper Utilities: Reusable tools for common tasks
- BDD Testing: Fully integrated Behave setup
- Modern Tooling: Dependency management and code quality tools
Explore the complete feature set
🛠️ Prerequisites
- Python 3.14 or higher
- UV (recommended for development)
📥 Installation
Install using pip
# Basic installation
pip install archipy
# With optional dependencies (e.g., Redis and FastAPI)
pip install archipy[redis,fastapi]
Using UV:
uv add archipy
# With optional dependencies
uv add archipy[redis,fastapi]
View installation documentation
🎯 Usage
Optional Dependencies
ArchiPy's modular design lets you install only what you need:
# Examples
pip install archipy[redis] # Redis support
pip install archipy[fastapi] # FastAPI framework
pip install archipy[postgres] # PostgreSQL support
See the documentation for all available options and examples
🛠️ Development
Quick Commands
# Format code
make format
# Run tests
make behave
# Lint code
make lint
View the complete development guide
🤝 Contributing
Contributions are welcome! See our contribution guidelines for details.
📄 License
This project is licensed under the terms of the LICENSE file.
🙌 Sponsors
Support ArchiPy by checking out our amazing sponsors! View Sponsors
📞 Contact
- Mehdi Einali: einali@gmail.com
- Hossein Nejati: hosseinnejati14@gmail.com
🔗 Links
📚 Documentation
ArchiPy's documentation has been migrated from Sphinx to MkDocs for improved readability and organization:
- Modern Interface: Material theme with responsive design
- Improved Navigation: Intuitive organization and search
- Clearer Examples: Expanded code samples with explanations
- API Reference: Auto-generated from source code docstrings
- Performance Optimized: Multiple build modes for fast iteration
Quick Start
# Install documentation dependencies
uv sync --group docs
# Fast mode for quick iterations (10-20s builds)
make docs-serve-fast
# Balanced mode for regular work (30-60s builds)
make docs-serve
# Full production build (2-5min, all features)
make docs-build-full
# Deploy to GitHub Pages
make docs-deploy
See DOCS_QUICKSTART.md for more commands and tips.
Release files for archipy 5.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| archipy-5.4.0.tar.gz | 947.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| archipy-5.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / archipy-5.4.0.tar.gz
| Download URL | archipy-5.4.0.tar.gz |
|---|---|
| Size | 947.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6a8b058f9ba4a4222e0146cc04ec6397ca191412338879ff573c3ea056b05fd
|
|
BLAKE2b-256 checksum How to use checksums |
b6685ab3038233341e6808a1380744ad25fc8f93a36c2a555774f661714ec1c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / archipy-5.4.0-py3-none-any.whl
| Download URL | archipy-5.4.0-py3-none-any.whl |
|---|---|
| Size | 360.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3b9c812a4fc410032acfecd67df8fdce20181cf93e5e4968aab725f268952ded
|
|
BLAKE2b-256 checksum How to use checksums |
d160214fbb9d2770e43e0b89a17773792ac34271a50bc7b4e70a94cf19e361d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|