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
Each adapter extra installs its own package (archipy[redis] → archipy-redis), so only the adapters you ask for are installed. Imports are unchanged (archipy.adapters.redis).
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 the quickstart for more commands and tips.
Metadata
Release files for archipy 5.26.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| archipy-5.26.1.tar.gz | 1.6 MB | Without provenance | Details for archipy-5.26.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| archipy-5.26.1-py3-none-any.whl | Python 3 | none | any | Details for archipy-5.26.1-py3-none-any.whl |
Total release size: 1.9 MB
Release files / archipy-5.26.1.tar.gz
| Download URL | archipy-5.26.1.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a7756f2c13f18f7100984c8a4fe0d040bd3b949043ccf979d544ffd99225123
|
|
BLAKE2b-256 checksum How to use checksums |
20f70e54a53cbbc5c663c5f8ce9d32fc4bea70200e7344c28d767af6e481d47f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.26.1-py3-none-any.whl
| Download URL | archipy-5.26.1-py3-none-any.whl |
|---|---|
| Size | 331.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9b257ee53e0a5865009acc87f17f221920edc219bbe5a0416e343fcff397942
|
|
BLAKE2b-256 checksum How to use checksums |
f35ecbb6c33bbede64bbab551a14dc12cf6e6adae80306f4f0ba94a575f40af7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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}
|
Security for archipy 5.26.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.