From 35e236c7df470eff9ae46396d494823140c1f020 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 22 Dec 2025 15:01:35 -0500 Subject: [PATCH 1/4] Childcare subsidy programs should use *_before_lsr income variables to avoid LSR circular dependency Fixes #7024 --- changelog_entry.yaml | 5 +++ .../expense/childcare/subsidy_programs.yaml | 14 ++++++++ .../co/ccap/income/countable_sources.yaml | 26 +++++++++++++++ .../states/nc/ncdhhs/scca/income/sources.yaml | 32 ++++++++++--------- .../income/countable_sources.yaml | 22 +++++++++++++ .../ca_calworks_child_care_integration.yaml | 6 ++-- .../ca_calworks_child_care_eligible.yaml | 6 ++-- ...rks_child_care_meets_work_requirement.yaml | 6 ++-- .../ncdhhs/scca/nc_scca_countable_income.yaml | 8 ++--- .../ne_child_care_subsidy.yaml | 8 ++--- ...ne_child_care_subsidy_income_eligible.yaml | 6 ++-- .../expense/childcare/childcare_expenses.yaml | 16 ++++++++++ .../earned_income/earned_income_before_lsr.py | 17 ++++++++++ ...works_child_care_meets_work_requirement.py | 2 +- .../co/ccap/co_ccap_countable_income.py | 8 ++--- .../ne_child_care_subsidy.py | 2 +- .../ne_child_care_subsidy_countable_income.py | 13 ++++++++ .../ne_child_care_subsidy_income_eligible.py | 2 +- .../snap_dependent_care_deduction.py | 9 +++--- .../expense/childcare/childcare_expenses.py | 15 +++------ 20 files changed, 165 insertions(+), 58 deletions(-) create mode 100644 policyengine_us/parameters/gov/household/expense/childcare/subsidy_programs.yaml create mode 100644 policyengine_us/parameters/gov/states/co/ccap/income/countable_sources.yaml create mode 100644 policyengine_us/parameters/gov/states/ne/dhhs/child_care_subsidy/income/countable_sources.yaml create mode 100644 policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/earned_income/earned_income_before_lsr.py create mode 100644 policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_countable_income.py diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb2d..37450f43bcc 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,5 @@ +- bump: patch + changes: + fixed: + - Updated CA CalWORKs, CO CCAP, NE Child Care, and NC SCCA to use *_before_lsr income variables to avoid circular dependency issues in microsimulation. + - SNAP dependent care deduction now uses childcare_expenses (net of subsidies) instead of pre_subsidy_childcare_expenses. diff --git a/policyengine_us/parameters/gov/household/expense/childcare/subsidy_programs.yaml b/policyengine_us/parameters/gov/household/expense/childcare/subsidy_programs.yaml new file mode 100644 index 00000000000..3435909b8e3 --- /dev/null +++ b/policyengine_us/parameters/gov/household/expense/childcare/subsidy_programs.yaml @@ -0,0 +1,14 @@ +description: States with modeled child care subsidy programs that reduce out-of-pocket childcare expenses. +values: + 2020-01-01: + # With this list parameter, we don't need the wrapper variables anymore. Keep existing ones for API partner + - ca_child_care_subsidies + - co_child_care_subsidies + - ma_child_care_subsidies + - nc_scca + - ne_child_care_subsidies + +metadata: + unit: list + period: year + label: Child care subsidy programs diff --git a/policyengine_us/parameters/gov/states/co/ccap/income/countable_sources.yaml b/policyengine_us/parameters/gov/states/co/ccap/income/countable_sources.yaml new file mode 100644 index 00000000000..5766af7fe93 --- /dev/null +++ b/policyengine_us/parameters/gov/states/co/ccap/income/countable_sources.yaml @@ -0,0 +1,26 @@ +description: Colorado includes these income sources as countable income under the Child Care Assistance Program. +values: + 2020-01-01: + # Earned income (before LSR to avoid circular dependency) + - employment_income_before_lsr + - self_employment_income_before_lsr + # Unearned income + - social_security + - pension_income + - veterans_benefits + - dividend_income + - interest_income + - rental_income + - alimony_income + - child_support_received + # Excluded per 3.111(J): SSI, children's earnings + +metadata: + unit: list + period: year + label: Colorado CCAP countable income sources + reference: + - title: 8 CCR 1403-1-3.111(I) - Income Inclusions + href: https://www.sos.state.co.us/CCR/GenerateRulePdf.do?ruleVersionId=11042&fileName=8%20CCR%201403-1#page=23 + - title: 1400 CO Code Regs 8 CCR 1403-1-3.111 + href: https://regulations.justia.com/states/colorado/1400/1403/rule-8-ccr-1403-1/applicant-rights/section-8-ccr-1403-1-3-111/ diff --git a/policyengine_us/parameters/gov/states/nc/ncdhhs/scca/income/sources.yaml b/policyengine_us/parameters/gov/states/nc/ncdhhs/scca/income/sources.yaml index 6047622a5ab..ccd4f5c97e5 100644 --- a/policyengine_us/parameters/gov/states/nc/ncdhhs/scca/income/sources.yaml +++ b/policyengine_us/parameters/gov/states/nc/ncdhhs/scca/income/sources.yaml @@ -2,21 +2,23 @@ description: North Carolina counts these sources as gross income for its Subsidi values: 2024-08-01: - - employment_income - - self_employment_income - - pension_income - - veterans_benefits - - unemployment_compensation - - disability_benefits - - workers_compensation - - social_security - - retirement_distributions - - rental_income - - child_support_received - - alimony_income - - dividend_income - - interest_income - - miscellaneous_income + # Earned income (before LSR to avoid circular dependency) + - employment_income_before_lsr + - self_employment_income_before_lsr + # Unearned income + - pension_income + - veterans_benefits + - unemployment_compensation + - disability_benefits + - workers_compensation + - social_security + - retirement_distributions + - rental_income + - child_support_received + - alimony_income + - dividend_income + - interest_income + - miscellaneous_income metadata: unit: list diff --git a/policyengine_us/parameters/gov/states/ne/dhhs/child_care_subsidy/income/countable_sources.yaml b/policyengine_us/parameters/gov/states/ne/dhhs/child_care_subsidy/income/countable_sources.yaml new file mode 100644 index 00000000000..aac7d6d3388 --- /dev/null +++ b/policyengine_us/parameters/gov/states/ne/dhhs/child_care_subsidy/income/countable_sources.yaml @@ -0,0 +1,22 @@ +description: Nebraska includes these income sources as countable income under the Child Care Subsidy Program. +values: + 2021-01-01: + # Earned income (before LSR to avoid circular dependency) + - employment_income_before_lsr + - self_employment_income_before_lsr + # Unearned income per NAC 392-2-010 + - social_security + - child_support_received + - unemployment_compensation + - pension_income + - alimony_income + # Excluded per NAC 392-2-010: children's earnings (age 18 or younger in school), + # Title I WIOA program income + +metadata: + unit: list + period: year + label: Nebraska Child Care Subsidy countable income sources + reference: + - title: NAC 392-2-010 - Income + href: https://dhhs.ne.gov/Guidance%20Docs/Title%20392%20-%20Child%20Care%20Subsidy.pdf diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/ca_calworks_child_care_integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/ca_calworks_child_care_integration.yaml index 2c62793901d..d06a7741214 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/ca_calworks_child_care_integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/ca_calworks_child_care_integration.yaml @@ -5,7 +5,7 @@ parent: is_child: false ca_calworks_child_care_welfare_to_work: 0 - earned_income: 0 + earned_income_before_lsr: 0 child: is_child: true age: 12 @@ -28,7 +28,7 @@ parent: is_child: false ca_calworks_child_care_welfare_to_work: 0 - earned_income: 1 + earned_income_before_lsr: 1 child1: is_child: true age: 3 @@ -55,7 +55,7 @@ parent: is_child: false ca_calworks_child_care_welfare_to_work: 1 - earned_income: 0 + earned_income_before_lsr: 0 child: is_child: true age: 12 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_eligible.yaml index 019a1d5a81e..99580823fd4 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_eligible.yaml @@ -48,10 +48,10 @@ - name: Integration test - every person has to be eligible based on immigration status period: 2023 input: - people: + people: person1: immigration_status: CITIZEN - earned_income: 1_000 + earned_income_before_lsr: 1_000 person2: immigration_status: ASYLEE age: 2 @@ -72,7 +72,7 @@ people: person1: immigration_status: UNDOCUMENTED - earned_income: 1_000 + earned_income_before_lsr: 1_000 person2: immigration_status: ASYLEE age: 2 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_meets_work_requirement.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_meets_work_requirement.yaml index ae138e7246a..39df97b0e4c 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_meets_work_requirement.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_meets_work_requirement.yaml @@ -4,7 +4,7 @@ people: person: ca_calworks_child_care_welfare_to_work: 0 - earned_income: 1_000 + earned_income_before_lsr: 1_000 households: household: members: [person] @@ -18,7 +18,7 @@ people: person: ca_calworks_child_care_welfare_to_work: 20 - earned_income: 0 + earned_income_before_lsr: 0 households: household: members: [person] @@ -32,7 +32,7 @@ people: person: ca_calworks_child_care_welfare_to_work: 0 - earned_income: 0 + earned_income_before_lsr: 0 households: household: members: [person] diff --git a/policyengine_us/tests/policy/baseline/gov/states/nc/ncdhhs/scca/nc_scca_countable_income.yaml b/policyengine_us/tests/policy/baseline/gov/states/nc/ncdhhs/scca/nc_scca_countable_income.yaml index a4fec09c606..c2e9d4efae3 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/nc/ncdhhs/scca/nc_scca_countable_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/nc/ncdhhs/scca/nc_scca_countable_income.yaml @@ -2,8 +2,8 @@ period: 2024 input: state_code: NC - employment_income: 0 - self_employment_income: 0 + employment_income_before_lsr: 0 + self_employment_income_before_lsr: 0 pension_income: 0 veterans_benefits: 0 unemployment_compensation: 0 @@ -24,8 +24,8 @@ period: 2024 input: state_code: NC - employment_income: 1_000 - self_employment_income: 1_000 + employment_income_before_lsr: 1_000 + self_employment_income_before_lsr: 1_000 pension_income: 1_000 veterans_benefits: 1_000 unemployment_compensation: 1_000 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy.yaml b/policyengine_us/tests/policy/baseline/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy.yaml index a0a17b141d5..98629558dbf 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy.yaml @@ -4,7 +4,7 @@ ne_child_care_subsidy_eligible: true spm_unit_pre_subsidy_childcare_expenses: 50 spm_unit_fpg: 100 - spm_unit_net_income: 100 + ne_child_care_subsidy_countable_income: 100 state_code: NE output: ne_child_care_subsidy: 50 @@ -15,7 +15,7 @@ ne_child_care_subsidy_eligible: true spm_unit_pre_subsidy_childcare_expenses: 50 spm_unit_fpg: 100 - spm_unit_net_income: 200 + ne_child_care_subsidy_countable_income: 200 state_code: NE output: ne_child_care_subsidy: 36 # 50 - 0.07 * 200 @@ -26,7 +26,7 @@ ne_child_care_subsidy_eligible: true spm_unit_pre_subsidy_childcare_expenses: 50 spm_unit_fpg: 100 - spm_unit_net_income: 2_000 + ne_child_care_subsidy_countable_income: 2_000 state_code: NE output: ne_child_care_subsidy: 0 # 50 - 0.07 * 2000 < 0 @@ -37,7 +37,7 @@ ne_child_care_subsidy_eligible: false spm_unit_pre_subsidy_childcare_expenses: 50 spm_unit_fpg: 100 - spm_unit_net_income: 100 + ne_child_care_subsidy_countable_income: 100 state_code: NE output: ne_child_care_subsidy: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_income_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_income_eligible.yaml index 430cc553421..27fd58a0e0f 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_income_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_income_eligible.yaml @@ -2,7 +2,7 @@ period: 2024 input: spm_unit_fpg: 100 - adjusted_gross_income: 185 + ne_child_care_subsidy_countable_income: 185 state_code: NE output: ne_child_care_subsidy_income_eligible: true @@ -11,7 +11,7 @@ period: 2024 input: spm_unit_fpg: 100 - adjusted_gross_income: 183 + ne_child_care_subsidy_countable_income: 183 state_code: NE output: ne_child_care_subsidy_income_eligible: true @@ -20,7 +20,7 @@ period: 2024 input: spm_unit_fpg: 100 - adjusted_gross_income: 186 + ne_child_care_subsidy_countable_income: 186 state_code: NE output: ne_child_care_subsidy_income_eligible: false diff --git a/policyengine_us/tests/policy/baseline/household/expense/childcare/childcare_expenses.yaml b/policyengine_us/tests/policy/baseline/household/expense/childcare/childcare_expenses.yaml index 5aeed040549..bbca4047f12 100644 --- a/policyengine_us/tests/policy/baseline/household/expense/childcare/childcare_expenses.yaml +++ b/policyengine_us/tests/policy/baseline/household/expense/childcare/childcare_expenses.yaml @@ -13,3 +13,19 @@ co_child_care_subsidies: 25 output: childcare_expenses: 0 + +- name: NC SCCA subsidy (annual) + period: 2024 + input: + pre_subsidy_childcare_expenses: 1_200 + nc_scca: 600 # Annual subsidy amount + output: + childcare_expenses: 600 # 1_200 - 600 = 600 + +- name: NC SCCA subsidy (monthly) + period: 2024-01 + input: + pre_subsidy_childcare_expenses: 1_200 # Annual input + nc_scca: 600 # Annual input + output: + childcare_expenses: 50 # Monthly: (1_200 - 600) / 12 = 50 diff --git a/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/earned_income/earned_income_before_lsr.py b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/earned_income/earned_income_before_lsr.py new file mode 100644 index 00000000000..a82dd1880e0 --- /dev/null +++ b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/earned_income/earned_income_before_lsr.py @@ -0,0 +1,17 @@ +from policyengine_us.model_api import * + + +class earned_income_before_lsr(Variable): + value_type = float + entity = Person + label = "Earned income (before labor supply response)" + unit = USD + documentation = ( + "Income from wages or self-employment, before behavioral responses" + ) + definition_period = YEAR + + adds = [ + "employment_income_before_lsr", + "self_employment_income_before_lsr", + ] diff --git a/policyengine_us/variables/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_meets_work_requirement.py b/policyengine_us/variables/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_meets_work_requirement.py index 3a1c8f13f6f..9d664d4122f 100644 --- a/policyengine_us/variables/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_meets_work_requirement.py +++ b/policyengine_us/variables/gov/states/ca/cdss/tanf/child_care/eligibility/ca_calworks_child_care_meets_work_requirement.py @@ -14,6 +14,6 @@ def formula(spm_unit, period, parameters): welfare_to_work = person( "ca_calworks_child_care_welfare_to_work", period ) - earned = person("earned_income", period) + earned = person("earned_income_before_lsr", period) eligible_person = (welfare_to_work + earned) > 0 return spm_unit.any(eligible_person) diff --git a/policyengine_us/variables/gov/states/co/ccap/co_ccap_countable_income.py b/policyengine_us/variables/gov/states/co/ccap/co_ccap_countable_income.py index e5478338ba8..ed1f10dee67 100644 --- a/policyengine_us/variables/gov/states/co/ccap/co_ccap_countable_income.py +++ b/policyengine_us/variables/gov/states/co/ccap/co_ccap_countable_income.py @@ -5,8 +5,8 @@ class co_ccap_countable_income(Variable): value_type = float entity = SPMUnit definition_period = MONTH - label = "Colorado Child Care Assitance Program Countable Income" - reference = "https://www.sos.state.co.us/CCR/GenerateRulePdf.do?ruleVersionId=11042&fileName=8%20CCR%201403-1#page=22" + label = "Colorado Child Care Assistance Program Countable Income" + reference = "https://regulations.justia.com/states/colorado/1400/1403/rule-8-ccr-1403-1/applicant-rights/section-8-ccr-1403-1-3-111/" unit = USD - # TODO: Use income components from the manual. - adds = ["snap_earned_income", "snap_unearned_income"] + + adds = "gov.states.co.ccap.income.countable_sources" diff --git a/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy.py b/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy.py index 9e1441c39d1..94c7f32bed1 100644 --- a/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy.py +++ b/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy.py @@ -14,7 +14,7 @@ def formula(spm_unit, period, parameters): childcare_expenses = spm_unit( "spm_unit_pre_subsidy_childcare_expenses", period ) - income = spm_unit("spm_unit_net_income", period) + income = spm_unit("ne_child_care_subsidy_countable_income", period) fpg = spm_unit("spm_unit_fpg", period) fpg_fraction = fpg * p.fpg_fraction.fee_free_limit income_above_fpg_fraction = income > fpg_fraction diff --git a/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_countable_income.py b/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_countable_income.py new file mode 100644 index 00000000000..17a2e640e52 --- /dev/null +++ b/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_countable_income.py @@ -0,0 +1,13 @@ +from policyengine_us.model_api import * + + +class ne_child_care_subsidy_countable_income(Variable): + value_type = float + entity = SPMUnit + label = "Nebraska Child Care Subsidy countable income" + unit = USD + definition_period = YEAR + reference = "https://dhhs.ne.gov/Guidance%20Docs/Title%20392%20-%20Child%20Care%20Subsidy.pdf" + defined_for = StateCode.NE + + adds = "gov.states.ne.dhhs.child_care_subsidy.income.countable_sources" diff --git a/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_income_eligible.py b/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_income_eligible.py index 3656434aeb9..9ac7ee04912 100644 --- a/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_income_eligible.py +++ b/policyengine_us/variables/gov/states/ne/dhhs/child_care_subsidy/ne_child_care_subsidy_income_eligible.py @@ -16,7 +16,7 @@ def formula(spm_unit, period, parameters): p = parameters( period ).gov.states.ne.dhhs.child_care_subsidy.fpg_fraction - income = add(spm_unit, period, ["adjusted_gross_income"]) + income = spm_unit("ne_child_care_subsidy_countable_income", period) fpg = spm_unit("spm_unit_fpg", period) income_limit = fpg * p.initial_eligibility return income <= income_limit diff --git a/policyengine_us/variables/gov/usda/snap/income/deductions/snap_dependent_care_deduction.py b/policyengine_us/variables/gov/usda/snap/income/deductions/snap_dependent_care_deduction.py index 4422d0a6050..c1b358f74c0 100644 --- a/policyengine_us/variables/gov/usda/snap/income/deductions/snap_dependent_care_deduction.py +++ b/policyengine_us/variables/gov/usda/snap/income/deductions/snap_dependent_care_deduction.py @@ -10,8 +10,7 @@ class snap_dependent_care_deduction(Variable): definition_period = MONTH reference = "https://www.law.cornell.edu/uscode/text/7/2014#e_3" - # Use pre-subsidy expenses to avoid circular dependency - # (childcare subsidies depend on income, which would create a - # circular dependency if SNAP deductions depended on subsidized - # childcare expenses). - adds = ["pre_subsidy_childcare_expenses"] + # Use childcare_expenses (net of subsidies) - this is policy-correct + # as families should only deduct expenses they actually pay. + # Childcare subsidies use *_before_lsr income to avoid LSR cycle. + adds = ["childcare_expenses"] diff --git a/policyengine_us/variables/household/expense/childcare/childcare_expenses.py b/policyengine_us/variables/household/expense/childcare/childcare_expenses.py index d0771598c7d..018ee5b69b7 100644 --- a/policyengine_us/variables/household/expense/childcare/childcare_expenses.py +++ b/policyengine_us/variables/household/expense/childcare/childcare_expenses.py @@ -9,14 +9,7 @@ class childcare_expenses(Variable): unit = USD def formula(spm_unit, period, parameters): - pre_subsidy_childcare_expenses = add( - spm_unit, period, ["pre_subsidy_childcare_expenses"] - ) - # States where we model childcare subsidies. - STATES_WITH_CHILD_CARE_SUBSIDIES = ["CA", "CO", "NE", "MA"] - subsidy_variables = [ - i.lower() + "_child_care_subsidies" - for i in STATES_WITH_CHILD_CARE_SUBSIDIES - ] - subsidies = add(spm_unit, period, subsidy_variables) - return max_(pre_subsidy_childcare_expenses - subsidies, 0) + pre_subsidy = add(spm_unit, period, ["pre_subsidy_childcare_expenses"]) + p = parameters(period).gov.household.expense.childcare + subsidies = add(spm_unit, period, p.subsidy_programs) + return max_(pre_subsidy - subsidies, 0) From d398abc519cae44212746da50a78ae6fb5eddf0c Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 22 Dec 2025 15:02:08 -0500 Subject: [PATCH 2/4] uv --- uv.lock | 131 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 65 insertions(+), 66 deletions(-) diff --git a/uv.lock b/uv.lock index e4c36b69aed..dfed9cccf48 100644 --- a/uv.lock +++ b/uv.lock @@ -586,7 +586,7 @@ version = "3.15.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4d/6a/0d79de0b025aa85dc8864de8e97659c94cf3d23148394a954dc5ca52f8c8/h5py-3.15.1.tar.gz", hash = "sha256:c86e3ed45c4473564de55aa83b6fc9e5ead86578773dfbd93047380042e26b69", size = 426236, upload-time = "2025-10-16T10:35:27.404Z" } wheels = [ @@ -714,14 +714,14 @@ wheels = [ [[package]] name = "importlib-metadata" -version = "8.7.0" +version = "8.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "zipp" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641, upload-time = "2025-04-27T15:29:01.736Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656, upload-time = "2025-04-27T15:29:00.214Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865, upload-time = "2025-12-21T10:00:18.329Z" }, ] [[package]] @@ -1079,7 +1079,7 @@ version = "1.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pandas" }, ] sdist = { url = "https://files.pythonhosted.org/packages/31/e9/7f77ee19b2d3dcdb561ceaeb915ef6a944eb315412d0e8065c12817b7ff4/microdf_python-1.1.1.tar.gz", hash = "sha256:97dd0cb8562d98a32bbd35861719ae565544143e2ad8a462d6f6261058d9c469", size = 17290, upload-time = "2025-12-01T14:13:57.131Z" } @@ -1190,11 +1190,11 @@ wheels = [ [[package]] name = "nodeenv" -version = "1.9.1" +version = "1.10.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", size = 47437, upload-time = "2024-06-04T18:44:11.171Z" } +sdist = { url = "https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz", hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb", size = 55611, upload-time = "2025-12-20T14:08:54.006Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314, upload-time = "2024-06-04T18:44:08.352Z" }, + { url = "https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl", hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827", size = 23438, upload-time = "2025-12-20T14:08:52.782Z" }, ] [[package]] @@ -1203,7 +1203,7 @@ version = "2.14.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cb/2f/fdba158c9dbe5caca9c3eca3eaffffb251f2fb8674bf8e2d0aed5f38d319/numexpr-2.14.1.tar.gz", hash = "sha256:4be00b1086c7b7a5c32e31558122b7b80243fe098579b170967da83f3152b48b", size = 119400, upload-time = "2025-10-13T16:17:27.351Z" } wheels = [ @@ -1316,65 +1316,64 @@ wheels = [ [[package]] name = "numpy" -version = "2.3.5" +version = "2.4.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.12'", "python_full_version == '3.11.*'", ] -sdist = { url = "https://files.pythonhosted.org/packages/76/65/21b3bc86aac7b8f2862db1e808f1ea22b028e30a225a34a5ede9bf8678f2/numpy-2.3.5.tar.gz", hash = "sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0", size = 20584950, upload-time = "2025-11-16T22:52:42.067Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/43/77/84dd1d2e34d7e2792a236ba180b5e8fcc1e3e414e761ce0253f63d7f572e/numpy-2.3.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10", size = 17034641, upload-time = "2025-11-16T22:49:19.336Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ea/25e26fa5837106cde46ae7d0b667e20f69cbbc0efd64cba8221411ab26ae/numpy-2.3.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218", size = 12528324, upload-time = "2025-11-16T22:49:22.582Z" }, - { url = "https://files.pythonhosted.org/packages/4d/1a/e85f0eea4cf03d6a0228f5c0256b53f2df4bc794706e7df019fc622e47f1/numpy-2.3.5-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d", size = 5356872, upload-time = "2025-11-16T22:49:25.408Z" }, - { url = "https://files.pythonhosted.org/packages/5c/bb/35ef04afd567f4c989c2060cde39211e4ac5357155c1833bcd1166055c61/numpy-2.3.5-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5", size = 6893148, upload-time = "2025-11-16T22:49:27.549Z" }, - { url = "https://files.pythonhosted.org/packages/f2/2b/05bbeb06e2dff5eab512dfc678b1cc5ee94d8ac5956a0885c64b6b26252b/numpy-2.3.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7", size = 14557282, upload-time = "2025-11-16T22:49:30.964Z" }, - { url = "https://files.pythonhosted.org/packages/65/fb/2b23769462b34398d9326081fad5655198fcf18966fcb1f1e49db44fbf31/numpy-2.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4", size = 16897903, upload-time = "2025-11-16T22:49:34.191Z" }, - { url = "https://files.pythonhosted.org/packages/ac/14/085f4cf05fc3f1e8aa95e85404e984ffca9b2275a5dc2b1aae18a67538b8/numpy-2.3.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e", size = 16341672, upload-time = "2025-11-16T22:49:37.2Z" }, - { url = "https://files.pythonhosted.org/packages/6f/3b/1f73994904142b2aa290449b3bb99772477b5fd94d787093e4f24f5af763/numpy-2.3.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748", size = 18838896, upload-time = "2025-11-16T22:49:39.727Z" }, - { url = "https://files.pythonhosted.org/packages/cd/b9/cf6649b2124f288309ffc353070792caf42ad69047dcc60da85ee85fea58/numpy-2.3.5-cp311-cp311-win32.whl", hash = "sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c", size = 6563608, upload-time = "2025-11-16T22:49:42.079Z" }, - { url = "https://files.pythonhosted.org/packages/aa/44/9fe81ae1dcc29c531843852e2874080dc441338574ccc4306b39e2ff6e59/numpy-2.3.5-cp311-cp311-win_amd64.whl", hash = "sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c", size = 13078442, upload-time = "2025-11-16T22:49:43.99Z" }, - { url = "https://files.pythonhosted.org/packages/6d/a7/f99a41553d2da82a20a2f22e93c94f928e4490bb447c9ff3c4ff230581d3/numpy-2.3.5-cp311-cp311-win_arm64.whl", hash = "sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa", size = 10458555, upload-time = "2025-11-16T22:49:47.092Z" }, - { url = "https://files.pythonhosted.org/packages/44/37/e669fe6cbb2b96c62f6bbedc6a81c0f3b7362f6a59230b23caa673a85721/numpy-2.3.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e", size = 16733873, upload-time = "2025-11-16T22:49:49.84Z" }, - { url = "https://files.pythonhosted.org/packages/c5/65/df0db6c097892c9380851ab9e44b52d4f7ba576b833996e0080181c0c439/numpy-2.3.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769", size = 12259838, upload-time = "2025-11-16T22:49:52.863Z" }, - { url = "https://files.pythonhosted.org/packages/5b/e1/1ee06e70eb2136797abe847d386e7c0e830b67ad1d43f364dd04fa50d338/numpy-2.3.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5", size = 5088378, upload-time = "2025-11-16T22:49:55.055Z" }, - { url = "https://files.pythonhosted.org/packages/6d/9c/1ca85fb86708724275103b81ec4cf1ac1d08f465368acfc8da7ab545bdae/numpy-2.3.5-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4", size = 6628559, upload-time = "2025-11-16T22:49:57.371Z" }, - { url = "https://files.pythonhosted.org/packages/74/78/fcd41e5a0ce4f3f7b003da85825acddae6d7ecb60cf25194741b036ca7d6/numpy-2.3.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d", size = 14250702, upload-time = "2025-11-16T22:49:59.632Z" }, - { url = "https://files.pythonhosted.org/packages/b6/23/2a1b231b8ff672b4c450dac27164a8b2ca7d9b7144f9c02d2396518352eb/numpy-2.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28", size = 16606086, upload-time = "2025-11-16T22:50:02.127Z" }, - { url = "https://files.pythonhosted.org/packages/a0/c5/5ad26fbfbe2012e190cc7d5003e4d874b88bb18861d0829edc140a713021/numpy-2.3.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b", size = 16025985, upload-time = "2025-11-16T22:50:04.536Z" }, - { url = "https://files.pythonhosted.org/packages/d2/fa/dd48e225c46c819288148d9d060b047fd2a6fb1eb37eae25112ee4cb4453/numpy-2.3.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c", size = 18542976, upload-time = "2025-11-16T22:50:07.557Z" }, - { url = "https://files.pythonhosted.org/packages/05/79/ccbd23a75862d95af03d28b5c6901a1b7da4803181513d52f3b86ed9446e/numpy-2.3.5-cp312-cp312-win32.whl", hash = "sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952", size = 6285274, upload-time = "2025-11-16T22:50:10.746Z" }, - { url = "https://files.pythonhosted.org/packages/2d/57/8aeaf160312f7f489dea47ab61e430b5cb051f59a98ae68b7133ce8fa06a/numpy-2.3.5-cp312-cp312-win_amd64.whl", hash = "sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa", size = 12782922, upload-time = "2025-11-16T22:50:12.811Z" }, - { url = "https://files.pythonhosted.org/packages/78/a6/aae5cc2ca78c45e64b9ef22f089141d661516856cf7c8a54ba434576900d/numpy-2.3.5-cp312-cp312-win_arm64.whl", hash = "sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013", size = 10194667, upload-time = "2025-11-16T22:50:16.16Z" }, - { url = "https://files.pythonhosted.org/packages/db/69/9cde09f36da4b5a505341180a3f2e6fadc352fd4d2b7096ce9778db83f1a/numpy-2.3.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff", size = 16728251, upload-time = "2025-11-16T22:50:19.013Z" }, - { url = "https://files.pythonhosted.org/packages/79/fb/f505c95ceddd7027347b067689db71ca80bd5ecc926f913f1a23e65cf09b/numpy-2.3.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188", size = 12254652, upload-time = "2025-11-16T22:50:21.487Z" }, - { url = "https://files.pythonhosted.org/packages/78/da/8c7738060ca9c31b30e9301ee0cf6c5ffdbf889d9593285a1cead337f9a5/numpy-2.3.5-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0", size = 5083172, upload-time = "2025-11-16T22:50:24.562Z" }, - { url = "https://files.pythonhosted.org/packages/a4/b4/ee5bb2537fb9430fd2ef30a616c3672b991a4129bb1c7dcc42aa0abbe5d7/numpy-2.3.5-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903", size = 6622990, upload-time = "2025-11-16T22:50:26.47Z" }, - { url = "https://files.pythonhosted.org/packages/95/03/dc0723a013c7d7c19de5ef29e932c3081df1c14ba582b8b86b5de9db7f0f/numpy-2.3.5-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d", size = 14248902, upload-time = "2025-11-16T22:50:28.861Z" }, - { url = "https://files.pythonhosted.org/packages/f5/10/ca162f45a102738958dcec8023062dad0cbc17d1ab99d68c4e4a6c45fb2b/numpy-2.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017", size = 16597430, upload-time = "2025-11-16T22:50:31.56Z" }, - { url = "https://files.pythonhosted.org/packages/2a/51/c1e29be863588db58175175f057286900b4b3327a1351e706d5e0f8dd679/numpy-2.3.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf", size = 16024551, upload-time = "2025-11-16T22:50:34.242Z" }, - { url = "https://files.pythonhosted.org/packages/83/68/8236589d4dbb87253d28259d04d9b814ec0ecce7cb1c7fed29729f4c3a78/numpy-2.3.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce", size = 18533275, upload-time = "2025-11-16T22:50:37.651Z" }, - { url = "https://files.pythonhosted.org/packages/40/56/2932d75b6f13465239e3b7b7e511be27f1b8161ca2510854f0b6e521c395/numpy-2.3.5-cp313-cp313-win32.whl", hash = "sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e", size = 6277637, upload-time = "2025-11-16T22:50:40.11Z" }, - { url = "https://files.pythonhosted.org/packages/0c/88/e2eaa6cffb115b85ed7c7c87775cb8bcf0816816bc98ca8dbfa2ee33fe6e/numpy-2.3.5-cp313-cp313-win_amd64.whl", hash = "sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b", size = 12779090, upload-time = "2025-11-16T22:50:42.503Z" }, - { url = "https://files.pythonhosted.org/packages/8f/88/3f41e13a44ebd4034ee17baa384acac29ba6a4fcc2aca95f6f08ca0447d1/numpy-2.3.5-cp313-cp313-win_arm64.whl", hash = "sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae", size = 10194710, upload-time = "2025-11-16T22:50:44.971Z" }, - { url = "https://files.pythonhosted.org/packages/13/cb/71744144e13389d577f867f745b7df2d8489463654a918eea2eeb166dfc9/numpy-2.3.5-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd", size = 16827292, upload-time = "2025-11-16T22:50:47.715Z" }, - { url = "https://files.pythonhosted.org/packages/71/80/ba9dc6f2a4398e7f42b708a7fdc841bb638d353be255655498edbf9a15a8/numpy-2.3.5-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f", size = 12378897, upload-time = "2025-11-16T22:50:51.327Z" }, - { url = "https://files.pythonhosted.org/packages/2e/6d/db2151b9f64264bcceccd51741aa39b50150de9b602d98ecfe7e0c4bff39/numpy-2.3.5-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a", size = 5207391, upload-time = "2025-11-16T22:50:54.542Z" }, - { url = "https://files.pythonhosted.org/packages/80/ae/429bacace5ccad48a14c4ae5332f6aa8ab9f69524193511d60ccdfdc65fa/numpy-2.3.5-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139", size = 6721275, upload-time = "2025-11-16T22:50:56.794Z" }, - { url = "https://files.pythonhosted.org/packages/74/5b/1919abf32d8722646a38cd527bc3771eb229a32724ee6ba340ead9b92249/numpy-2.3.5-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e", size = 14306855, upload-time = "2025-11-16T22:50:59.208Z" }, - { url = "https://files.pythonhosted.org/packages/a5/87/6831980559434973bebc30cd9c1f21e541a0f2b0c280d43d3afd909b66d0/numpy-2.3.5-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9", size = 16657359, upload-time = "2025-11-16T22:51:01.991Z" }, - { url = "https://files.pythonhosted.org/packages/dd/91/c797f544491ee99fd00495f12ebb7802c440c1915811d72ac5b4479a3356/numpy-2.3.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946", size = 16093374, upload-time = "2025-11-16T22:51:05.291Z" }, - { url = "https://files.pythonhosted.org/packages/74/a6/54da03253afcbe7a72785ec4da9c69fb7a17710141ff9ac5fcb2e32dbe64/numpy-2.3.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1", size = 18594587, upload-time = "2025-11-16T22:51:08.585Z" }, - { url = "https://files.pythonhosted.org/packages/80/e9/aff53abbdd41b0ecca94285f325aff42357c6b5abc482a3fcb4994290b18/numpy-2.3.5-cp313-cp313t-win32.whl", hash = "sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3", size = 6405940, upload-time = "2025-11-16T22:51:11.541Z" }, - { url = "https://files.pythonhosted.org/packages/d5/81/50613fec9d4de5480de18d4f8ef59ad7e344d497edbef3cfd80f24f98461/numpy-2.3.5-cp313-cp313t-win_amd64.whl", hash = "sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234", size = 12920341, upload-time = "2025-11-16T22:51:14.312Z" }, - { url = "https://files.pythonhosted.org/packages/bb/ab/08fd63b9a74303947f34f0bd7c5903b9c5532c2d287bead5bdf4c556c486/numpy-2.3.5-cp313-cp313t-win_arm64.whl", hash = "sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7", size = 10262507, upload-time = "2025-11-16T22:51:16.846Z" }, - { url = "https://files.pythonhosted.org/packages/c6/65/f9dea8e109371ade9c782b4e4756a82edf9d3366bca495d84d79859a0b79/numpy-2.3.5-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310", size = 16910689, upload-time = "2025-11-16T22:52:23.247Z" }, - { url = "https://files.pythonhosted.org/packages/00/4f/edb00032a8fb92ec0a679d3830368355da91a69cab6f3e9c21b64d0bb986/numpy-2.3.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c", size = 12457053, upload-time = "2025-11-16T22:52:26.367Z" }, - { url = "https://files.pythonhosted.org/packages/16/a4/e8a53b5abd500a63836a29ebe145fc1ab1f2eefe1cfe59276020373ae0aa/numpy-2.3.5-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18", size = 5285635, upload-time = "2025-11-16T22:52:29.266Z" }, - { url = "https://files.pythonhosted.org/packages/a3/2f/37eeb9014d9c8b3e9c55bc599c68263ca44fdbc12a93e45a21d1d56df737/numpy-2.3.5-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff", size = 6801770, upload-time = "2025-11-16T22:52:31.421Z" }, - { url = "https://files.pythonhosted.org/packages/7d/e4/68d2f474df2cb671b2b6c2986a02e520671295647dad82484cde80ca427b/numpy-2.3.5-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb", size = 14391768, upload-time = "2025-11-16T22:52:33.593Z" }, - { url = "https://files.pythonhosted.org/packages/b8/50/94ccd8a2b141cb50651fddd4f6a48874acb3c91c8f0842b08a6afc4b0b21/numpy-2.3.5-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7", size = 16729263, upload-time = "2025-11-16T22:52:36.369Z" }, - { url = "https://files.pythonhosted.org/packages/2d/ee/346fa473e666fe14c52fcdd19ec2424157290a032d4c41f98127bfb31ac7/numpy-2.3.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425", size = 12967213, upload-time = "2025-11-16T22:52:39.38Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/a4/7a/6a3d14e205d292b738db449d0de649b373a59edb0d0b4493821d0a3e8718/numpy-2.4.0.tar.gz", hash = "sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934", size = 20685720, upload-time = "2025-12-20T16:18:19.023Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/7e/7bae7cbcc2f8132271967aa03e03954fc1e48aa1f3bf32b29ca95fbef352/numpy-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e", size = 16940166, upload-time = "2025-12-20T16:15:43.434Z" }, + { url = "https://files.pythonhosted.org/packages/0f/27/6c13f5b46776d6246ec884ac5817452672156a506d08a1f2abb39961930a/numpy-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db", size = 12641781, upload-time = "2025-12-20T16:15:45.701Z" }, + { url = "https://files.pythonhosted.org/packages/14/1c/83b4998d4860d15283241d9e5215f28b40ac31f497c04b12fa7f428ff370/numpy-2.4.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b", size = 5470247, upload-time = "2025-12-20T16:15:47.943Z" }, + { url = "https://files.pythonhosted.org/packages/54/08/cbce72c835d937795571b0464b52069f869c9e78b0c076d416c5269d2718/numpy-2.4.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7", size = 6799807, upload-time = "2025-12-20T16:15:49.795Z" }, + { url = "https://files.pythonhosted.org/packages/ff/be/2e647961cd8c980591d75cdcd9e8f647d69fbe05e2a25613dc0a2ea5fb1a/numpy-2.4.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548", size = 14701992, upload-time = "2025-12-20T16:15:51.615Z" }, + { url = "https://files.pythonhosted.org/packages/a2/fb/e1652fb8b6fd91ce6ed429143fe2e01ce714711e03e5b762615e7b36172c/numpy-2.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346", size = 16646871, upload-time = "2025-12-20T16:15:54.129Z" }, + { url = "https://files.pythonhosted.org/packages/62/23/d841207e63c4322842f7cd042ae981cffe715c73376dcad8235fb31debf1/numpy-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25", size = 16487190, upload-time = "2025-12-20T16:15:56.147Z" }, + { url = "https://files.pythonhosted.org/packages/bc/a0/6a842c8421ebfdec0a230e65f61e0dabda6edbef443d999d79b87c273965/numpy-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a", size = 18580762, upload-time = "2025-12-20T16:15:58.524Z" }, + { url = "https://files.pythonhosted.org/packages/0a/d1/c79e0046641186f2134dde05e6181825b911f8bdcef31b19ddd16e232847/numpy-2.4.0-cp311-cp311-win32.whl", hash = "sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53", size = 6233359, upload-time = "2025-12-20T16:16:00.938Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f0/74965001d231f28184d6305b8cdc1b6fcd4bf23033f6cb039cfe76c9fca7/numpy-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479", size = 12601132, upload-time = "2025-12-20T16:16:02.484Z" }, + { url = "https://files.pythonhosted.org/packages/65/32/55408d0f46dfebce38017f5bd931affa7256ad6beac1a92a012e1fbc67a7/numpy-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6", size = 10573977, upload-time = "2025-12-20T16:16:04.77Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ff/f6400ffec95de41c74b8e73df32e3fff1830633193a7b1e409be7fb1bb8c/numpy-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037", size = 16653117, upload-time = "2025-12-20T16:16:06.709Z" }, + { url = "https://files.pythonhosted.org/packages/fd/28/6c23e97450035072e8d830a3c411bf1abd1f42c611ff9d29e3d8f55c6252/numpy-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83", size = 12369711, upload-time = "2025-12-20T16:16:08.758Z" }, + { url = "https://files.pythonhosted.org/packages/bc/af/acbef97b630ab1bb45e6a7d01d1452e4251aa88ce680ac36e56c272120ec/numpy-2.4.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344", size = 5198355, upload-time = "2025-12-20T16:16:10.902Z" }, + { url = "https://files.pythonhosted.org/packages/c1/c8/4e0d436b66b826f2e53330adaa6311f5cac9871a5b5c31ad773b27f25a74/numpy-2.4.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6", size = 6545298, upload-time = "2025-12-20T16:16:12.607Z" }, + { url = "https://files.pythonhosted.org/packages/ef/27/e1f5d144ab54eac34875e79037011d511ac57b21b220063310cb96c80fbc/numpy-2.4.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb", size = 14398387, upload-time = "2025-12-20T16:16:14.257Z" }, + { url = "https://files.pythonhosted.org/packages/67/64/4cb909dd5ab09a9a5d086eff9586e69e827b88a5585517386879474f4cf7/numpy-2.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63", size = 16363091, upload-time = "2025-12-20T16:16:17.32Z" }, + { url = "https://files.pythonhosted.org/packages/9d/9c/8efe24577523ec6809261859737cf117b0eb6fdb655abdfdc81b2e468ce4/numpy-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95", size = 16176394, upload-time = "2025-12-20T16:16:19.524Z" }, + { url = "https://files.pythonhosted.org/packages/61/f0/1687441ece7b47a62e45a1f82015352c240765c707928edd8aef875d5951/numpy-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6", size = 18287378, upload-time = "2025-12-20T16:16:22.866Z" }, + { url = "https://files.pythonhosted.org/packages/d3/6f/f868765d44e6fc466467ed810ba9d8d6db1add7d4a748abfa2a4c99a3194/numpy-2.4.0-cp312-cp312-win32.whl", hash = "sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c", size = 5955432, upload-time = "2025-12-20T16:16:25.06Z" }, + { url = "https://files.pythonhosted.org/packages/d4/b5/94c1e79fcbab38d1ca15e13777477b2914dd2d559b410f96949d6637b085/numpy-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98", size = 12306201, upload-time = "2025-12-20T16:16:26.979Z" }, + { url = "https://files.pythonhosted.org/packages/70/09/c39dadf0b13bb0768cd29d6a3aaff1fb7c6905ac40e9aaeca26b1c086e06/numpy-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667", size = 10308234, upload-time = "2025-12-20T16:16:29.417Z" }, + { url = "https://files.pythonhosted.org/packages/a7/0d/853fd96372eda07c824d24adf02e8bc92bb3731b43a9b2a39161c3667cc4/numpy-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea", size = 16649088, upload-time = "2025-12-20T16:16:31.421Z" }, + { url = "https://files.pythonhosted.org/packages/e3/37/cc636f1f2a9f585434e20a3e6e63422f70bfe4f7f6698e941db52ea1ac9a/numpy-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d", size = 12364065, upload-time = "2025-12-20T16:16:33.491Z" }, + { url = "https://files.pythonhosted.org/packages/ed/69/0b78f37ca3690969beee54103ce5f6021709134e8020767e93ba691a72f1/numpy-2.4.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee", size = 5192640, upload-time = "2025-12-20T16:16:35.636Z" }, + { url = "https://files.pythonhosted.org/packages/1d/2a/08569f8252abf590294dbb09a430543ec8f8cc710383abfb3e75cc73aeda/numpy-2.4.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e", size = 6541556, upload-time = "2025-12-20T16:16:37.276Z" }, + { url = "https://files.pythonhosted.org/packages/93/e9/a949885a4e177493d61519377952186b6cbfdf1d6002764c664ba28349b5/numpy-2.4.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2", size = 14396562, upload-time = "2025-12-20T16:16:38.953Z" }, + { url = "https://files.pythonhosted.org/packages/99/98/9d4ad53b0e9ef901c2ef1d550d2136f5ac42d3fd2988390a6def32e23e48/numpy-2.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a", size = 16351719, upload-time = "2025-12-20T16:16:41.503Z" }, + { url = "https://files.pythonhosted.org/packages/28/de/5f3711a38341d6e8dd619f6353251a0cdd07f3d6d101a8fd46f4ef87f895/numpy-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681", size = 16176053, upload-time = "2025-12-20T16:16:44.552Z" }, + { url = "https://files.pythonhosted.org/packages/2a/5b/2a3753dc43916501b4183532e7ace862e13211042bceafa253afb5c71272/numpy-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475", size = 18277859, upload-time = "2025-12-20T16:16:47.174Z" }, + { url = "https://files.pythonhosted.org/packages/2c/c5/a18bcdd07a941db3076ef489d036ab16d2bfc2eae0cf27e5a26e29189434/numpy-2.4.0-cp313-cp313-win32.whl", hash = "sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344", size = 5953849, upload-time = "2025-12-20T16:16:49.554Z" }, + { url = "https://files.pythonhosted.org/packages/4f/f1/719010ff8061da6e8a26e1980cf090412d4f5f8060b31f0c45d77dd67a01/numpy-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d", size = 12302840, upload-time = "2025-12-20T16:16:51.227Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5a/b3d259083ed8b4d335270c76966cb6cf14a5d1b69e1a608994ac57a659e6/numpy-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d", size = 10308509, upload-time = "2025-12-20T16:16:53.313Z" }, + { url = "https://files.pythonhosted.org/packages/31/01/95edcffd1bb6c0633df4e808130545c4f07383ab629ac7e316fb44fff677/numpy-2.4.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6", size = 12491815, upload-time = "2025-12-20T16:16:55.496Z" }, + { url = "https://files.pythonhosted.org/packages/59/ea/5644b8baa92cc1c7163b4b4458c8679852733fa74ca49c942cfa82ded4e0/numpy-2.4.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5", size = 5320321, upload-time = "2025-12-20T16:16:57.468Z" }, + { url = "https://files.pythonhosted.org/packages/26/4e/e10938106d70bc21319bd6a86ae726da37edc802ce35a3a71ecdf1fdfe7f/numpy-2.4.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3", size = 6641635, upload-time = "2025-12-20T16:16:59.379Z" }, + { url = "https://files.pythonhosted.org/packages/b3/8d/a8828e3eaf5c0b4ab116924df82f24ce3416fa38d0674d8f708ddc6c8aac/numpy-2.4.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d", size = 14456053, upload-time = "2025-12-20T16:17:01.768Z" }, + { url = "https://files.pythonhosted.org/packages/68/a1/17d97609d87d4520aa5ae2dcfb32305654550ac6a35effb946d303e594ce/numpy-2.4.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3", size = 16401702, upload-time = "2025-12-20T16:17:04.235Z" }, + { url = "https://files.pythonhosted.org/packages/18/32/0f13c1b2d22bea1118356b8b963195446f3af124ed7a5adfa8fdecb1b6ca/numpy-2.4.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa", size = 16242493, upload-time = "2025-12-20T16:17:06.856Z" }, + { url = "https://files.pythonhosted.org/packages/ae/23/48f21e3d309fbc137c068a1475358cbd3a901b3987dcfc97a029ab3068e2/numpy-2.4.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c", size = 18324222, upload-time = "2025-12-20T16:17:09.392Z" }, + { url = "https://files.pythonhosted.org/packages/ac/52/41f3d71296a3dcaa4f456aaa3c6fc8e745b43d0552b6bde56571bb4b4a0f/numpy-2.4.0-cp313-cp313t-win32.whl", hash = "sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93", size = 6076216, upload-time = "2025-12-20T16:17:11.437Z" }, + { url = "https://files.pythonhosted.org/packages/35/ff/46fbfe60ab0710d2a2b16995f708750307d30eccbb4c38371ea9e986866e/numpy-2.4.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4", size = 12444263, upload-time = "2025-12-20T16:17:13.182Z" }, + { url = "https://files.pythonhosted.org/packages/a3/e3/9189ab319c01d2ed556c932ccf55064c5d75bb5850d1df7a482ce0badead/numpy-2.4.0-cp313-cp313t-win_arm64.whl", hash = "sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c", size = 10378265, upload-time = "2025-12-20T16:17:15.211Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ef/088e7c7342f300aaf3ee5f2c821c4b9996a1bef2aaf6a49cc8ab4883758e/numpy-2.4.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6", size = 16819003, upload-time = "2025-12-20T16:18:03.41Z" }, + { url = "https://files.pythonhosted.org/packages/ff/ce/a53017b5443b4b84517182d463fc7bcc2adb4faa8b20813f8e5f5aeb5faa/numpy-2.4.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4", size = 12567105, upload-time = "2025-12-20T16:18:05.594Z" }, + { url = "https://files.pythonhosted.org/packages/77/58/5ff91b161f2ec650c88a626c3905d938c89aaadabd0431e6d9c1330c83e2/numpy-2.4.0-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba", size = 5395590, upload-time = "2025-12-20T16:18:08.031Z" }, + { url = "https://files.pythonhosted.org/packages/1d/4e/f1a084106df8c2df8132fc437e56987308e0524836aa7733721c8429d4fe/numpy-2.4.0-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d", size = 6709947, upload-time = "2025-12-20T16:18:09.836Z" }, + { url = "https://files.pythonhosted.org/packages/63/09/3d8aeb809c0332c3f642da812ac2e3d74fc9252b3021f8c30c82e99e3f3d/numpy-2.4.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf", size = 14535119, upload-time = "2025-12-20T16:18:12.105Z" }, + { url = "https://files.pythonhosted.org/packages/fd/7f/68f0fc43a2cbdc6bb239160c754d87c922f60fbaa0fa3cd3d312b8a7f5ee/numpy-2.4.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98", size = 16475815, upload-time = "2025-12-20T16:18:14.433Z" }, + { url = "https://files.pythonhosted.org/packages/11/73/edeacba3167b1ca66d51b1a5a14697c2c40098b5ffa01811c67b1785a5ab/numpy-2.4.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b", size = 12489376, upload-time = "2025-12-20T16:18:16.524Z" }, ] [[package]] @@ -1401,7 +1400,7 @@ version = "2.3.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "python-dateutil" }, { name = "pytz" }, { name = "tzdata" }, @@ -1517,7 +1516,7 @@ dependencies = [ { name = "microdf-python" }, { name = "numexpr" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pandas" }, { name = "plotly" }, { name = "psutil" }, @@ -1535,7 +1534,7 @@ wheels = [ [[package]] name = "policyengine-us" -version = "1.469.0" +version = "1.470.0" source = { editable = "." } dependencies = [ { name = "microdf-python" }, From 106ae68ef57dfa78b71cee4c34c9db982ab2e1b2 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 22 Dec 2025 15:07:46 -0500 Subject: [PATCH 3/4] minor --- .../ne/dhhs/child_care_subsidy/income/countable_sources.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/policyengine_us/parameters/gov/states/ne/dhhs/child_care_subsidy/income/countable_sources.yaml b/policyengine_us/parameters/gov/states/ne/dhhs/child_care_subsidy/income/countable_sources.yaml index aac7d6d3388..29047cc5529 100644 --- a/policyengine_us/parameters/gov/states/ne/dhhs/child_care_subsidy/income/countable_sources.yaml +++ b/policyengine_us/parameters/gov/states/ne/dhhs/child_care_subsidy/income/countable_sources.yaml @@ -19,4 +19,4 @@ metadata: label: Nebraska Child Care Subsidy countable income sources reference: - title: NAC 392-2-010 - Income - href: https://dhhs.ne.gov/Guidance%20Docs/Title%20392%20-%20Child%20Care%20Subsidy.pdf + href: https://dhhs.ne.gov/Guidance%20Docs/Title%20392%20-%20Child%20Care%20Subsidy.pdf#page=3 From 19bcf6ab2197f2f8e7c724e12f51251c30ebdbfc Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 22 Dec 2025 15:25:50 -0500 Subject: [PATCH 4/4] fix test --- .../policy/baseline/gov/states/ca/cdss/tanf/integration.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/integration.yaml index adedf6cd65c..f785e96fed9 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/tanf/integration.yaml @@ -4,7 +4,7 @@ people: parent: age: 30 - employment_income: 9_600 + employment_income_before_lsr: 9_600 child1: age: 4 spm_units: @@ -36,7 +36,7 @@ people: parent: age: 30 - employment_income: 12_000 + employment_income_before_lsr: 12_000 child1: age: 2 child2: