跳转到主要内容

OpenFisca规则作为代码模型的国家模板。

项目描述

OpenFisca 国家模板

此仓库帮助您快速搭建和使用您自己的 OpenFisca 国家包。

您不应该分叉它 而应遵循以下搭建说明。

否则,在部署您自己的国家包时,您将不得不清理所有标签。

搭建您的国家包

这套说明只需遵循一次,并将创建此模板目录的副本,根据您想要工作的国家进行定制。您需要已安装 Git

使用 GitHub(推荐给 GitHub 用户)

  1. 点击 “使用此模板”下拉菜单并选择“创建新仓库”

  2. 将仓库名称设置为 openfisca-<your_country_name>;如果国家名称中包含空格,请使用下划线 _ 作为分隔符。例如,openfisca-new_zealandopenfisca-france

  3. 在重定向到您新创建的仓库后,请等待几分钟,以执行自动设置。完成后,README 文件的标题应更新为 OpenFisca <your_country_name>

如果自动设置在几分钟内没有开始,您可以手动启动它

  • 导航到“操作”选项卡。
  • 选择“首次设置”工作流程。
  • 点击“运行工作流程”以手动启动设置过程。
  1. 遵循新仓库 README.md 中的说明。

手动设置(推荐给其他 Git 主机用户)

  1. 下载此仓库的副本,解压缩并在终端窗口中 cd 进入。

  2. 在您最喜欢的 Git 主机(Bitbucket、GitLab 等)上创建一个名为 openfisca-<your_country_name> 的新仓库。例如,openfisca-new_zealandopenfisca-france

  3. 执行 first-time-setup.sh 脚本以初始化 Git 仓库。这执行了包括将所有对 openfisca-country_template 的引用替换为新国家包引用在内的多项任务。

    • 要从命令行执行脚本,请运行 bash first-time-setup.sh
    • first-time-setup.sh 运行后,将删除它和这些说明。
  4. 遵循新仓库的 README.md 中的说明。

编写立法

此处模拟法律的国家有一个非常简单的税收和福利体系。

  • 它有一个固定税率,税率每年都在增加。
  • 2015年12月1日,它为所有没有收入年龄的公民引入了基本收入。
  • 2016年12月1日,它取消了收入条件,为所有成年公民提供基本收入。

这些元素在不同的文件夹中描述。所有建模都在 openfisca_country_template 文件夹内进行。

  • 税率在 parameters 文件夹中。
  • 公式在 variables 文件夹中。
  • 此国家包还包含 reforms 文件夹中的 改革。这是可选的:您的国家可能不存在,不需要定义任何改革。
    • 在这个国家,有一个改革项目,旨在修改社会保障税制,删除第一个档次,提高中间档次,并为收入超过 40000 的人添加一个新的档次,该档次税率为 40%。此改革项目将从 2017-01-01 开始生效。

位于openfisca_country_template文件夹之外的文件用于设置开发环境。

打包国家包以进行分发

国家包是Python发行版。您可以选择通过GitHub Actions上的预定义持续部署系统自动分发您的包,或者手动分发。

GitHub上的自动持续部署

此存储库已配置了持续部署系统,以自动化通过pip分发您的包。

设置持续部署

要激活持续部署

  1. 如果您还没有,请在PyPI上创建一个账户。
  2. 在您的PyPI账户中生成一个令牌。此令牌将允许GitHub Actions安全地上传新版本的包到PyPI。
  3. 将此令牌添加到您的GitHub仓库的secret中,名称为PYPI_TOKEN

一旦设置完成,对main分支的更改将触发一个自动工作流程,构建并发布您的包到PyPI,使其可以通过pip安装。

手动分发

如果您希望手动管理包的发布和分发,请遵循Python包装权威机构提供的指南。

这包括准备您的包、创建分发文件并将它们上传到PyPI的详细步骤。

用户和贡献者的安装说明

此包需要Python 3.11。较新版本可能也可以工作,但尚未测试。

