From 76f3f291f7106c976679460d676cf512406093ad Mon Sep 17 00:00:00 2001 From: Jamie Holding Date: Wed, 22 Apr 2026 11:02:58 +0000 Subject: [PATCH] fix(scripts): auto-format generated models in regenerate.py datamodel-code-generator's output quote style drifts between versions (double quotes vs single quotes), causing spec-drift PRs that are pure formatting noise. Run `ruff format` on the generated file as part of the regenerate pipeline so the output always matches the project's style and CI's `ruff format --check` stays green. Co-Authored-By: Claude Opus 4.6 (1M context) --- scripts/regenerate.py | 8 ++++++ themeparks/_generated/models.py | 48 ++++++++++++++++----------------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/scripts/regenerate.py b/scripts/regenerate.py index bf2f7c6..0ae817d 100644 --- a/scripts/regenerate.py +++ b/scripts/regenerate.py @@ -161,6 +161,14 @@ def main() -> None: else: print(" no changes (already patched?)") + # Auto-format the generated file so `ruff format --check` in CI doesn't + # fail on quote-style or whitespace differences from datamodel-codegen. + print("Formatting generated models with ruff...") + subprocess.run( + [sys.executable, "-m", "ruff", "format", str(OUTPUT)], + check=True, + ) + # Post-generation sanity check. The running process already imported the # stale pre-patch module (if at all), so spawn a subprocess for a fresh # import that reflects what downstream users will see. diff --git a/themeparks/_generated/models.py b/themeparks/_generated/models.py index 495d893..a377c6f 100644 --- a/themeparks/_generated/models.py +++ b/themeparks/_generated/models.py @@ -10,31 +10,31 @@ class EntityType(Enum): - DESTINATION = 'DESTINATION' - PARK = 'PARK' - ATTRACTION = 'ATTRACTION' - RESTAURANT = 'RESTAURANT' - HOTEL = 'HOTEL' - SHOW = 'SHOW' + DESTINATION = "DESTINATION" + PARK = "PARK" + ATTRACTION = "ATTRACTION" + RESTAURANT = "RESTAURANT" + HOTEL = "HOTEL" + SHOW = "SHOW" class LiveStatusType(Enum): - OPERATING = 'OPERATING' - DOWN = 'DOWN' - CLOSED = 'CLOSED' - REFURBISHMENT = 'REFURBISHMENT' + OPERATING = "OPERATING" + DOWN = "DOWN" + CLOSED = "CLOSED" + REFURBISHMENT = "REFURBISHMENT" class ReturnTimeState(Enum): - AVAILABLE = 'AVAILABLE' - TEMP_FULL = 'TEMP_FULL' - FINISHED = 'FINISHED' + AVAILABLE = "AVAILABLE" + TEMP_FULL = "TEMP_FULL" + FINISHED = "FINISHED" class BoardingGroupState(Enum): - AVAILABLE = 'AVAILABLE' - PAUSED = 'PAUSED' - CLOSED = 'CLOSED' + AVAILABLE = "AVAILABLE" + PAUSED = "PAUSED" + CLOSED = "CLOSED" class PriceData(BaseModel): @@ -157,9 +157,9 @@ class EntityLiveDataResponse(BaseModel): class Type(Enum): - ADMISSION = 'ADMISSION' - PACKAGE = 'PACKAGE' - ATTRACTION = 'ATTRACTION' + ADMISSION = "ADMISSION" + PACKAGE = "PACKAGE" + ATTRACTION = "ATTRACTION" class SchedulePriceObject(BaseModel): @@ -171,11 +171,11 @@ class SchedulePriceObject(BaseModel): class Type1(Enum): - OPERATING = 'OPERATING' - TICKETED_EVENT = 'TICKETED_EVENT' - PRIVATE_EVENT = 'PRIVATE_EVENT' - EXTRA_HOURS = 'EXTRA_HOURS' - INFO = 'INFO' + OPERATING = "OPERATING" + TICKETED_EVENT = "TICKETED_EVENT" + PRIVATE_EVENT = "PRIVATE_EVENT" + EXTRA_HOURS = "EXTRA_HOURS" + INFO = "INFO" class ScheduleEntry(BaseModel):