Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
- bump: patch
changes:
added:
- US congressional district metadata
changed:
- US simulations use default datasets from .py
- Upgraded .py version to 0.7.0
30 changes: 30 additions & 0 deletions policyengine_api/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,34 @@
}
except:
COUNTRY_PACKAGE_VERSIONS = {country: "0.0.0" for country in COUNTRIES}

# Valid region types for each country
# These define the geographic scope categories for regions
US_REGION_TYPES = (
"national", # National level (e.g., "us")
"state", # US states (e.g., "state/ca", "state/ny")
"city", # US cities (e.g., "city/nyc")
"congressional_district", # US congressional districts (e.g., "congressional_district/CA-37")
)

UK_REGION_TYPES = (
"national", # National level (e.g., "uk")
"country", # UK countries (e.g., "country/england", "country/scotland")
"constituency", # UK parliamentary constituencies (e.g., "constituency/Aldershot")
)

# Valid region prefixes for each country
# These define the allowed geographic scope prefixes in region names
REGION_PREFIXES = {
"us": [
"state/", # US states (e.g., "state/ca", "state/ny")
"city/", # US cities (e.g., "city/nyc")
"congressional_district/", # US congressional districts (e.g., "congressional_district/CA-37")
],
"uk": [
"country/", # UK countries (e.g., "country/england", "country/scotland")
"constituency/", # UK parliamentary constituencies (e.g., "constituency/Aldershot")
],
}

__version__ = VERSION
128 changes: 70 additions & 58 deletions policyengine_api/country.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
import math
import pandas as pd
from pathlib import Path
from policyengine_api.data.congressional_districts import (
build_congressional_district_metadata,
)

