Skip to content

Commit 6c7d18f

Browse files
authored
Omit null optional fields from Modal worker payloads (#469)
1 parent 22d0dae commit 6c7d18f

2 files changed

Lines changed: 4 additions & 0 deletions

File tree

projects/policyengine-api-simulation/src/modal/gateway/endpoints.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ def _build_budget_window_parent_payload(
100100
payload = request.model_dump(
101101
exclude={"telemetry"},
102102
mode="json",
103+
exclude_none=True,
103104
)
104105
payload["version"] = resolved_version
105106
if request.telemetry is not None:
@@ -162,6 +163,7 @@ async def submit_simulation(request: SimulationRequest):
162163
payload = request.model_dump(
163164
exclude={"version", "telemetry"},
164165
mode="json",
166+
exclude_none=True,
165167
)
166168
run_id = request.telemetry.run_id if request.telemetry else None
167169
if request.telemetry is not None:

projects/policyengine-api-simulation/tests/gateway/test_endpoints.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ def test__given_no_data_value__then_routes_to_run_simulation(
167167
"policyengine-simulation-us1-500-0-uk2-66-0",
168168
"run_simulation",
169169
)
170+
assert "time_period" not in mock_modal["func"].last_payload
171+
assert "data_version" not in mock_modal["func"].last_payload
170172

171173
def test__given_submission__then_returns_job_id_and_poll_url(
172174
self, mock_modal, client: TestClient

0 commit comments

Comments
 (0)