Skip to main content

Architecture + Python – Perfect for structured design.

Project description

ArchiPy Logo

ArchiPy - Architecture + Python

Forks Stars Python UV Documentation License Maintained Contributions welcome PyPI - Version PyPI - Downloads Contributors Last Commit Open Issues Closed Issues Pull Requests Repo Size Code Size

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:

  1. Configuration Management & Injection - Simplify and standardize configuration handling
  2. Common Adapters & Mocks - Provide ready-to-use adapters with testing mocks
  3. Standardized Entities & DTOs - Enforce consistency in data modeling
  4. Common Helpers for Everyday Tasks - Simplify routine development work
  5. Behavior-Driven Development (BDD) Support - Enable robust feature validation
  6. 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


🔗 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.

View the latest documentation

Project details


Release history Release notifications | RSS feed

This version

4.8.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

archipy-4.8.1.tar.gz (712.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

archipy-4.8.1-py3-none-any.whl (266.9 kB view details)

Uploaded Python 3

File details

Details for the file archipy-4.8.1.tar.gz.

File metadata

  • Download URL: archipy-4.8.1.tar.gz
  • Upload date:
  • Size: 712.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.10 {"installer":{"name":"uv","version":"0.11.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}

File hashes

Hashes for archipy-4.8.1.tar.gz
Algorithm Hash digest
SHA256 e4acc1704fa6a17d61d709770ef4889afe85e87a87439749a6fb5dbf55b6b434
MD5 c5dcf4211c3a1f533c223ff075e47848
BLAKE2b-256 25026191fc6b5a41f705bd9dbc51924f776ccc0bb223d1e0f24123eb0eccfd79

See more details on using hashes here.

File details

Details for the file archipy-4.8.1-py3-none-any.whl.

File metadata

  • Download URL: archipy-4.8.1-py3-none-any.whl
  • Upload date:
  • Size: 266.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.10 {"installer":{"name":"uv","version":"0.11.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}

File hashes

Hashes for archipy-4.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a7099bd92ae242bacabb4a87ad689e102a58ee72bf4e5f28280435948fd708a9
MD5 f745ed3ad06e3f10dd93338b876cf059
BLAKE2b-256 de7f1e007a6a7afecb05d69c751d7fd9b6f4d48588d5ba9d8a727a23283e8c3d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page