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.2.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.2.0.tar.gz | 934.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| archipy-5.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / archipy-5.2.0.tar.gz
| Download URL | archipy-5.2.0.tar.gz |
|---|---|
| Size | 934.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c57ee56efb50f9c9e7e1f119bf809bebfeb90d2d96f719be3124eb7ee9d40ab8
|
|
BLAKE2b-256 checksum How to use checksums |
1c97a3907939f97f3d5140cdc502968956eae841ab0c7bc078f70e697fca8738
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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.2.0-py3-none-any.whl
| Download URL | archipy-5.2.0-py3-none-any.whl |
|---|---|
| Size | 357.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2c47f83b8dd14407140bae45c23abc14ba3cc9f3a87c0024599491761a1fc7f8
|
|
BLAKE2b-256 checksum How to use checksums |
224cf53af1bd3f4c76b9ad36e79d32a4464f89a9d02855f28b8b9633ef2e9d5a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|