Metadata-Version: 2.1
Name: openfisca-extension_template
Version: 2.0.0
Summary: An OpenFisca extension that adds some variables to an already-existing tax and benefit system.
Home-page: https://openfisca.org
License: AGPL-3.0-only
Keywords: microsimulation,tax,benefit,rac,rules-as-code
Author: OpenFisca Team
Author-email: contact@openfisca.org
Maintainer: OpenFisca Team
Maintainer-email: contact@openfisca.org
Requires-Python: >=3.9,<3.12
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Provides-Extra: ci
Provides-Extra: dev
Provides-Extra: md
Requires-Dist: codespell (>=2.3.0,<3.0.0) ; extra == "dev"
Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "dev"
Requires-Dist: mdformat-footnote (>=0.1.1,<0.2.0) ; extra == "md"
Requires-Dist: mdformat-frontmatter (>=2.0.8,<3.0.0) ; extra == "md"
Requires-Dist: mdformat-gfm (>=0.3.6,<0.4.0) ; extra == "md"
Requires-Dist: mdformat-gfm-alerts (>=1.0.1,<2.0.0) ; extra == "md"
Requires-Dist: openfisca-country_template (>=7.1.8)
Requires-Dist: ruff (>=0.6.9,<0.7.0) ; extra == "dev"
Requires-Dist: ruff-lsp (>=0.0.57,<0.0.58) ; extra == "dev"
Requires-Dist: twine (>=5.1.1,<6.0.0) ; extra == "ci"
Requires-Dist: yamllint (>=1.35.1,<2.0.0) ; extra == "dev"
Project-URL: Documentation, https://openfisca.org/doc
Project-URL: Repository, https://github.com/openfisca/extension-template
Description-Content-Type: text/markdown

# OpenFisca Extension-Template

This repository is here to help you bootstrap your own OpenFisca
[extension](http://openfisca.org/doc/contribute/extensions.html) package.

**You should NOT fork it but
[download a copy](https://github.com/openfisca/extension-template/archive/master.zip)
of its source code** and

- change the name `openfisca_extension_template` to reflect your extension's
  name, e.g. `openfisca_shangrila`
- empty out CHANGELOG.md
- replace the placeholders variables and parameters to suit your own purposes

## Installing

> We recommend you to use an [isolated](https://pypi.org/project/pipx/)
> environment manager to manage build and extension dependencies separately:

```sh
pipx install poetry
pipx install tox
```

### Virtualenv

`Poetry` will automatically manage a virtual environment for you. Nonetheless,
if you need to have more control over your dependencies, we recommend you to
use a [virtualenv](https://github.com/pyenv/pyenv-virtualenv):

> manager to install OpenFisca:

```sh
poetry config settings.virtualenvs.create false
pyenv install 3.9.16
pyenv virtualenv 3.9.16 my-super-duper-extension-3.9.16
cd ~/path/where/is/my-super-duper-extension-3.9.16
pyenv local my-super-duper-extension-3.9.16
```

To install your extension for development, run:

```sh
poetry install --all-extras --sync
```

## Testing

You can make sure that everything is working by running the provided tests:

```sh
poetry run openfisca test --country-package=openfisca_country_template --extensions=openfisca_extension_template openfisca_extension_template/tests
```

> [Learn more about tests](http://openfisca.org/doc/coding-the-legislation/writing_yaml_tests.html).

Your extension package is now installed and ready!

## Cleanup

To completely clean up your environment, run:

```sh
poetry env remove --all
pip freeze | grep -v "^-e" | sed "s/@.*//" | xargs pip uninstall -y
```

This will remove all pip package from current environment and remove all Poetry
environment in OpenFisca Extension-Template.