所有可以执行Python的平台都受支持,包括GNU/Linux、macOS和Microsoft Windows。

使用venv设置虚拟环境

为了限制依赖项冲突,我们建议使用虚拟环境(venv)。

  • venv是针对您正在工作的项目需求创建的项目特定环境。

要创建虚拟环境,请在您的计算机上启动一个终端,进入您的目录,然后按照以下说明操作

python3 -m venv .venv # create a new virtual environment in the “.venv” folder, which will contain all dependencies
source .venv/bin/activate # activate the venv

您现在可以在您刚刚创建的venv中操作。

您可以通过deactivate在任何时候停用该venv。

:tada: 您现在已准备好安装此OpenFisca国家包了!

有两种安装程序可供选择。根据您计划如何使用此国家包,选择以下A或B程序。

A. 最小安装(Pip安装)

如果您希望

  • 在大型人口上运行计算;
  • 创建税务和福利模拟;
  • 为此立法编写扩展(例如,城市特定的税务和福利);
  • 通过OpenFisca Web API提供您的国家包。

对于更高级的使用,请参阅高级安装

使用Pip安装此国家包

在您的venv中,检查先决条件

python --version  # should print "Python 3.11.xx".
pip --version  # should print at least 9.0.
# if not, run "pip install --upgrade pip"

安装国家包

pip install openfisca-country_template

:warning: 请注意,使用pip安装国家包取决于其维护者发布此包。

:tada: 此OpenFisca国家包现已安装并准备好使用!

下一步

  • 要了解如何使用OpenFisca,请参阅我们的教程
  • 要提供此国家包,请提供OpenFisca Web API

根据您对OpenFisca的使用情况,您可能还需要在venv中安装其他包。

  • 要安装扩展或在国家包之上编写代码,请前往扩展文档
  • 要绘制模拟结果,尝试使用matplotlib
  • 要管理数据,查看pandas

B. 高级安装(Git克隆)

如果您想

  • 创建或修改此国家包的法规;
  • 贡献源代码。

使用Git克隆此国家包

首先,确保您的计算机上已安装Git

将您的工作目录设置为希望克隆此OpenFisca国家包的位置。

在您的venv中,检查先决条件

python --version  # should print "Python 3.11.xx".

在您的计算机上克隆此国家包

git clone https://example.com/repository.git
cd repository_folder
pip install --upgrade pip build twine
pip install --editable .[dev] --upgrade

您可以通过运行提供的测试(使用make test)来确保一切正常。

了解更多关于测试的信息

:tada: 此OpenFisca国家包现已安装并准备好使用!

下一步

  • 要编写新的法规,请阅读编写法规部分以了解如何编写法规。
  • 要为代码做出贡献,请阅读我们的贡献指南

使用OpenFisca Web API提供此国家包

如果您正在考虑构建Web应用程序,您可以使用包装好的OpenFisca Web API与您的国家包一起使用。

要本地提供Openfisca Web API,运行

openfisca serve --port 5000 --country-package openfisca_country_template

或使用快速启动Make命令

make serve-local

要了解更多关于openfisca serve命令的信息,请参阅其文档

您可以通过请求来确保您的API实例正在运行

curl "http://localhost:5000/spec"

此端点返回您API的Open API规范

:tada: 此OpenFisca国家包现在由OpenFisca Web API提供服务!要了解更多信息,请访问OpenFisca Web API文档

您可以通过发送位于situation_examples文件夹中的示例JSON数据来测试您的新Web API。

curl -X POST -H "Content-Type: application/json" \
  -d @./openfisca_country_template/situation_examples/couple.json \
  http://localhost:5000/calculate

项目详情


版本历史 发布通知 | RSS源

下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源代码分发

openfisca_country_template-7.1.5.tar.gz (34.3 kB 查看散列值)

上传时间 源代码

构建分发

openfisca_country_template-7.1.5-py3-none-any.whl (44.9 kB 查看散列值)

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面