def write_db_top_term(): general.init_db() print "*** Writing bill top terms to database" for session_num in general.CONGRESSES: s = str(session_num) sys.stdout.write(' Writing congress ' + s + '...') sys.stdout.flush() for filename in xml_utils.files_of_session(s): with open(filename) as f: soup = BeautifulSoup(f.read()) xml_bill = soup.bill bill_id = unicode(xml_utils.id_of_xml_bill(xml_bill)) bill_obj = Bill.query.get(bill_id) xml_top_term = xml_bill.subjects.find('term') if (xml_top_term is not None) and (bill_obj is not None): top_term = xml_top_term['name'] top_term_obj = Term.query.filter_by(name=top_term) \ .first() bill_obj.top_term = top_term_obj print 'done' print "" general.close_db(write=True)
def write_db_top_terms(max_terms=2): general.init_db() print "*** Writing bill top terms to database" for session_num in general.CONGRESSES: s = str(session_num) sys.stdout.write(' Writing congress ' + s + '...') sys.stdout.flush() for filename in xml_utils.files_of_session(s): with open(filename) as f: soup = BeautifulSoup(f.read()) xml_bill = soup.bill bill_id = unicode(xml_utils.id_of_xml_bill(xml_bill)) bill_obj = Bill.query.get(bill_id) xml_terms = xml_bill.subjects.find_all('term') if (bill_obj is not None) and (xml_terms is not None): num_terms = min(len(xml_terms), max_terms) top_terms = [] for i in range(num_terms): term_name = xml_terms[i]['name'] term_object = Term.query.filter_by(name=term_name).first() if term_object is not None: top_terms.append(term_object) bill_obj.top_terms = top_terms print 'done' print "" general.close_db(write=True)
def write_db_sponsors(): general.init_db() print "*** Writing bill sponsors and cosponsors to database" for session_num in general.CONGRESSES: s = str(session_num) sys.stdout.write(' Writing congress ' + s + '...') sys.stdout.flush() for filename in xml_utils.files_of_session(s): with open(filename) as f: soup = BeautifulSoup(f.read()) xml_bill = soup.bill bill_id = unicode(xml_utils.id_of_xml_bill(xml_bill)) bill_obj = Bill.query.get(bill_id) xml_sponsor = xml_bill.find('sponsor') if (xml_sponsor is not None) and (bill_obj is not None): sponsor_id = xml_sponsor.get('id', None) if sponsor_id is not None: sponsor_obj = Person.query.filter_by( id=int(sponsor_id)).first() bill_obj.sponsor = sponsor_obj xml_cosponsors = xml_bill.cosponsors.find_all('cosponsor') cosponsor_objs = list( set([ Person.query.filter_by(id=x['id']).first() for x in xml_cosponsors ])) if bill_obj is not None: bill_obj.cosponsors = cosponsor_objs print 'done' print "" general.close_db(write=True)
def write_db_sponsors(): general.init_db() print "*** Writing bill sponsors and cosponsors to database" for session_num in general.CONGRESSES: s = str(session_num) sys.stdout.write(' Writing congress ' + s + '...') sys.stdout.flush() for filename in xml_utils.files_of_session(s): with open(filename) as f: soup = BeautifulSoup(f.read()) xml_bill = soup.bill bill_id = unicode(xml_utils.id_of_xml_bill(xml_bill)) bill_obj = Bill.query.get(bill_id) xml_sponsor = xml_bill.find('sponsor') if (xml_sponsor is not None) and (bill_obj is not None): sponsor_id = xml_sponsor.get('id', None) if sponsor_id is not None: sponsor_obj = Person.query.filter_by( id=int(sponsor_id) ).first() bill_obj.sponsor = sponsor_obj xml_cosponsors = xml_bill.cosponsors.find_all('cosponsor') cosponsor_objs = list(set([ Person.query.filter_by(id=x['id']).first() for x in xml_cosponsors ])) if bill_obj is not None: bill_obj.cosponsors = cosponsor_objs print 'done' print "" general.close_db(write=True)
def write_db_top_terms(max_terms=2): general.init_db() print "*** Writing bill top terms to database" for session_num in general.CONGRESSES: s = str(session_num) sys.stdout.write(' Writing congress ' + s + '...') sys.stdout.flush() for filename in xml_utils.files_of_session(s): with open(filename) as f: soup = BeautifulSoup(f.read()) xml_bill = soup.bill bill_id = unicode(xml_utils.id_of_xml_bill(xml_bill)) bill_obj = Bill.query.get(bill_id) xml_terms = xml_bill.subjects.find_all('term') if (bill_obj is not None) and (xml_terms is not None): num_terms = min(len(xml_terms), max_terms) top_terms = [] for i in range(num_terms): term_name = xml_terms[i]['name'] term_object = Term.query.filter_by( name=term_name).first() if term_object is not None: top_terms.append(term_object) bill_obj.top_terms = top_terms print 'done' print "" general.close_db(write=True)