# PolicyEngine Core
[![codecov](https://codecov.io/gh/PolicyEngine/policyengine-core/branch/master/graph/badge.svg?token=BLoCjCf5Qr)](https://codecov.io/gh/PolicyEngine/policyengine-core)
[![PyPI version](https://badge.fury.io/py/policyengine-core.svg)](https://badge.fury.io/py/policyengine-core)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
This package, a fork of [OpenFisca-Core](https://github.com/OpenFisca/OpenFisca-Core), powers PolicyEngine country models and apps.
# Prerequisites
Python 3.10 or beyond is required.
# Setting Up
## 1. Fork the repo
```
https://github.com/PolicyEngine/policyengine-core/fork
```
## 2. Clone your own fork
## 3. Install dependencies
```
make install
```
If you are using Windows (not recommended), please install `make` first.
You can either directly download from [Make for Windows](https://gnuwin32.sourceforge.net/packages/make.htm);
or install [Chocolatey](https://chocolatey.org/install), and simply install `make` with
```
choco install make
```
(See **Acknowledgements** for credit)
# Contributing
## Choosing an Issue
All of our code changes are made against a GitHub issue. If you're new to the project, go to **Issues** and search for good first issues `label: "good first issue"`. If you see an open issue that no one's opened a PR against, it's all yours! Feel free to make some edits, then open a PR, as described below.
## Developing
Keep your fork's `master` branch in sync with the original repo by pulling the original repo's code at times; typically (if the original repo is called "upstream" by Git) this means running `git pull upstream master`, then `git push origin master` to sync the code to your local repo.
Create branches on your fork off of your master or main branch. Periodically, if you're working on something for a while, you might also run `git rebase master` within your feature branch to sync your code with any new changes.
## Testing, Formatting, Changelogging
You've finished your contribution, but now what? Before opening a PR, we ask contributors to do three things.
### Step 1: Testing
To test your changes against our series of automated tests, run
```
make test
```
We also ask that you add tests for any new features or bug-fixes you add, so we can gradually build up the code coverage. Our tests are written in the Python standard, [Pytest](https://docs.pytest.org/en/7.1.x/getting-started.html), and will be run again against the production environment, as well.
### Step 2: Formatting
In addition to the tests, we use [Black](https://github.com/psf/black) to lint our codebase, so before opening a pull request, Step 2 is to lint the code by running
```
make format
```
This will automatically format the code for you; no need to do anything else.
### Step 3: Changelogging
Finally, we ask contributors to make it clear for our users what changes have been made by contributing to a changelog. This changelog is formatted in YAML and describes the changes you've made to the code. This should follow the below format:
```
- bump: {major, minor, patch}
changes:
{added, removed, changed, fixed}:
- <variable or program>
```
For more info on the syntax, check out the [semantic versioning docs](https://www.semver.org) and [keep a changelog](https://www.keepachangelog.com).
Write your changelog info into the empty file called `changelog_entry.yaml`. When you open your PR, this will automatically be added to the overall changelog.
## Opening a Pull Request
Now you've finished your contribution! Please open a pull request (PR) from your branch to the live `master` branch and request review. At times, it may take some time for the team to review your PR, especially for larger contributions, so please be patient--we will be sure to get to it.
In the first line of your PR, please make sure to include the following:
```
Fixes {issue_number}
```
This makes it much easier for us to maintain and prune our issue board.
Please try to be detailed in your PRs about the changes you made and why you made them. You may find yourself looking back at them for reference in the future, or needing insight about someone else's changes. Save yourself a conversation and write it all in the PR!
Here are some [best practices](https://deepsource.io/blog/git-best-practices/) for using Git.
When you're ready for review, switch the PR from `Draft` to `Ready for review`.
# License
Distributed under the AGPL License. See `LICENSE` for more info.
# Acknowledgements
- Thanks to Othneil Drew for his [README template](https://github.com/othneildrew/Best-README-Template).
- [Installing make on Windows](https://stackoverflow.com/questions/32127524/how-to-install-and-use-make-in-windows)
Raw data
{
"_id": null,
"home_page": "https://github.com/policyengine/policyengine-core",
"name": "policyengine-core",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "tax benefit microsimulation framework",
"author": "PolicyEngine",
"author_email": "hello@policyengine.org",
"download_url": "https://files.pythonhosted.org/packages/b9/56/6624d19fe85634e70b321a1cd59a148373dfc34cbaaeb1ad97ec2ced956e/policyengine_core-3.16.1.tar.gz",
"platform": null,
"description": "# PolicyEngine Core\n\n[![codecov](https://codecov.io/gh/PolicyEngine/policyengine-core/branch/master/graph/badge.svg?token=BLoCjCf5Qr)](https://codecov.io/gh/PolicyEngine/policyengine-core)\n[![PyPI version](https://badge.fury.io/py/policyengine-core.svg)](https://badge.fury.io/py/policyengine-core)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\nThis package, a fork of [OpenFisca-Core](https://github.com/OpenFisca/OpenFisca-Core), powers PolicyEngine country models and apps.\n\n# Prerequisites\n\nPython 3.10 or beyond is required.\n\n# Setting Up\n\n## 1. Fork the repo\n\n```\nhttps://github.com/PolicyEngine/policyengine-core/fork\n```\n\n## 2. Clone your own fork\n\n## 3. Install dependencies\n\n```\nmake install\n```\n\nIf you are using Windows (not recommended), please install `make` first.\nYou can either directly download from [Make for Windows](https://gnuwin32.sourceforge.net/packages/make.htm); \nor install [Chocolatey](https://chocolatey.org/install), and simply install `make` with\n\n```\nchoco install make\n```\n\n(See **Acknowledgements** for credit)\n\n# Contributing\n\n## Choosing an Issue\n\nAll of our code changes are made against a GitHub issue. If you're new to the project, go to **Issues** and search for good first issues `label: \"good first issue\"`. If you see an open issue that no one's opened a PR against, it's all yours! Feel free to make some edits, then open a PR, as described below.\n\n## Developing\n\nKeep your fork's `master` branch in sync with the original repo by pulling the original repo's code at times; typically (if the original repo is called \"upstream\" by Git) this means running `git pull upstream master`, then `git push origin master` to sync the code to your local repo. \n\nCreate branches on your fork off of your master or main branch. Periodically, if you're working on something for a while, you might also run `git rebase master` within your feature branch to sync your code with any new changes.\n\n## Testing, Formatting, Changelogging\n\nYou've finished your contribution, but now what? Before opening a PR, we ask contributors to do three things.\n\n### Step 1: Testing\n\nTo test your changes against our series of automated tests, run\n\n```\nmake test\n```\n\nWe also ask that you add tests for any new features or bug-fixes you add, so we can gradually build up the code coverage. Our tests are written in the Python standard, [Pytest](https://docs.pytest.org/en/7.1.x/getting-started.html), and will be run again against the production environment, as well.\n\n### Step 2: Formatting\n\nIn addition to the tests, we use [Black](https://github.com/psf/black) to lint our codebase, so before opening a pull request, Step 2 is to lint the code by running\n\n```\nmake format\n```\n\nThis will automatically format the code for you; no need to do anything else.\n\n### Step 3: Changelogging\n\nFinally, we ask contributors to make it clear for our users what changes have been made by contributing to a changelog. This changelog is formatted in YAML and describes the changes you've made to the code. This should follow the below format:\n\n```\n- bump: {major, minor, patch}\n changes:\n {added, removed, changed, fixed}:\n - <variable or program>\n```\n\nFor more info on the syntax, check out the [semantic versioning docs](https://www.semver.org) and [keep a changelog](https://www.keepachangelog.com).\n\nWrite your changelog info into the empty file called `changelog_entry.yaml`. When you open your PR, this will automatically be added to the overall changelog.\n\n## Opening a Pull Request\n\nNow you've finished your contribution! Please open a pull request (PR) from your branch to the live `master` branch and request review. At times, it may take some time for the team to review your PR, especially for larger contributions, so please be patient--we will be sure to get to it.\n\nIn the first line of your PR, please make sure to include the following:\n\n```\nFixes {issue_number}\n```\n\nThis makes it much easier for us to maintain and prune our issue board.\n\nPlease try to be detailed in your PRs about the changes you made and why you made them. You may find yourself looking back at them for reference in the future, or needing insight about someone else's changes. Save yourself a conversation and write it all in the PR!\n\nHere are some [best practices](https://deepsource.io/blog/git-best-practices/) for using Git.\n\nWhen you're ready for review, switch the PR from `Draft` to `Ready for review`.\n\n# License\n\nDistributed under the AGPL License. See `LICENSE` for more info.\n\n# Acknowledgements\n\n- Thanks to Othneil Drew for his [README template](https://github.com/othneildrew/Best-README-Template).\n- [Installing make on Windows](https://stackoverflow.com/questions/32127524/how-to-install-and-use-make-in-windows)\n",
"bugtrack_url": null,
"license": "https://www.fsf.org/licensing/licenses/agpl-3.0.html",
"summary": "Core microsimulation engine enabling country-specific policy models.",
"version": "3.16.1",
"project_urls": {
"Homepage": "https://github.com/policyengine/policyengine-core"
},
"split_keywords": [
"tax",
"benefit",
"microsimulation",
"framework"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "15631df0bb1021ca1658fdbb4c62cfaea21c6122364f32335520919e9d1c693d",
"md5": "350db3031ea5201153ba2357be5bfaa3",
"sha256": "e0e3dc6122deabba8387c00ea0a3c100f6a056eed31191bffdf2dfccf0322960"
},
"downloads": -1,
"filename": "policyengine_core-3.16.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "350db3031ea5201153ba2357be5bfaa3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 218897,
"upload_time": "2024-12-20T12:57:54",
"upload_time_iso_8601": "2024-12-20T12:57:54.256827Z",
"url": "https://files.pythonhosted.org/packages/15/63/1df0bb1021ca1658fdbb4c62cfaea21c6122364f32335520919e9d1c693d/policyengine_core-3.16.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b9566624d19fe85634e70b321a1cd59a148373dfc34cbaaeb1ad97ec2ced956e",
"md5": "5092889db7718440de4e7f144fca9815",
"sha256": "497f30940f5a1bd3d386b05000e879eaa7dcf28cdeaf32b89f543c0ab9af66ab"
},
"downloads": -1,
"filename": "policyengine_core-3.16.1.tar.gz",
"has_sig": false,
"md5_digest": "5092889db7718440de4e7f144fca9815",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 157539,
"upload_time": "2024-12-20T12:57:57",
"upload_time_iso_8601": "2024-12-20T12:57:57.046418Z",
"url": "https://files.pythonhosted.org/packages/b9/56/6624d19fe85634e70b321a1cd59a148373dfc34cbaaeb1ad97ec2ced956e/policyengine_core-3.16.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-20 12:57:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "policyengine",
"github_project": "policyengine-core",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "policyengine-core"
}