Project Architecture¶
This section describes the design and structure of the irorun project.
Directory Layout¶
A typical directory structure is as follows:
irorun/
├── irorun/ # Main package directory
│ ├── __init__.py
│ ├── cli.py # Entry point for the CLI
│ ├── helpers.py # Helper functions for project creation and command execution
│ └── logger_setup.py # Custom logging configuration and handler
├── tests/ # Unit and integration tests
├── docs/ # Sphinx documentation sources
├── project_config.toml # Configuration for project bootstrapping
├── logging.conf # Logging configuration file
└── pyproject.toml # Build and metadata configuration
Key Modules¶
cli.py: Implements the Typer-based CLI, defining commands such as
init
,check
, and others.helpers.py: Contains functions to create projects using various environment managers and manage subdirectory creation.
logger_setup.py: Configures logging using a custom
TyperLoggerHandler
that outputs elegant, color-coded logs.Configuration Files: - project_config.toml defines project setup parameters. - logging.conf controls logging output and format.
Design Principles¶
Modularity: Each component (CLI, logging, configuration) is isolated for easy maintenance.
Extensibility: New commands and features can be added with minimal changes to existing code.
Configurability: Project behavior and logging are driven by external configuration files.