def scrape_votes(self, session): votes = {} last_line = [] for line in self.zf.open('tblrollcallsummary.txt'): if line.strip() == "": continue line = line.split('|') if len(line) < 14: if len(last_line + line[1:]) == 14: line = last_line self.warning('used bad vote line') else: last_line = line self.warning('bad vote line %s' % '|'.join(line)) session_yr = line[0] body = line[1] vote_num = line[2] timestamp = line[3] bill_id = line[4].strip() yeas = int(line[5]) nays = int(line[6]) present = int(line[7]) absent = int(line[8]) motion = line[11].strip() if session_yr == session and bill_id in self.bills_by_id: actor = 'lower' if body == 'H' else 'upper' time = datetime.datetime.strptime(timestamp, '%m/%d/%Y %H:%M:%S %p') # TODO: stop faking passed somehow passed = yeas > nays vote = Vote(actor, time, motion, passed, yeas, nays, other_count=0) votes[body+vote_num] = vote self.bills_by_id[bill_id].add_vote(vote) for line in self.zf.open('tblrollcallhistory.txt'): session_yr, body, v_num, employee, bill_id, vote = line.split('|') if session_yr == session and bill_id.strip() in self.bills_by_id: leg = self.legislators[employee]['name'] vote = vote.strip() if not body+v_num in votes: self.warning("Skipping processing this vote:") self.warning("Bad ID: %s" % ( body+v_num ) ) continue #code = self.legislators[employee]['seat'] if vote == 'Yea': votes[body+v_num].yes(leg) elif vote == 'Nay': votes[body+v_num].no(leg) else: votes[body+v_num].other(leg) votes[body+v_num]['other_count'] += 1
def scrape_votes(self, session): votes = {} last_line = [] for line in self.zf.open('tblrollcallsummary.txt'): line = line.split('|') if len(line) < 14: if len(last_line + line[1:]) == 14: line = last_line self.warning('used bad vote line') else: last_line = line self.warning('bad vote line %s' % '|'.join(line)) session_yr = line[0] body = line[1] vote_num = line[2] timestamp = line[3] bill_id = line[4].strip() yeas = int(line[5]) nays = int(line[6]) present = int(line[7]) absent = int(line[8]) motion = line[11].strip() if session_yr == session and bill_id in self.bills_by_id: actor = 'lower' if body == 'H' else 'upper' time = datetime.datetime.strptime(timestamp, '%m/%d/%Y %H:%M:%S %p') # TODO: stop faking passed somehow passed = yeas > nays vote = Vote(actor, time, motion, passed, yeas, nays, absent) votes[body + vote_num] = vote self.bills_by_id[bill_id].add_vote(vote) for line in self.zf.open('tblrollcallhistory.txt'): session_yr, body, v_num, employee, bill_id, vote = line.split('|') if session_yr == session and bill_id.strip() in self.bills_by_id: leg = self.legislators[employee]['name'] vote = vote.strip() #code = self.legislators[employee]['seat'] if vote == 'Yea': votes[body + v_num].yes(leg) elif vote == 'Nay': votes[body + v_num].no(leg) else: votes[body + v_num].other(leg)
def scrape_votes(self, session): votes = {} last_line = [] for line in self.zf.open("tblrollcallsummary.txt"): line = line.split("|") if len(line) < 14: if len(last_line + line[1:]) == 14: line = last_line self.warning("used bad vote line") else: last_line = line self.warning("bad vote line %s" % "|".join(line)) session_yr = line[0] body = line[1] vote_num = line[2] timestamp = line[3] bill_id = line[4].strip() yeas = int(line[5]) nays = int(line[6]) present = int(line[7]) absent = int(line[8]) motion = line[11].strip() if session_yr == session and bill_id in self.bills_by_id: actor = "lower" if body == "H" else "upper" time = datetime.datetime.strptime(timestamp, "%m/%d/%Y %H:%M:%S %p") # TODO: stop faking passed somehow passed = yeas > nays vote = Vote(actor, time, motion, passed, yeas, nays, absent) votes[body + vote_num] = vote self.bills_by_id[bill_id].add_vote(vote) for line in self.zf.open("tblrollcallhistory.txt"): session_yr, body, v_num, employee, bill_id, vote = line.split("|") if session_yr == session and bill_id.strip() in self.bills_by_id: leg = self.legislators[employee]["name"] vote = vote.strip() # code = self.legislators[employee]['seat'] if vote == "Yea": votes[body + v_num].yes(leg) elif vote == "Nay": votes[body + v_num].no(leg) else: votes[body + v_num].other(leg)
def scrape_votes(self, session): votes = {} last_line = [] for line in self.zf.open('tblrollcallsummary.txt'): if line.strip() == "": continue line = line.split('|') if len(line) < 14: if len(last_line + line[1:]) == 14: line = last_line self.warning('used bad vote line') else: last_line = line self.warning('bad vote line %s' % '|'.join(line)) session_yr = line[0] body = line[1] vote_num = line[2] timestamp = line[3] bill_id = line[4].strip() yeas = int(line[5]) nays = int(line[6]) present = int(line[7]) absent = int(line[8]) motion = line[11].strip() if session_yr == session and bill_id in self.bills_by_id: actor = 'lower' if body == 'H' else 'upper' time = dt.datetime.strptime(timestamp, '%m/%d/%Y %I:%M:%S %p') # TODO: stop faking passed somehow passed = yeas > nays vote = Vote(actor, time, motion, passed, yeas, nays, other_count=0) votes[body + vote_num] = vote self.bills_by_id[bill_id].add_vote(vote) for line in self.zf.open('tblrollcallhistory.txt'): # 2012 | H | 2 | 330795 | HB309 | Yea |1/4/2012 8:27:03 PM session_yr, body, v_num, employee, bill_id, vote, date \ = line.split('|') date = date.strip() datetime = dt.datetime.strptime(date, "%m/%d/%Y %I:%M:%S %p") # We don't actually use the datetime - this is for each person's # actual vote. We can't throw it in the yes/no as a kwarg, so # going to punt this back. if session_yr == session and bill_id.strip() in self.bills_by_id: try: leg = self.legislators[employee]['name'] except KeyError: self.warning("Error, can't find person %s" % employee) continue vote = vote.strip() if not body + v_num in votes: self.warning("Skipping processing this vote:") self.warning("Bad ID: %s" % (body + v_num)) continue #code = self.legislators[employee]['seat'] if vote == 'Yea': votes[body + v_num].yes(leg) elif vote == 'Nay': votes[body + v_num].no(leg) else: votes[body + v_num].other(leg) votes[body + v_num]['other_count'] += 1
def scrape_votes(self, session): votes = {} last_line = [] for line in self.get( 'http://gencourt.state.nh.us/dynamicdatafiles/RollCallSummary.txt' ).content: if len(line) < 2: continue if line.strip() == "": continue line = line.split('|') if len(line) < 14: if len(last_line + line[1:]) == 14: line = last_line self.warning('used bad vote line') else: last_line = line self.warning('bad vote line %s' % '|'.join(line)) session_yr = line[0] body = line[1] vote_num = line[2] timestamp = line[3] bill_id = line[4].strip() yeas = int(line[5]) nays = int(line[6]) present = int(line[7]) absent = int(line[8]) motion = line[11].strip() or '[not available]' if session_yr == session and bill_id in self.bills_by_id: actor = 'lower' if body == 'H' else 'upper' time = dt.datetime.strptime(timestamp, '%m/%d/%Y %I:%M:%S %p') # TODO: stop faking passed somehow passed = yeas > nays vote = Vote(actor, time, motion, passed, yeas, nays, other_count=0) votes[body + vote_num] = vote self.bills_by_id[bill_id].add_vote(vote) for line in self.get( 'http://gencourt.state.nh.us/dynamicdatafiles/RollCallHistory.txt' ).content: if len(line) < 2: continue # 2016|H|2|330795||Yea| # 2012 | H | 2 | 330795 | HB309 | Yea |1/4/2012 8:27:03 PM session_yr, body, v_num, employee, bill_id, vote \ = line.split('|') if not bill_id: continue if session_yr == session and bill_id.strip() in self.bills_by_id: try: leg = self.legislators[employee]['name'] except KeyError: self.warning("Error, can't find person %s" % employee) continue vote = vote.strip() if not body + v_num in votes: self.warning("Skipping processing this vote:") self.warning("Bad ID: %s" % (body + v_num)) continue #code = self.legislators[employee]['seat'] if vote == 'Yea': votes[body + v_num].yes(leg) elif vote == 'Nay': votes[body + v_num].no(leg) else: votes[body + v_num].other(leg) votes[body + v_num]['other_count'] += 1
def scrape_votes(self, session): votes = {} last_line = [] for line in self.zf.open("tblrollcallsummary.txt"): if line.strip() == "": continue line = line.split("|") if len(line) < 14: if len(last_line + line[1:]) == 14: line = last_line self.warning("used bad vote line") else: last_line = line self.warning("bad vote line %s" % "|".join(line)) session_yr = line[0] body = line[1] vote_num = line[2] timestamp = line[3] bill_id = line[4].strip() yeas = int(line[5]) nays = int(line[6]) present = int(line[7]) absent = int(line[8]) motion = line[11].strip() if session_yr == session and bill_id in self.bills_by_id: actor = "lower" if body == "H" else "upper" time = dt.datetime.strptime(timestamp, "%m/%d/%Y %I:%M:%S %p") # TODO: stop faking passed somehow passed = yeas > nays vote = Vote(actor, time, motion, passed, yeas, nays, other_count=0) votes[body + vote_num] = vote self.bills_by_id[bill_id].add_vote(vote) for line in self.zf.open("tblrollcallhistory.txt"): # 2012 | H | 2 | 330795 | HB309 | Yea |1/4/2012 8:27:03 PM session_yr, body, v_num, employee, bill_id, vote, date = line.split("|") date = date.strip() datetime = dt.datetime.strptime(date, "%m/%d/%Y %I:%M:%S %p") # We don't actually use the datetime - this is for each person's # actual vote. We can't throw it in the yes/no as a kwarg, so # going to punt this back. if session_yr == session and bill_id.strip() in self.bills_by_id: try: leg = self.legislators[employee]["name"] except KeyError: self.warning("Error, can't find person %s" % employee) continue vote = vote.strip() if not body + v_num in votes: self.warning("Skipping processing this vote:") self.warning("Bad ID: %s" % (body + v_num)) continue # code = self.legislators[employee]['seat'] if vote == "Yea": votes[body + v_num].yes(leg) elif vote == "Nay": votes[body + v_num].no(leg) else: votes[body + v_num].other(leg) votes[body + v_num]["other_count"] += 1
def scrape_votes(self, session): votes = {} last_line = [] for line in self.get('http://gencourt.state.nh.us/dynamicdatafiles/RollCallSummary.txt').content: if len(line) < 2: continue if line.strip() == "": continue line = line.split('|') if len(line) < 14: if len(last_line + line[1:]) == 14: line = last_line self.warning('used bad vote line') else: last_line = line self.warning('bad vote line %s' % '|'.join(line)) session_yr = line[0] body = line[1] vote_num = line[2] timestamp = line[3] bill_id = line[4].strip() yeas = int(line[5]) nays = int(line[6]) present = int(line[7]) absent = int(line[8]) motion = line[11].strip() or '[not available]' if session_yr == session and bill_id in self.bills_by_id: actor = 'lower' if body == 'H' else 'upper' time = dt.datetime.strptime(timestamp, '%m/%d/%Y %I:%M:%S %p') # TODO: stop faking passed somehow passed = yeas > nays vote = Vote(actor, time, motion, passed, yeas, nays, other_count=0) votes[body+vote_num] = vote self.bills_by_id[bill_id].add_vote(vote) for line in self.get('http://gencourt.state.nh.us/dynamicdatafiles/RollCallHistory.txt').content: if len(line) < 2: continue # 2016|H|2|330795||Yea| # 2012 | H | 2 | 330795 | HB309 | Yea |1/4/2012 8:27:03 PM session_yr, body, v_num, employee, bill_id, vote \ = line.split('|') if not bill_id: continue if session_yr == session and bill_id.strip() in self.bills_by_id: try: leg = self.legislators[employee]['name'] except KeyError: self.warning("Error, can't find person %s" % employee) continue vote = vote.strip() if not body+v_num in votes: self.warning("Skipping processing this vote:") self.warning("Bad ID: %s" % ( body+v_num ) ) continue #code = self.legislators[employee]['seat'] if vote == 'Yea': votes[body+v_num].yes(leg) elif vote == 'Nay': votes[body+v_num].no(leg) else: votes[body+v_num].other(leg) votes[body+v_num]['other_count'] += 1