elif county_name == "St. Louis City": fips = "510" county_name = "St. Louis" else: fips = dogcatcher.fips_find(county_name, voter_state) if "City" not in county_name: county_result.append([authority_name, first_name, last_name, county_name, fips, street, city, address_state, zip_code, po_street, po_city, po_state, po_zip_code, reg_authority_name, reg_first, reg_last, reg_street, reg_city, reg_state, reg_zip_code, reg_po_street, reg_po_city, reg_po_state, reg_po_zip_code, reg_phone, reg_fax, reg_email, reg_website, reg_hours, phone, fax, email, website, hours, voter_state, source, review]) else: print county_name city_result.append([authority_name, first_name, last_name, town_name, county_name, fips, street, city, address_state, zip_code, po_street, po_city, po_state, po_zip_code, reg_authority_name, reg_first, reg_last, reg_street, reg_city, reg_state, reg_zip_code, reg_po_street, reg_po_city, reg_po_state, reg_po_zip_code, reg_phone, reg_fax, reg_email, reg_website, reg_hours, phone, fax, email, website, hours, voter_state, source, review]) #This outputs the results to two separate text files: one for counties in MO, and one for cities. dogcatcher.output(county_result, voter_state, cdir) dogcatcher.output(city_result, voter_state, cdir, "cities")
city = city_re.findall(address[2])[0].strip() zip_code = zip_re.findall(address[2])[0].strip() street = address[0].strip() phone = dogcatcher.find_phone(phone_re, county) fax = dogcatcher.find_phone(fax_re, county) email = dogcatcher.find_emails(email_re, county) hours = hours_re.findall(county)[0].strip(" \r\n") if "PO Box" not in po_street: review = review + "c" fips = dogcatcher.find_fips(county_name, voter_state) if fips == "": print county_name + " has no findable FIPS. It may be a spellling difference." sys.exit() result.append([ authority_name, first_name, last_name, county_name, fips, street, city, address_state, zip_code, po_street, po_city, po_state, po_zip_code, reg_authority_name, reg_first, reg_last, reg_street, reg_city, reg_state, reg_zip_code, reg_po_street, reg_po_city, reg_po_state, reg_po_zip_code, reg_phone, reg_fax, reg_email, reg_website, reg_hours, phone, fax, email, website, hours, voter_state, source, review ]) #This outputs the results to a separate text file. dogcatcher.output(result, voter_state, cdir)
phone = dogcatcher.find_phone(phone_re, county) fax = dogcatcher.find_phone(fax_re,county) email = dogcatcher.find_emails(email_re, county) try: if county_name == "Staunton City": website = "http://www.staunton.va.us/directory/departments-h-z/registrar/how-to-vote" else: website = dogcatcher.website_find(website_re, county) except: website = "" fips = dogcatcher.find_fips(county_name, voter_state) county_result.append([authority_name, first_name, last_name, county_name, fips, street, city, address_state, zip_code, po_street, po_city, po_state, po_zip_code, reg_authority_name, reg_first, reg_last, reg_street, reg_city, reg_state, reg_zip_code, reg_po_street, reg_po_city, reg_po_state, reg_po_zip_code, reg_phone, reg_fax, reg_email, reg_website, reg_hours, phone, fax, email, website, hours, voter_state, source, review]) # Note: merged the city output back into the county output temporarily because that's # how TurboVote injests it. We have a card to address the true nature of this data # both here and in TV at a later time. dogcatcher.output(county_result, voter_state, cdir)
po_zip_code = zip_re.findall(csz)[0].strip() else: city = city_re.findall(csz)[0].strip() address_state = state_re.findall(csz)[0].strip() zip_code = zip_re.findall(csz)[0].strip() print "_______________________________________________________" website = dogcatcher.find_website(website_re, county) print website if county_name == "Genesee": po_street = "P.O. Box 284" fips = dogcatcher.find_fips(county_name, voter_state) result.append([authority_name, first_name, last_name, county_name, fips, street, city, address_state, zip_code, po_street, po_city, po_state, po_zip_code, reg_authority_name, reg_first, reg_last, reg_street, reg_city, reg_state, reg_zip_code, reg_po_street, reg_po_city, reg_po_state, reg_po_zip_code, reg_phone, reg_fax, reg_email, reg_website, reg_hours, phone, fax, email, website, hours, voter_state, source, review]) #This outputs the results to a separate text file. dogcatcher.output(result, voter_state, cdir)
else: po_city = town_name po_zip_code = zip_code if town_name == "Rowe" and street == "34 BROADWAY": street = "321 Zoar Road" hours = hours_re.findall(town)[0] #This matches the towns to counties to acquire accurate FIPS. print "___________________" base_url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=%s" if street: fips, county_name = dogcatcher.map_fips(city, address_state, zip_code) else: fips, county_name = dogcatcher.map_fips(po_city, po_state, po_zip_code) result.append([authority_name, first_name, last_name, town_name, fips, street, city, address_state, zip_code, po_street, po_city, po_state, po_zip_code, reg_authority_name, reg_first, reg_last, reg_street, reg_city, reg_state, reg_zip_code, reg_po_street, reg_po_city, reg_po_state, reg_po_zip_code, reg_phone, reg_fax, reg_email, reg_website, reg_hours, phone, fax, email, website, hours, voter_state, source, review]) #This outputs the results to a separate text file. dogcatcher.output(result, voter_state, cdir, "cities")
street = address.replace(po_street,"").replace(csz,"") street = street.replace("\n",", ").replace(" ,",",").strip(" \n/,").title() if po_street: po_city = city_re.findall(csz)[0].strip().title() po_state = state_re.findall(csz)[0].strip() po_zip_code = zip_re.findall(csz)[0].strip().title() if street: city = city_re.findall(csz)[0].strip().title() address_state = state_re.findall(csz)[0].strip() zip_code = zip_re.findall(csz)[0].strip().title() if street: fips, county_name = dogcatcher.map_fips(city, address_state, town_name, zip_code) else: fips, county_name = dogcatcher.map_fips(po_city, po_state, town_name, po_zip_code) result.append([authority_name, first_name, last_name, town_name, fips, county_name, street, city, address_state, zip_code, po_street, po_city, po_state, po_zip_code, reg_authority_name, reg_first, reg_last, reg_street, reg_city, reg_state, reg_zip_code, reg_po_street, reg_po_city, reg_po_state, reg_po_zip_code, reg_phone, reg_fax, reg_email, reg_website, reg_hours, phone, fax, email, website, hours, voter_state, source, review]) #This outputs the results to a separate text file. dogcatcher.output(result, voter_state, cdir, "cities")
print po_street + ", " + po_city + ", " + po_state + " " + po_zip_code phone = dogcatcher.find_phone(phone_re, county) fax = dogcatcher.find_phone(fax_re, county) email = dogcatcher.find_emails(email_re, county) try: if county_name == "Staunton City": website = "http://www.staunton.va.us/directory/departments-h-z/registrar/how-to-vote" else: website = dogcatcher.website_find(website_re, county) except: website = "" fips = dogcatcher.find_fips(county_name, voter_state) county_result.append([ authority_name, first_name, last_name, county_name, fips, street, city, address_state, zip_code, po_street, po_city, po_state, po_zip_code, reg_authority_name, reg_first, reg_last, reg_street, reg_city, reg_state, reg_zip_code, reg_po_street, reg_po_city, reg_po_state, reg_po_zip_code, reg_phone, reg_fax, reg_email, reg_website, reg_hours, phone, fax, email, website, hours, voter_state, source, review ]) # Note: merged the city output back into the county output temporarily because that's # how TurboVote injests it. We have a card to address the true nature of this data # both here and in TV at a later time. dogcatcher.output(county_result, voter_state, cdir)
header_row = ["authority_name", "first_name", "last_name", "town_name", "county_name", "fips", "street", "city", "address_state", "zip_code", "po_street", "po_city", "po_state", "po_zip_code", "reg_authority_name", "reg_first", "reg_last", "reg_street", "reg_city", "reg_state", "reg_zip_code", "reg_po_street", "reg_po_city", "reg_po_state", "reg_po_zip_code", "reg_phone", "reg_fax", "reg_email", "reg_website", "reg_hours", "phone", "fax", "email", "website", "hours", "voter_state", "source", "review", "town_name_full"] cities = [header_row] county_name_re = re.compile(r'(.+?)\sCOUNTY\s') town_name_re = re.compile(r'^(TOWN|CITY|VILLAGE)\sOF\s(.+?)\s-.*', re.DOTALL) # process XLS, separate counties from cities for curr_row in range(1, worksheet.nrows): row = worksheet.row_values(curr_row) county_name = county_name_re.search(row[1]) if county_name: current_county = county_name.group(1) current_fips = dogcatcher.find_fips(current_county, voter_state) else: town_name = town_name_re.search(row[1]) if town_name: cities.append(city_data(current_county, current_fips, town_name.group(2), row)) else: print "skipping: " + row[1] dogcatcher.output(cities, voter_state, base_dir(), "cities")
county_result.append([authority_name, first_name, last_name, county_name, fips, street, city, address_state, zip_code, po_street, po_city, po_state, po_zip_code, reg_authority_name, reg_first, reg_last, reg_street, reg_city, reg_state, reg_zip_code, reg_po_street, reg_po_city, reg_po_state, reg_po_zip_code, reg_phone, reg_fax, reg_email, reg_website, reg_hours, phone, fax, email, website, hours, voter_state, source, review]) else: if street: fips, county_name = dogcatcher.map_fips(city, address_state, zip_code) else: fips, county_name = dogcatcher.map_fips(po_city, po_state, po_zip_code) city_result.append([authority_name, first_name, last_name, town_name, county_name, fips, street, city, address_state, zip_code, po_street, po_city, po_state, po_zip_code, reg_authority_name, reg_first, reg_last, reg_street, reg_city, reg_state, reg_zip_code, reg_po_street, reg_po_city, reg_po_state, reg_po_zip_code, reg_phone, reg_fax, reg_email, reg_website, reg_hours, phone, fax, email, website, hours, voter_state, source, review]) #This outputs the results to two separate text files: one for counties in IL, and one for cities. dogcatcher.output(county_result, voter_state, cdir) dogcatcher.output(city_result, voter_state, cdir, "cities")