# Note: The following policyengine_[xx] imports are probably redundant.
# These modules are imported dynamically in the __init__ function below.
Expand Down Expand Up @@ -71,17 +74,22 @@ def build_microsimulation_options(self) -> dict:
)
constituency_names = pd.read_csv(constituency_names_path)
region = [
dict(name="uk", label="the UK"),
dict(name="country/england", label="England"),
dict(name="country/scotland", label="Scotland"),
dict(name="country/wales", label="Wales"),
dict(name="country/ni", label="Northern Ireland"),
dict(name="uk", label="the UK", type="national"),
dict(name="country/england", label="England", type="country"),
dict(
name="country/scotland", label="Scotland", type="country"
),
dict(name="country/wales", label="Wales", type="country"),
dict(
name="country/ni", label="Northern Ireland", type="country"
),
]
for i in range(len(constituency_names)):
region.append(
dict(
name=f"constituency/{constituency_names.iloc[i]['name']}",
label=constituency_names.iloc[i]["name"],
type="constituency",
)
)
time_period = [
Expand All @@ -99,60 +107,64 @@ def build_microsimulation_options(self) -> dict:
options["datasets"] = datasets
elif self.country_id == "us":
region = [
dict(name="us", label="the US"),
dict(name="al", label="Alabama"),
dict(name="ak", label="Alaska"),
dict(name="az", label="Arizona"),
dict(name="ar", label="Arkansas"),
dict(name="ca", label="California"),
dict(name="co", label="Colorado"),
dict(name="ct", label="Connecticut"),
dict(name="de", label="Delaware"),
dict(name="dc", label="District of Columbia"),
dict(name="fl", label="Florida"),
dict(name="ga", label="Georgia"),
dict(name="hi", label="Hawaii"),
dict(name="id", label="Idaho"),
dict(name="il", label="Illinois"),
dict(name="in", label="Indiana"),
dict(name="ia", label="Iowa"),
dict(name="ks", label="Kansas"),
dict(name="ky", label="Kentucky"),
dict(name="la", label="Louisiana"),
dict(name="me", label="Maine"),
dict(name="md", label="Maryland"),
dict(name="ma", label="Massachusetts"),
dict(name="mi", label="Michigan"),
dict(name="mn", label="Minnesota"),
dict(name="ms", label="Mississippi"),
dict(name="mo", label="Missouri"),
dict(name="mt", label="Montana"),
dict(name="ne", label="Nebraska"),
dict(name="nv", label="Nevada"),
dict(name="nh", label="New Hampshire"),
dict(name="nj", label="New Jersey"),
dict(name="nm", label="New Mexico"),
dict(name="ny", label="New York"),
dict(name="nyc", label="New York City"), # Region, not State
dict(name="nc", label="North Carolina"),
dict(name="nd", label="North Dakota"),
dict(name="oh", label="Ohio"),
dict(name="ok", label="Oklahoma"),
dict(name="or", label="Oregon"),
dict(name="pa", label="Pennsylvania"),
dict(name="ri", label="Rhode Island"),
dict(name="sc", label="South Carolina"),
dict(name="sd", label="South Dakota"),
dict(name="tn", label="Tennessee"),
dict(name="tx", label="Texas"),
dict(name="ut", label="Utah"),
dict(name="vt", label="Vermont"),
dict(name="va", label="Virginia"),
dict(name="wa", label="Washington"),
dict(name="wv", label="West Virginia"),
dict(name="wi", label="Wisconsin"),
dict(name="wy", label="Wyoming"),
dict(name="us", label="the US", type="national"),
dict(name="state/al", label="Alabama", type="state"),
dict(name="state/ak", label="Alaska", type="state"),
dict(name="state/az", label="Arizona", type="state"),
dict(name="state/ar", label="Arkansas", type="state"),
dict(name="state/ca", label="California", type="state"),
dict(name="state/co", label="Colorado", type="state"),
dict(name="state/ct", label="Connecticut", type="state"),
dict(name="state/de", label="Delaware", type="state"),
dict(
name="state/dc", label="District of Columbia", type="state"
),
dict(name="state/fl", label="Florida", type="state"),
dict(name="state/ga", label="Georgia", type="state"),
dict(name="state/hi", label="Hawaii", type="state"),
dict(name="state/id", label="Idaho", type="state"),
dict(name="state/il", label="Illinois", type="state"),
dict(name="state/in", label="Indiana", type="state"),
dict(name="state/ia", label="Iowa", type="state"),
dict(name="state/ks", label="Kansas", type="state"),
dict(name="state/ky", label="Kentucky", type="state"),
dict(name="state/la", label="Louisiana", type="state"),
dict(name="state/me", label="Maine", type="state"),
dict(name="state/md", label="Maryland", type="state"),
dict(name="state/ma", label="Massachusetts", type="state"),
dict(name="state/mi", label="Michigan", type="state"),
dict(name="state/mn", label="Minnesota", type="state"),
dict(name="state/ms", label="Mississippi", type="state"),
dict(name="state/mo", label="Missouri", type="state"),
dict(name="state/mt", label="Montana", type="state"),
dict(name="state/ne", label="Nebraska", type="state"),
dict(name="state/nv", label="Nevada", type="state"),
dict(name="state/nh", label="New Hampshire", type="state"),
dict(name="state/nj", label="New Jersey", type="state"),
dict(name="state/nm", label="New Mexico", type="state"),
dict(name="state/ny", label="New York", type="state"),
dict(name="city/nyc", label="New York City", type="city"),
dict(name="state/nc", label="North Carolina", type="state"),
dict(name="state/nd", label="North Dakota", type="state"),
dict(name="state/oh", label="Ohio", type="state"),
dict(name="state/ok", label="Oklahoma", type="state"),
dict(name="state/or", label="Oregon", type="state"),
dict(name="state/pa", label="Pennsylvania", type="state"),
dict(name="state/ri", label="Rhode Island", type="state"),
dict(name="state/sc", label="South Carolina", type="state"),
dict(name="state/sd", label="South Dakota", type="state"),
dict(name="state/tn", label="Tennessee", type="state"),
dict(name="state/tx", label="Texas", type="state"),
dict(name="state/ut", label="Utah", type="state"),
dict(name="state/vt", label="Vermont", type="state"),
dict(name="state/va", label="Virginia", type="state"),
dict(name="state/wa", label="Washington", type="state"),
dict(name="state/wv", label="West Virginia", type="state"),
dict(name="state/wi", label="Wisconsin", type="state"),
dict(name="state/wy", label="Wyoming", type="state"),
]
# Add all 436 congressional districts (435 voting + DC)
region.extend(build_congressional_district_metadata())
time_period = [
dict(name=2035, label="2035"),
dict(name=2034, label="2034"),
Expand Down
Loading
Loading