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

1"""Rhiza — Manage reusable configuration templates for Python projects. 

2 

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. 

8 

9## Key features 

10 

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. 

16 

17## Quick start 

18 

19Initialize a project with Rhiza templates: 

20 

21```bash 

22cd your-project 

23rhiza init 

24``` 

25 

26Validate your configuration: 

27 

28```bash 

29rhiza validate 

30``` 

31 

32Customize `.github/rhiza/template.yml`, then materialize templates into your project: 

33 

34```bash 

35rhiza materialize 

36``` 

37 

38## Main modules 

39 

40- `rhiza.commands` — Core command implementations (init, materialize, validate). 

41- `rhiza.models` — Data models and schemas for template configuration. 

42 

43## Documentation 

44 

45For an overview and usage guides, see the repository files: 

46 

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. 

53 

54Latest version and updates: https://github.com/jebel-quant/rhiza-cli 

55""" 

56 

57from importlib.metadata import PackageNotFoundError, version 

58 

59try: 

60 __version__ = version("rhiza") 

61except PackageNotFoundError: 

62 # Package is not installed, use a fallback version 

63 __version__ = "0.0.0+dev" 

64 

65__all__ = ["commands", "models"]