Metadata-Version: 2.4
Name: bestie-template
Version: 0.2.0
Summary: Python interface to the BestieTemplate copier template: add template features to Julia packages without Julia
Project-URL: Repository, https://github.com/JuliaBesties/BestieTemplate.jl
Project-URL: Documentation, https://JuliaBesties.github.io/BestieTemplate.jl
Author: Abel Soares Siqueira
License-Expression: MPL-2.0
License-File: LICENSE
Keywords: bestie,copier,julia,template
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.11
Requires-Dist: copier<10,>=9.14
Requires-Dist: pyyaml>=6
Requires-Dist: typer>=0.12
Description-Content-Type: text/markdown

# bestie-template

Python interface to [BestieTemplate](https://github.com/JuliaBesties/BestieTemplate.jl): add template features to an existing Julia package without installing Julia.

> **Status: experimental.**

With [uv](https://docs.astral.sh/uv/), no install step is needed:

```sh
uvx --from bestie-template bestie list-features
```

The command is `bestie`, hence the `--from`. Since 0.1.1 the package also installs `bestie-template` as an alias, so `uvx bestie-template list-features` works too.

The two commands (`bestie --help` for all options):

```sh
bestie list-features
bestie add-feature agents,changelog path/to/MyPackage.jl -d PackageName=MyPackage
```

The same as a library:

```python
import bestie_template

bestie_template.list_features()
bestie_template.add_feature(["agents"], "path/to/MyPackage.jl", {"PackageName": "MyPackage"})
```

Both read the `features.toml` registry at the repository root — the same one the Julia `BestieTemplate.add_feature` reads, so the two stay in sync by construction.

## Development

```sh
uv sync                       # .venv with the package + dev dependencies
uv run pytest                 # unit + integration (integration runs real copier on this checkout)
uv run pytest -m "not integration"   # fast subset
uv run bestie list-features   # the CLI, against this checkout
```
