Coverage for src / rhiza / __init__.py: 100%
6 statements
« prev ^ index » next coverage.py v7.13.1, created at 2025-12-29 01:59 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2025-12-29 01:59 +0000
1"""Rhiza — Manage reusable configuration templates for Python projects.
3Rhiza is a command‑line interface (CLI) that helps you maintain consistent
4configuration across multiple Python projects using templates stored in a
5central repository. It can initialize projects with standard configuration,
6materialize (inject) template files into a target repository, and validate the
7template configuration.
9## Key features
11- Template initialization for new or existing projects.
12- Template materialization with selective include/exclude support.
13- Configuration validation (syntax and basic semantics).
14- Multi‑host support (GitHub and GitLab).
15- Non‑destructive updates by default, with an explicit `--force` flag.
17## Quick start
19Initialize a project with Rhiza templates:
21```bash
22cd your-project
23rhiza init
24```
26Validate your configuration:
28```bash
29rhiza validate
30```
32Customize `.github/rhiza/template.yml`, then materialize templates into your project:
34```bash
35rhiza materialize
36```
38## Main modules
40- `rhiza.commands` — Core command implementations (init, materialize, validate).
41- `rhiza.models` — Data models and schemas for template configuration.
43## Documentation
45For an overview and usage guides, see the repository files:
47- [README.md](https://github.com/jebel-quant/rhiza-cli/blob/main/README.md) —
48Project overview and installation instructions.
49- [USAGE.md](https://github.com/jebel-quant/rhiza-cli/blob/main/USAGE.md) —
50Practical examples, workflows, and best practices.
51- [CLI.md](https://github.com/jebel-quant/rhiza-cli/blob/main/CLI.md) —
52Command reference with examples.
54Latest version and updates: https://github.com/jebel-quant/rhiza-cli
55"""
57from importlib.metadata import PackageNotFoundError, version
59try:
60 __version__ = version("rhiza")
61except PackageNotFoundError:
62 # Package is not installed, use a fallback version
63 __version__ = "0.0.0+dev"
65__all__ = ["commands", "models"]