1818import math
1919import pandas as pd
2020from pathlib import Path
21+ from policyengine_api .data .congressional_districts import (
22+ build_congressional_district_metadata ,
23+ )
2124
2225# Note: The following policyengine_[xx] imports are probably redundant.
2326# These modules are imported dynamically in the __init__ function below.
@@ -71,17 +74,22 @@ def build_microsimulation_options(self) -> dict:
7174 )
7275 constituency_names = pd .read_csv (constituency_names_path )
7376 region = [
74- dict (name = "uk" , label = "the UK" ),
75- dict (name = "country/england" , label = "England" ),
76- dict (name = "country/scotland" , label = "Scotland" ),
77- dict (name = "country/wales" , label = "Wales" ),
78- dict (name = "country/ni" , label = "Northern Ireland" ),
77+ dict (name = "uk" , label = "the UK" , type = "national" ),
78+ dict (name = "country/england" , label = "England" , type = "country" ),
79+ dict (
80+ name = "country/scotland" , label = "Scotland" , type = "country"
81+ ),
82+ dict (name = "country/wales" , label = "Wales" , type = "country" ),
83+ dict (
84+ name = "country/ni" , label = "Northern Ireland" , type = "country"
85+ ),
7986 ]
8087 for i in range (len (constituency_names )):
8188 region .append (
8289 dict (
8390 name = f"constituency/{ constituency_names .iloc [i ]['name' ]} " ,
8491 label = constituency_names .iloc [i ]["name" ],
92+ type = "constituency" ,
8593 )
8694 )
8795 time_period = [
@@ -99,60 +107,64 @@ def build_microsimulation_options(self) -> dict:
99107 options ["datasets" ] = datasets
100108 elif self .country_id == "us" :
101109 region = [
102- dict (name = "us" , label = "the US" ),
103- dict (name = "al" , label = "Alabama" ),
104- dict (name = "ak" , label = "Alaska" ),
105- dict (name = "az" , label = "Arizona" ),
106- dict (name = "ar" , label = "Arkansas" ),
107- dict (name = "ca" , label = "California" ),
108- dict (name = "co" , label = "Colorado" ),
109- dict (name = "ct" , label = "Connecticut" ),
110- dict (name = "de" , label = "Delaware" ),
111- dict (name = "dc" , label = "District of Columbia" ),
112- dict (name = "fl" , label = "Florida" ),
113- dict (name = "ga" , label = "Georgia" ),
114- dict (name = "hi" , label = "Hawaii" ),
115- dict (name = "id" , label = "Idaho" ),
116- dict (name = "il" , label = "Illinois" ),
117- dict (name = "in" , label = "Indiana" ),
118- dict (name = "ia" , label = "Iowa" ),
119- dict (name = "ks" , label = "Kansas" ),
120- dict (name = "ky" , label = "Kentucky" ),
121- dict (name = "la" , label = "Louisiana" ),
122- dict (name = "me" , label = "Maine" ),
123- dict (name = "md" , label = "Maryland" ),
124- dict (name = "ma" , label = "Massachusetts" ),
125- dict (name = "mi" , label = "Michigan" ),
126- dict (name = "mn" , label = "Minnesota" ),
127- dict (name = "ms" , label = "Mississippi" ),
128- dict (name = "mo" , label = "Missouri" ),
129- dict (name = "mt" , label = "Montana" ),
130- dict (name = "ne" , label = "Nebraska" ),
131- dict (name = "nv" , label = "Nevada" ),
132- dict (name = "nh" , label = "New Hampshire" ),
133- dict (name = "nj" , label = "New Jersey" ),
134- dict (name = "nm" , label = "New Mexico" ),
135- dict (name = "ny" , label = "New York" ),
136- dict (name = "nyc" , label = "New York City" ), # Region, not State
137- dict (name = "nc" , label = "North Carolina" ),
138- dict (name = "nd" , label = "North Dakota" ),
139- dict (name = "oh" , label = "Ohio" ),
140- dict (name = "ok" , label = "Oklahoma" ),
141- dict (name = "or" , label = "Oregon" ),
142- dict (name = "pa" , label = "Pennsylvania" ),
143- dict (name = "ri" , label = "Rhode Island" ),
144- dict (name = "sc" , label = "South Carolina" ),
145- dict (name = "sd" , label = "South Dakota" ),
146- dict (name = "tn" , label = "Tennessee" ),
147- dict (name = "tx" , label = "Texas" ),
148- dict (name = "ut" , label = "Utah" ),
149- dict (name = "vt" , label = "Vermont" ),
150- dict (name = "va" , label = "Virginia" ),
151- dict (name = "wa" , label = "Washington" ),
152- dict (name = "wv" , label = "West Virginia" ),
153- dict (name = "wi" , label = "Wisconsin" ),
154- dict (name = "wy" , label = "Wyoming" ),
110+ dict (name = "us" , label = "the US" , type = "national" ),
111+ dict (name = "state/al" , label = "Alabama" , type = "state" ),
112+ dict (name = "state/ak" , label = "Alaska" , type = "state" ),
113+ dict (name = "state/az" , label = "Arizona" , type = "state" ),
114+ dict (name = "state/ar" , label = "Arkansas" , type = "state" ),
115+ dict (name = "state/ca" , label = "California" , type = "state" ),
116+ dict (name = "state/co" , label = "Colorado" , type = "state" ),
117+ dict (name = "state/ct" , label = "Connecticut" , type = "state" ),
118+ dict (name = "state/de" , label = "Delaware" , type = "state" ),
119+ dict (
120+ name = "state/dc" , label = "District of Columbia" , type = "state"
121+ ),
122+ dict (name = "state/fl" , label = "Florida" , type = "state" ),
123+ dict (name = "state/ga" , label = "Georgia" , type = "state" ),
124+ dict (name = "state/hi" , label = "Hawaii" , type = "state" ),
125+ dict (name = "state/id" , label = "Idaho" , type = "state" ),
126+ dict (name = "state/il" , label = "Illinois" , type = "state" ),
127+ dict (name = "state/in" , label = "Indiana" , type = "state" ),
128+ dict (name = "state/ia" , label = "Iowa" , type = "state" ),
129+ dict (name = "state/ks" , label = "Kansas" , type = "state" ),
130+ dict (name = "state/ky" , label = "Kentucky" , type = "state" ),
131+ dict (name = "state/la" , label = "Louisiana" , type = "state" ),
132+ dict (name = "state/me" , label = "Maine" , type = "state" ),
133+ dict (name = "state/md" , label = "Maryland" , type = "state" ),
134+ dict (name = "state/ma" , label = "Massachusetts" , type = "state" ),
135+ dict (name = "state/mi" , label = "Michigan" , type = "state" ),
136+ dict (name = "state/mn" , label = "Minnesota" , type = "state" ),
137+ dict (name = "state/ms" , label = "Mississippi" , type = "state" ),
138+ dict (name = "state/mo" , label = "Missouri" , type = "state" ),
139+ dict (name = "state/mt" , label = "Montana" , type = "state" ),
140+ dict (name = "state/ne" , label = "Nebraska" , type = "state" ),
141+ dict (name = "state/nv" , label = "Nevada" , type = "state" ),
142+ dict (name = "state/nh" , label = "New Hampshire" , type = "state" ),
143+ dict (name = "state/nj" , label = "New Jersey" , type = "state" ),
144+ dict (name = "state/nm" , label = "New Mexico" , type = "state" ),
145+ dict (name = "state/ny" , label = "New York" , type = "state" ),
146+ dict (name = "city/nyc" , label = "New York City" , type = "city" ),
147+ dict (name = "state/nc" , label = "North Carolina" , type = "state" ),
148+ dict (name = "state/nd" , label = "North Dakota" , type = "state" ),
149+ dict (name = "state/oh" , label = "Ohio" , type = "state" ),
150+ dict (name = "state/ok" , label = "Oklahoma" , type = "state" ),
151+ dict (name = "state/or" , label = "Oregon" , type = "state" ),
152+ dict (name = "state/pa" , label = "Pennsylvania" , type = "state" ),
153+ dict (name = "state/ri" , label = "Rhode Island" , type = "state" ),
154+ dict (name = "state/sc" , label = "South Carolina" , type = "state" ),
155+ dict (name = "state/sd" , label = "South Dakota" , type = "state" ),
156+ dict (name = "state/tn" , label = "Tennessee" , type = "state" ),
157+ dict (name = "state/tx" , label = "Texas" , type = "state" ),
158+ dict (name = "state/ut" , label = "Utah" , type = "state" ),
159+ dict (name = "state/vt" , label = "Vermont" , type = "state" ),
160+ dict (name = "state/va" , label = "Virginia" , type = "state" ),
161+ dict (name = "state/wa" , label = "Washington" , type = "state" ),
162+ dict (name = "state/wv" , label = "West Virginia" , type = "state" ),
163+ dict (name = "state/wi" , label = "Wisconsin" , type = "state" ),
164+ dict (name = "state/wy" , label = "Wyoming" , type = "state" ),
155165 ]
166+ # Add all 436 congressional districts (435 voting + DC)
167+ region .extend (build_congressional_district_metadata ())
156168 time_period = [
157169 dict (name = 2035 , label = "2035" ),
158170 dict (name = 2034 , label = "2034" ),
0 commit comments