mirror of
https://github.com/unitedstates/congress-legislators.git
synced 2025-12-19 18:05:51 -05:00
65 lines
1.8 KiB
Python
Executable File
65 lines
1.8 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
# Use the House' member labels file to update some basic info, including bioguide IDs, for members.
|
|
|
|
# Assumes state and district are already present.
|
|
|
|
import csv, re
|
|
import utils
|
|
from utils import load_data, save_data
|
|
|
|
|
|
def run():
|
|
house_labels = "labels-113.csv"
|
|
|
|
names = utils.flags().get('names', False)
|
|
|
|
y = load_data("legislators-current.yaml")
|
|
by_district = { }
|
|
for m in y:
|
|
last_term = m['terms'][-1]
|
|
if last_term['type'] != 'sen':
|
|
full_district = "%s%02d" % (last_term['state'], int(last_term['district']))
|
|
by_district[full_district] = m
|
|
|
|
|
|
for rec in csv.DictReader(open(house_labels)):
|
|
full_district = rec['113 ST/DIS']
|
|
|
|
# empty seat - IL-02
|
|
if full_district not in by_district:
|
|
if full_district == "IL02":
|
|
continue
|
|
else:
|
|
raise "No!!"
|
|
|
|
rec["MIDDLE"] = rec["MIDDLE"].decode("utf8").strip()
|
|
rec["NICK"] = None
|
|
m = re.match('^(.*) \u201c(.*)\u201d$', rec["MIDDLE"])
|
|
if m:
|
|
rec["MIDDLE"] = m.group(1)
|
|
rec["NICK"] = m.group(2)
|
|
|
|
by_district[full_district]['terms'][-1]['office'] = rec["ADDRESS"].strip()
|
|
|
|
# only set name fields if we've been asked to (as a stopgap)
|
|
if names:
|
|
by_district[full_district]["name"]["first"] = rec["FIRST"].decode("utf8").strip()
|
|
if rec["MIDDLE"]:
|
|
by_district[full_district]["name"]["middle"] = rec["MIDDLE"]
|
|
if rec["NICK"]:
|
|
by_district[full_district]["name"]["nickname"] = rec["NICK"]
|
|
by_district[full_district]["name"]["last"] = rec["LAST"].decode("utf8").strip()
|
|
|
|
if rec["BIOGUIDE ID"] == "G000574":
|
|
# The Clerk has the wrong ID for Alan Grayson!
|
|
rec["BIOGUIDE ID"] = "G000556"
|
|
|
|
by_district[full_district]["id"]["bioguide"] = rec["BIOGUIDE ID"]
|
|
|
|
print("[%s] Saved" % full_district)
|
|
|
|
save_data(y, "legislators-current.yaml")
|
|
|
|
if __name__ == '__main__':
|
|
run() |