Architecture + Python – Perfect for structured design.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file archipy-4.4.0.tar.gz.
File metadata
- Download URL: archipy-4.4.0.tar.gz
- Upload date:
- Size: 688.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f0e70790f96bb281ea4f77005b7675516ffacfdf283165f4a6a979a9186d14d
|
|
| MD5 |
20544f39267c1b91dd8b5925869b22cb
|
|
| BLAKE2b-256 |
1494430b829380e95efc500b4ae850a778f1651389a7fcf68f3753d8338d5a68
|
File details
Details for the file archipy-4.4.0-py3-none-any.whl.
File metadata
- Download URL: archipy-4.4.0-py3-none-any.whl
- Upload date:
- Size: 253.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e349e199e52d63704bf30c6d50632e83a6601d44e58f82746850b8f10871ed4
|
|
| MD5 |
8712fbfe55301c989153ff743a9594df
|
|
| BLAKE2b-256 |
79791868f0103227c4deb66cf47dae22935d421b1cbe874451ce3eb54d4f10bd
|