Serve household reports at /v2/reports

未关闭
#4,131 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 2 天内回复

@anth-volk 已经在做这个了。

开始于 2026年10月29日。

  • #4132 来自 @anth-volk —— 未关闭

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
python
领域
api, backend

调研方向

Start by tracing the existing economy report routes and simulation service flow for POST /v2/reports, report reads, reruns, and saved reports. Then follow the household and policy validation paths described in the issue, including country checks and default-year handling. Done means household reports can be created, read, rerun, and saved by ID, including for household-only countries, while the specified invalid requests are rejected.

由索引模型根据 Issue 内容生成。

描述

What

Add the household kind of /v2/reports. A household report calculates a household stored through /v2/households under a baseline policy and an optional reform policy, each a stored /v2/policies policy or current law, for the household's default year. The simulation service calculates and stores it, as it does economy reports.

  • POST /v2/reports accepts kind: "household" with the household and the policies.
  • GET /v2/reports/{report_id} and GET /v2/reports?report_id=… read household reports beside economy reports.
  • POST /v2/reports/{report_id}/runs runs a household report again, with force to recalculate.
  • Saved reports (/v2/user-reports) accept household report IDs.

It works for any country whose countries row has household_enabled, including a household-only country, where economy reports are refused with 422.

Why

The newer app interface needs persisted, shareable household reports with their own IDs once it moves to the v2 routes, and the economy kind of /v2/reports cannot hold a household. Before asking the simulation service, the Public API checks what it decides itself: that the country has household calculations, that the household and policies are the country's, and that the household has a default year. The simulation service reads the household and policies from the Public API's tables itself, so the Public API sends only their IDs.

主要语言
Python
星标
18
派生
33
平均合并
2 天 21 小时
30 天内合并 PR
93

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

PolicyEngine/policyengine-api 的其他 Issue

查看 PolicyEngine/policyengine-api 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。