From b81223c8e28aa6c7501ac3b425369b30737b0949 Mon Sep 17 00:00:00 2001 From: SakshiKekre Date: Mon, 2 Mar 2026 21:10:01 +0530 Subject: [PATCH] fix: Populate possible_values for enum variables during seeding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, all variables were seeded with possible_values = NULL, even for enum-type variables like state_code and filing_status. Changes: - seed.py: Extract possible_values from policyengine package and store as JSON - variable.py: Fix type annotation from `str | None` to `list[str] | None` This enables API consumers to know valid values for constrained variables (e.g., state dropdowns, filing status options). Affects 89 variables (62 US + 27 UK) that have enumerated values. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- scripts/seed.py | 4 +++- src/policyengine_api/models/variable.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/seed.py b/scripts/seed.py index f3fbfa8..821fc42 100644 --- a/scripts/seed.py +++ b/scripts/seed.py @@ -178,7 +178,9 @@ def seed_model(model_version, session, lite: bool = False) -> TaxBenefitModelVer "data_type": var.data_type.__name__ if hasattr(var.data_type, "__name__") else str(var.data_type), - "possible_values": None, + "possible_values": json.dumps(var.possible_values) + if var.possible_values + else None, "tax_benefit_model_version_id": db_version.id, "created_at": datetime.now(timezone.utc), } diff --git a/src/policyengine_api/models/variable.py b/src/policyengine_api/models/variable.py index f163577..71924d1 100644 --- a/src/policyengine_api/models/variable.py +++ b/src/policyengine_api/models/variable.py @@ -15,7 +15,7 @@ class VariableBase(SQLModel): entity: str description: str | None = None data_type: str | None = None # Store as string representation - possible_values: str | None = Field( + possible_values: list[str] | None = Field( default=None, sa_column=Column(JSON) ) # Store as JSON list tax_benefit_model_version_id: UUID = Field(