Project manager for standardizing and automating Python development workflows via centralized configuration, predefined task orchestration, and modular extensibility.
- Overview
- Features
- Installation
- Usage
- Configuration
- Documentation
- Support
- Contributing
- Acknowledgments
- License
Managing a Python project throughout its life development cycle, from initial setup to deployment, requires coordinating heterogeneous tools, configurations and tasks (e.g. dependency management, testing, linting, documentation, packaging).
In the absence of an integrated framework, these tasks are typically handled using disparate tools and ad hoc workflows, leading to fragmented project structures, increased maintenance burden, and inconsistent development practices.
Existing solutions address isolated aspects of project management (see ALTERNATIVES.md), but no framework unifies integrates all stages into a coherent Python-centric system.
Architekta introduces a centralized and extensible project management system that consolidates common development operations into a unified interface.
It provides the following benefits:
- Integrated orchestrations: Uniform interface to coordinate multiple development tasks (environment setup, testing, linting, documentation, packaging).
- Automated workflows: Predefined task sequences to reduce manual intervention and ensure reproducible behaviors.
- Standardized structure: Consistent configuration schemes and directory layouts to facilitate collaboration and onboarding.
- Flexible customization: Modular task definitions and plugin support for project-specific overrides and extensions.
- Centralized maintenance: Single source of truth for configuration to improve control and long-term updates.
- Built-in compliance with development standards: Integrated checks and defaults promoting reproducibility, code quality, test coverage, documentation.
-
Virtual Environment and Dependency Management:
- Synchronize Conda specifications (
meta.yaml
andenvironment.yaml
files) withpyproject.toml
. - Update the project dependencies as new tools are added.
- Install packages in "editable" mode.
- Install executable scripts in "editable" mode.
- Inspect the Conda environment for current developing packages and executables.
- Synchronize Conda specifications (
-
Version Control
- Configure Git repository to use a local commit message template.
-
Configuration
- Centralize modular configuration files in a
config/
directory. - Synchronize overlapping configurations across tools.
- Override tool behavior with new settings (e.g. "force-exclude" in
mypy
).
- Centralize modular configuration files in a
To install the package and its dependencies, use one of the following methods:
Install the package from the GitHub repository URL via pip
:
pip install git+https://github.com/esther-poniatowski/architekta.git
Install the package from the private channel eresthanaconda:
conda install architekta -c eresthanaconda
-
Clone the repository:
git clone https://github.com/esther-poniatowski/architekta.git
-
Create a dedicated virtual environment:
cd architekta conda env create -f environment.yml
To display the list of available commands and options:
architekta --help
To use the package programmatically in Python:
import architekta
Variable | Description | Default | Required |
---|---|---|---|
VAR_1 |
Description 1 | None | Yes |
VAR_2 |
Description 2 | false |
No |
Configuration options are specified in YAML files located in the config/
directory.
The canonical configuration schema is provided in config/default.yaml
.
var_1: value1
var_2: value2
Note
Documentation can also be browsed locally from the docs/
directory.
Issues: GitHub Issues
Email: {{ contact@example.com }}
Please refer to the contribution guidelines.
Author: @esther-poniatowski
Contact: {{ contact@example.com }}
For academic use, please cite using the GitHub "Cite this repository" feature to generate a citation in various formats.
Alternatively, refer to the citation metadata.
This project is licensed under the terms of the GNU General Public License v3.0.