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.0.7
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.0.7.tar.gz | 918.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| archipy-5.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / archipy-5.0.7.tar.gz
| Download URL | archipy-5.0.7.tar.gz |
|---|---|
| Size | 918.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1832bae9e4365d2eca39374f7eb94a57a28f1103998707f90a14fabc547ea24c
|
|
BLAKE2b-256 checksum How to use checksums |
4327936e898e7afdaad4663c2aaab0c7bfe2ca00cfac9d07ed9d9b09e1451dd6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.8 {"installer":{"name":"uv","version":"0.12.8","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.0.7-py3-none-any.whl
| Download URL | archipy-5.0.7-py3-none-any.whl |
|---|---|
| Size | 353.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f45b5650d812e3af38a24a67c6cf2ab3955c58f88cb36b7273e6cd6a2e53efb3
|
|
BLAKE2b-256 checksum How to use checksums |
8bf8ff21d392554db25a01a9c0f8d96ebebe6bd66731d6609ebc8b8b03ab2be5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.8 {"installer":{"name":"uv","version":"0.12.8","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}
|