Skip to content

Repository files navigation

Architekta

Conda Maintenance Last Commit Python License: GPL

Automates common Python development tasks through a unified CLI: environment management, metadata synchronization, and cross-surface project renaming.


Table of Contents

Overview

Setting up and maintaining a Python project involves repetitive manual steps — installing packages in development mode, keeping metadata in sync across GitHub and pyproject.toml, and renaming a project across every surface where its name appears. Architekta consolidates these operations into a single command-line tool so that each task runs reliably with one invocation.

Motivation

Each of these tasks — editable installs, metadata synchronization, cross-surface renaming — relies on ad-hoc scripts or manual commands spread across multiple tools. Errors compound when steps are forgotten or executed inconsistently, and the cost grows with the number of surfaces a project name touches (filesystem, GitHub, conda, workspace files, submodules, in-file references).

Advantages

  • Single entry point — one CLI consolidates environment setup, metadata synchronization, and cross-surface rename.
  • Dry-run on every operation — all commands support --dry-run to preview changes before applying them.
  • Cross-surface coordination — the rename pipeline propagates a name change across filesystem, GitHub, conda, VS Code workspaces, submodules, and in-file references in one invocation.
  • Lightweight editable installs.pth-based mechanism avoids wheel and source distribution builds required by pip install -e.
  • README-driven metadata — descriptions propagate from README first sentences to GitHub and pyproject.toml, keeping metadata consistent without manual duplication.

Features

Environment management

  • Install packages in editable mode via .pth files, discover packages under src/, and validate conda environments.
  • Install executable scripts in editable mode via symlinks in the conda environment bin/ directory.
  • Display packages and executables installed in the current conda environment.
  • Synchronize Conda specifications with pyproject.toml to keep dependency declarations consistent.

Metadata and version control

  • Extract the first prose sentence from each project's README and propagate descriptions to GitHub repositories and pyproject.toml fields.
  • Configure a Git repository to use a local commit message template.

Cross-surface rename

  • Rename a project across filesystem, GitHub, conda, VS Code workspaces, submodules, and in-file references through a nine-stage pipeline.
    • Propagate changes to affected projects specified via --affected-path.
    • Preview the full plan with --dry-run before applying any mutation.

Configuration

  • Centralize modular configuration files in a config/ directory and synchronize overlapping settings across tools.
  • Override tool behavior with custom settings (e.g. force-exclude in mypy).
  • Define custom command aliases in a central manifest that route to the tools involved in the workspace through a uniform interface, replacing ad-hoc invocations.

Quick Start

CLI

architekta env install-editable --all
architekta github sync-descriptions --dry-run
architekta rename old-name new-name --dry-run

Application Programming Interface

from architekta import info

print(info())
# architekta 0.0.0 | Platform: Darwin Python 3.12.8

Documentation

Guide Content
Installation Prerequisites, pip/conda/source setup
Usage Workflows and detailed examples
CLI Reference Full command reference and options
Configuration Configuration files and environment variables

Contributing

Contribution guidelines are described in CONTRIBUTING.md.


Acknowledgments

Authors

Author: @esther-poniatowski

For academic use, the GitHub "Cite this repository" feature generates citations in various formats. The citation metadata file is also available.


License

This project is licensed under the terms of the GNU General Public License v3.0.

About

Automates Python development tasks from setup to deployment through a unified CLI.

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages