Add place-level region support and remove city region type#3195
Merged
Add place-level region support and remove city region type#3195
Conversation
- Add support for place/ prefix regions with format place/{STATE_ABBREV}-{PLACE_FIPS}
(e.g., place/NJ-57000 for Newark, NJ)
- Remove city/ prefix and city region type (previously only supported NYC)
- Update _validate_us_region to validate place codes:
- Validates state abbreviation
- Validates 5-digit FIPS code format
- Update normalize_us_region to pass through place/ prefix
- Remove city/nyc from metadata region list
- Update all related tests
Fixes #3194
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Draft
5 tasks
- Add parse_place_code() to extract state and FIPS from place codes - Add validate_place_code() for reusable place code validation - Update _validate_us_region to use the new helpers - Add comprehensive unit tests for both helper functions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create policyengine_api/data/places.py with parse_place_code and validate_place_code - Remove place functions from congressional_districts.py - Update economy_service.py import to use new module - Create tests/unit/data/test_places.py with dedicated tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Place regions use their parent state's dataset for simulation. Extract the state abbreviation from the place code and use that to get the dataset path from get_default_dataset. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…e's dataset" This reverts commit a1109cf.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3195 +/- ##
==========================================
+ Coverage 70.56% 70.75% +0.19%
==========================================
Files 55 56 +1
Lines 2388 2397 +9
Branches 339 340 +1
==========================================
+ Hits 1685 1696 +11
+ Misses 642 641 -1
+ Partials 61 60 -1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #3194
Summary
place/{STATE_ABBREV}-{PLACE_FIPS}(e.g.,place/NJ-57000for Newark, NJ)city/nyc) in favor of the more comprehensive place regionsRequires PolicyEngine/policyengine.py#223
Changes
Added
place/prefix validation in_validate_us_region:place/prefix passthrough innormalize_us_regionREGION_PREFIXESandUS_REGION_TYPESconstantsRemoved
city/prefix validation and handlingcity/nycfrom metadata region listnyc→city/nycnormalizationTest plan
place/NJ-57000Related
place_fipsfiltering)🤖 Generated with Claude Code