跳转到主要内容

模拟对法国行政区域的年度国家拨款

项目描述

leximpact-dotations-back

此存储库专用于计算国家对领土的拨款。它提供了一个Web API,特别满足leximpact-dotations-ui中定义的界面需求。

先决条件

此存储库要求使用Python 3.11版本的Python语言。它使用Poetry依赖关系和打包管理器。

使用pyenv管理Python多个版本

如果您本地环境已存在其他Python版本,您可以使用pyenv为该存储库定义一个特定的Python版本。

命令为 pyenv install 3.11 然后跟 pyenv local 3.11

要在终端Shell中将所选语言版本关联到Poetry创建的隔离环境,请执行以下命令

poetry env use python3.11

安装leximpact-dotations-back

检查与Poetry关联的Python版本是否为预期版本

poetry run python --version
# résultat attendu : Python 3.11.x

要为此存储库安装依赖项,请在终端Shell中执行以下命令

poetry install

这将创建一个虚拟环境。
如果想要查看活动环境,它将显示在现有环境中。此命令可列出它们

poetry env list

在本地执行leximpact-dotations-back

运行 leximpact-dotations-back 相当于通过以下命令执行其Web API

poetry run fastapi dev leximpact_dotations_back/main.py

API现在可通过以下本地地址访问:http://127.0.0.1:8000。其文档自动生成,可通过以下地址访问:http://127.0.0.1:8000/docs

运行测试

要检查单元测试的结果,请执行以下命令

poetry run pytest

可以使用-s选项显示print的结果。以下是一个测试文件的示例

poetry run pytest tests/2022/test_criteres_2022_2024.py -s

此外,leximpact_dotations_back的跟踪由logging库管理。如果希望在测试执行期间显示这些跟踪,请执行以下命令(此处为DEBUG级别的消息)

poetry run pytest --log-cli-level=DEBUG

调整代码风格

使用flake8检查代码风格

poetry run flake8

或检查您添加的代码风格

poetry run flake8 `git ls-files | grep "\.py"`

然后在当前目录及其递归内容中自动修复

poetry run autopep8 .

此命令的递归性仅在将其配置为autopep8并在pyproject.toml文件中时生效。

数据

地方政权总局(DGCL)以开放数据的形式发布分配的分配标准。这些数据每年都会更新。

2024年数据

为了计算2024年的分配,leximpact-dotations-back使用文件criteres_repartition_2024.csv。该文件按照以下步骤获得

  1. 下载官方网站上的criteres_repartition_csv.php-6.xlsx文件作为市的分配标准
  2. 在电子表格(LibreOffice)中打开.xlsx文件
  3. 分配标准选项卡导出为.csv格式,保存在data/raw/criteres_repartition_2024_raw.csv
  4. 然后使用以下命令读取criteres_repartition_2024_raw.csv以生成最终的criteres_repartition_2024.csv文件
    poetry run python data/raw/data_cleanup.py
    

项目详情


下载文件

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

源分布

此版本没有提供源分布文件。请参阅生成分布存档的教程。

构建分布

leximpact_dotations_back-0.2.3-py3-none-any.whl (27.4 kB 查看哈希值)

上传时间 Python 3

由以下支持

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