Ejemplo n.º 1
0
    def get_organizations(self):
        legislature_name = "Hawaii State Legislature"
        lower_chamber_name = "House"
        lower_seats = 51
        lower_title = "Representative"
        upper_chamber_name = "Senate"
        upper_seats = 25
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        upper = Organization(upper_chamber_name, classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name, classification='lower',
                             parent_id=legislature._id)

        for n in range(1, upper_seats + 1):
            upper.add_post(
                label=str(n), role=upper_title,
                division_id='{}/sldu:{}'.format(self.division_id, n))
        for n in range(1, lower_seats + 1):
            lower.add_post(
                label=str(n), role=lower_title,
                division_id='{}/sldl:{}'.format(self.division_id, n))

        yield legislature
        yield upper
        yield lower
Ejemplo n.º 2
0
    def get_organizations(self):
        """ generator to obtain organization data. """
        legislature_name = "South Carolina Legislature"
        lower_chamber_name = "House"
        lower_seats = 124
        lower_title = "Representative"
        upper_chamber_name = "Senate"
        upper_seats = 46
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        upper = Organization(upper_chamber_name, classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name, classification='lower',
                             parent_id=legislature._id)

        for n in range(1, upper_seats + 1):
            upper.add_post(
                label=str(n), role=upper_title,
                division_id='{}/sldu:{}'.format(self.division_id, n))
        for n in range(1, lower_seats + 1):
            lower.add_post(
                label=str(n), role=lower_title,
                division_id='{}/sldl:{}'.format(self.division_id, n))

        yield legislature
        yield upper
        yield lower
Ejemplo n.º 3
0
    def get_organizations(self):
        legislature_name = "Missouri General Assembly"
        lower_chamber_name = "House"
        lower_seats = 163
        lower_title = "Senator"
        upper_chamber_name = "Senate"
        upper_seats = 34
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        upper = Organization(upper_chamber_name, classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name, classification='lower',
                             parent_id=legislature._id)

        for n in range(1, upper_seats + 1):
            upper.add_post(
                label=str(n), role=upper_title,
                division_id='{}/sldu:{}'.format(self.division_id, n))
        for n in range(1, lower_seats + 1):
            lower.add_post(
                label=str(n), role=lower_title,
                division_id='{}/sldl:{}'.format(self.division_id, n))

        yield legislature
        yield upper
        yield lower
Ejemplo n.º 4
0
    def get_organizations(self):
        legislature_name = "Legislative Assembly of Puerto Rico"
        lower_chamber_name = "House"
        lower_title = "Senator"
        upper_chamber_name = "Senate"
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        upper = Organization(upper_chamber_name, classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name, classification='lower',
                             parent_id=legislature._id)

        # 8 districts w/ 2 members, + 11 at larg
        for d in ('I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII'):
            upper.add_post(label=d, role=upper_title,
                           division_id='{}/sldu:{}'.format(self.division_id, d.lower()))

        # lower house is 40 seats, + 11 at large
        for n in range(1, 41):
            lower.add_post(
                label=str(n), role=lower_title,
                division_id='{}/sldl:{}'.format(self.division_id, n))

        # TODO: add at large

        yield legislature
        yield upper
        yield lower
Ejemplo n.º 5
0
    def get_organizations(self):
        legislature_name = "Nevada Legislature"
        lower_chamber_name = "Assembly"
        lower_seats = 42
        lower_title = "Assembly Member"
        upper_chamber_name = "Senate"
        upper_seats = 21
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        upper = Organization(upper_chamber_name, classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name, classification='lower',
                             parent_id=legislature._id)

        for n in range(1, upper_seats + 1):
            upper.add_post(
                label=str(n), role=upper_title,
                division_id='{}/sldu:{}'.format(self.division_id, n))
        for n in range(1, lower_seats + 1):
            lower.add_post(
                label=str(n), role=lower_title,
                division_id='{}/sldl:{}'.format(self.division_id, n))

        yield Organization('Office of the Governor', classification='executive')
        yield legislature
        yield upper
        yield lower
Ejemplo n.º 6
0
    def get_organizations(self):
        legislature_name = "Alaska State Legislature"
        lower_chamber_name = "House"
        lower_seats = 40
        lower_title = "Representative"
        upper_chamber_name = "Senate"
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        upper = Organization(upper_chamber_name, classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name, classification='lower',
                             parent_id=legislature._id)

        for letter in 'ABCDEFGHIJKLMNOPQRST':
            upper.add_post(
                label=letter, role=upper_title,
                division_id='{}/sldu:{}'.format(self.division_id, letter.lower()))
        for n in range(1, lower_seats + 1):
            lower.add_post(
                label=str(n), role=lower_title,
                division_id='{}/sldl:{}'.format(self.division_id, n))

        yield legislature
        yield upper
        yield lower
Ejemplo n.º 7
0
    def get_organizations(self):
        exclude_type_ids = getattr(self, 'exclude_type_ids', [])
        use_type_id = getattr(self, 'use_type_id', False)

        organization = Organization(self.name, classification=self.classification)

        parent = Division.get(self.division_id)
        if parent._type not in ('province', 'territory'):
            post = Post(role=styles_of_address[self.division_id]['Leader'], label=parent.name, division_id=parent.id, organization_id=organization._id)
            yield post

        children = [child for child in parent.children() if child._type != 'place' and child._type not in exclude_type_ids]

        for child in children:
            if child:
                if use_type_id:
                    label = child.id.rsplit('/', 1)[1].capitalize().replace(':', ' ')
                else:
                    label = child.name
                post = Post(role=styles_of_address[self.division_id]['Member'], label=label, division_id=child.id, organization_id=organization._id)
                yield post

        if not children and parent.attrs['posts_count']:
            for i in range(1, int(parent.attrs['posts_count'])):  # exclude Mayor
                organization.add_post(role=styles_of_address[self.division_id]['Member'], label='{} (seat {})'.format(parent.name, i), division_id=parent.id)

        yield organization
    def get_organizations(self):
        org = Organization(name="Ferguson City Council",
                           classification="legislature")

        org.add_contact_detail(
            type='email',
            value='*****@*****.**'
        )

        org.add_post(
            label="Mayor",
            role="Mayor",
            division_id=self.division_id
        )

        WARDS = 3
        for ward in range(1, WARDS + 1):
            org.add_post(
                label="Council Member Ward {}".format(ward),
                role="Council Member Ward {}".format(ward),
                division_id=self.division_id,
                # num_seats=2,
            )

        yield org
Ejemplo n.º 9
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        leader_role = styles_of_address[self.division_id]['Leader']
        member_role = self.member_role or styles_of_address[self.division_id]['Member']

        parent = Division.get(self.division_id)
        # Don't yield posts for premiers.
        if parent._type not in ('province', 'territory'):
            # Yield posts to allow ca_on_toronto to make changes.
            post = Post(role=leader_role, label=parent.name, division_id=parent.id, organization_id=organization._id)
            yield post

        children = [child for child in parent.children() if child._type != 'place' and child._type not in self.exclude_types]

        for child in children:
            if not self.skip_null_valid_from and not child.attrs.get('validFrom') or child.attrs.get('validFrom') and (child.attrs['validFrom'] <= datetime.now().strftime('%Y-%m-%d') or child.attrs['validFrom'] == self.valid_from):
                if self.use_type_id:
                    label = child.id.rsplit('/', 1)[1].capitalize().replace(':', ' ')
                else:
                    label = child.name
                # Yield posts to allow ca_on_toronto to make changes.
                post = Post(role=member_role, label=label, division_id=child.id, organization_id=organization._id)
                yield post

        if not children and parent.attrs['posts_count']:
            for i in range(1, int(parent.attrs['posts_count'])):  # exclude Mayor
                organization.add_post(role=member_role, label='{} (seat {})'.format(parent.name, i), division_id=parent.id)

        yield organization
Ejemplo n.º 10
0
    def get_organizations(self):
        legislature_name = "Delaware General Assembly"
        lower_chamber_name = "House"
        lower_seats = 41
        lower_title = "Representative"
        upper_chamber_name = "Senate"
        upper_seats = 21
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        executive = Organization(name="Office of the Governor",
                                 classification="executive")
        upper = Organization(upper_chamber_name, classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name, classification='lower',
                             parent_id=legislature._id)

        for n in range(1, upper_seats+1):
            upper.add_post(
                label=str(n), role=upper_title,
                division_id='{}/sldu:{}'.format(self.division_id, n))
        for n in range(1, lower_seats+1):
            lower.add_post(
                label=str(n), role=lower_title,
                division_id='{}/sldl:{}'.format(self.division_id, n))

        yield legislature
        yield executive
        yield upper
        yield lower
Ejemplo n.º 11
0
    def get_organizations(self):
        legislature_name = "Utah State Legislature"
        lower_chamber_name = "House"
        lower_seats = 75
        lower_title = "Senator"
        upper_chamber_name = "Senate"
        upper_seats = 29
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        upper = Organization(upper_chamber_name, classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name, classification='lower',
                             parent_id=legislature._id)

        for n in range(1, upper_seats + 1):
            upper.add_post(
                label=str(n), role=upper_title,
                division_id='{}/sldu:{}'.format(self.division_id, n))
        for n in range(1, lower_seats + 1):
            lower.add_post(
                label=str(n), role=lower_title,
                division_id='{}/sldl:{}'.format(self.division_id, n))

        # fiscal analyst
        # fisc = Organization('Office of the Legislative Fiscal Analyst',
        #                     classification='department',
        #                     parent_id=legislature._id,
        #                     )

        yield legislature
        yield Organization('Office of the Governor', classification='executive')
        yield upper
        yield lower
Ejemplo n.º 12
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        organization.add_post(role='Mayor', label='Waterloo', division_id=self.division_id)
        for ward_number in range(1, 8):
            organization.add_post(role='Councillor', label='Ward {}'.format(ward_number))

        yield organization
 def board_of_aldermen(self):
     org = Organization(name="St Louis Board of Aldermen", 
                        classification="legislature")
     # add a post for each Ward
     for ward_num in range(1, self.WARD_COUNT + 1):
         org.add_post(label="Ward {} Alderman".format(ward_num),
                      role="Alderman")
     yield org
Ejemplo n.º 14
0
    def get_organizations(self):  # @todo Eliminate once shapefile is found and ocd-division-ids is updated.
        organization = Organization(self.name, classification=self.classification)

        organization.add_post(role='Maire', label='Mercier', division_id=self.division_id)
        for district_number in range(1, 7):
            organization.add_post(role='Conseiller', label='District {}'.format(district_number))

        yield organization
Ejemplo n.º 15
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        organization.add_post(role='Mayor', label='Grande Prairie', division_id=self.division_id)
        for seat_number in range(1, 9):
            organization.add_post(role='Councillor', label='Grande Prairie (seat {})'.format(seat_number), division_id=self.division_id)

        yield organization
Ejemplo n.º 16
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        organization.add_post(role='Mayor', label=self.division_name, division_id=self.division_id)
        for division in Division.get('ocd-division/country:ca/csd:3520005').children('ward'):
            if '2018' in division.id:
                organization.add_post(role='Councillor', label=division.name, division_id=division.id)

        yield organization
Ejemplo n.º 17
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        organization.add_post(role='Mayor', label=self.division_name, division_id=self.division_id)
        for ward_name in ('Grantham', 'Merritton', 'Port Dalhousie', "St. Andrew's", "St. George's", "St. Patrick's"):
            for seat_number in range(1, 3):
                organization.add_post(role='Councillor', label='{} (seat {})'.format(ward_name, seat_number), division_id='{}/ward:{}'.format(self.division_id, clean_type_id(ward_name)))

        yield organization
Ejemplo n.º 18
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        organization.add_post(role='Mayor', label=self.division_name, division_id=self.division_id)
        for ward_number, stop in enumerate((7, 3), 1):
            for seat_number in range(1, stop):
                organization.add_post(role='Councillor', label='Ward {} (seat {})'.format(ward_number, seat_number), division_id='{}/ward:{}'.format(self.division_id, ward_number))

        yield organization
Ejemplo n.º 19
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        organization.add_post(role='Mayor', label='Welland', division_id=self.division_id)
        for ward_number in range(1, 7):
            for seat_number in range(1, 3):
                organization.add_post(role='Councillor', label='Ward {} (seat {})'.format(ward_number, seat_number))

        yield organization
    def get_organizations(self):
        org = Organization(name="Chicago City Council", classification="legislature")
        for x in range(1, 51):
            org.add_post(
                "Ward {}".format(x),
                "Alderman",
                division_id='ocd-division/country:us/state:il/place:chicago/ward:{}'.format(x))

        yield org

        mayor = Organization('Office of the Mayor', classification='executive')

        yield mayor

        daley = Person(name="Daley, Richard M.",
                       primary_org='executive',
                       role='Mayor',
                       primary_org_name='Office of the Mayor',
                       start_date=datetime.date(1989, 4, 24),
                       end_date=datetime.date(2011, 5, 16))
        daley.add_source('https://chicago.legistar.com/People.aspx')
        yield daley

        emanuel = Person(name="Emanuel, Rahm",
                         primary_org='executive',
                         role='Mayor',
                         primary_org_name='Office of the Mayor',
                         start_date=datetime.date(2011, 5, 16))
        emanuel.add_source('https://chicago.legistar.com/People.aspx')
        yield emanuel

        #I'm not sure how to model the office of the city clerk it's
        #a seperately elected executive I think.
        clerk = Organization('Office of the City Clerk', classification='executive')
        yield clerk

        mendoza = Person(name='Mendoza, Susana A.',
                         primary_org='executive',
                         role='City Clerk',
                         primary_org_name='Office of the City Clerk',
                         start_date=datetime.date(2011, 5, 16))

        mendoza.add_source('https://chicago.legistar.com/People.aspx')

        yield mendoza

        valle = Person(name='Del Valle, Miguel',
                       primary_org='executive',
                       role='City Clerk',
                       primary_org_name='Office of the City Clerk',
                       start_date=datetime.date(2006, 12, 1),
                       end_date=datetime.date(2011, 5, 16))

        valle.add_source('https://chicago.legistar.com/People.aspx')

        yield valle
Ejemplo n.º 21
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        organization.add_post(role='Mayor', label=self.division_name, division_id=self.division_id)
        for ward_number in range(1, 7):
            # @todo Until a boundary set is received and loaded into Represent, we treat this as having no divisions.
            # organization.add_post(role='Councillor', label='Ward {}'.format(ward_number), division_id=self.division_id)
            organization.add_post(role='Councillor', label='{} (seat {})'.format(self.division_name, ward_number), division_id=self.division_id)

        yield organization
Ejemplo n.º 22
0
def test_org_add_post():
    """ Test that we can hack posts in on the fly'"""
    orga = Organization("name", classification="committee")
    orga.add_source(url='foo')
    orga.validate()

    orga.add_post("Human Readable Name", "Chef")

    assert orga._related[0].role == "Chef"
    assert orga._related[0].label == "Human Readable Name"
    def get_organizations(self):
        council = Organization('New York City Council', classification='legislature')
        for x in range(1,52):
            council.add_post("District {}".format(x),
                             role='Council Member',
                             division_id='ocd-division/country:us/state:ny/place:new_york/council_district:{}'.format(x))
        yield council

        mayor = Organization('Mayor', classification='executive')

        yield mayor
Ejemplo n.º 24
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        for division_number in range(1, 10):
            # One of the councillors is the Reeve.
            if division_number == 3:
                role = 'Reeve'
            else:
                role = 'Councillor'
            organization.add_post(role=role, label='Division {}'.format(division_number), division_id='{}/division:{}'.format(self.division_id, division_number))

        yield organization
Ejemplo n.º 25
0
    def get_organizations(self):
        parliament = Organization(self.name, classification=self.classification)
        yield parliament

        upper = Organization('Senate', classification='upper', parent_id=parliament)
        lower = Organization('House of Commons', classification='lower', parent_id=parliament)

        for division in Division.get(self.division_id).children('ed'):
            if division.attrs.get('validFrom') and division.attrs['validFrom'] <= datetime.now().strftime('%Y-%m-%d'):
                lower.add_post(role='MP', label=division.name, division_id=division.id)

        yield upper
        yield lower
Ejemplo n.º 26
0
    def get_organizations(self):
        legislature_name = "Nebraska Legislature"
        seats = 49
        title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        for n in range(1, seats + 1):
            legislature.add_post(
                label=str(n), role=title,
                division_id='{}/sldu:{}'.format(self.division_id, n))

        yield legislature
Ejemplo n.º 27
0
    def get_organizations(self):

        org = Organization(name="Sacramento City Council", classification="legislature")

        org.add_post(label='Mayor of the City of Sacramento',
                     role='Mayor',
                     division_id='ocd-division/country:us/state:ca/place:sacramento')

        for district in range(1, 9):
            org.add_post(label='Sacramento City Council Member, District {}'.format(district),
                         role='Member',
                         division_id='ocd-division/country:us/state:ca/place:sacramento/council_district:{}'.format(district))

        yield org
Ejemplo n.º 28
0
    def get_organizations(self):
        org = Organization(name="Miami-Dade County Commission",
            classification="legislature")
        
        for x in range(1,14):
            org.add_post(label="District {dist} Commissioner".format(dist=x),
                role="Commissioner",
                division_id=self.division_id)
        
        yield org

        mayor = Organization('Office of the Mayor', classification='executive')
        yield mayor

        mayorPers = Person(name="Carlos A. Giménez",
                       primary_org='executive',
                       role='Mayor',
                       primary_org_name='Office of the Mayor',
                       start_date=datetime.date(2011, 6, 28))

        mayorPers.add_source('Ernie')

        yield mayorPers


        clerk = Organization('Clerk of Courts', classification='executive')
        yield clerk

        clerkPers = Person(name="Harvey Ruvin",
                       primary_org='executive',
                       role='Clerk',
                       primary_org_name='Clerk of Courts')

        clerkPers.add_source('Ernie')
        
        yield clerkPers


        pa = Organization('Office of the Property Appraiser', classification='executive')
        yield pa

        paPers = Person(name="Pedro J. Garcia",
                       primary_org='executive',
                       role='Property Appraiser',
                       primary_org_name='Office of the Property Appraiser')

        paPers.add_source('Ernie')
        
        yield paPers
    def get_organizations(self):
        org = Organization(name="Cook County Board of Commissioners", classification="legislature")

        for x in range(1, 18):
            org.add_post(
                "District {}".format(x),
                "Commissioner",
                division_id='ocd-division/country:us/state:il/county:cook/council_district:{}'.format(x))

        org.add_post(
            "Board President",
            "Board President",
            division_id='ocd-division/country:us/state:il/county:cook')

        yield org
Ejemplo n.º 30
0
    def scrape(self):
        sessions = reversed(self.jurisdiction.legislative_sessions)
        committee_term_instances = committees_from_sessions(self, sessions)
        committees_by_code = build_lookup_dict(self, data_list=committee_term_instances, index_key='code')

        for code, instances in committees_by_code.items():
            # TODO: Figure out how to edit city council org.
            if code == 'CC':
                continue

            # When there are no meetings scheduled and was no way to deduce committee code.
            if not code:
                continue

            extras = {'tmmis_decision_body_ids': []}
            for i, inst in enumerate(instances):
                # TODO: Ensure this survives addition of new term (2017)
                #       so specific year always creates
                canonical_i = 0
                if i == canonical_i:
                    o = Organization(name=inst['name'], classification='committee')
                    extras.update({'description': inst['info']})
                    o.add_identifier(inst['code'], scheme=TWO_LETTER_ORG_CODE_SCHEME)

                    # TODO: Scrape non-councillor members
                    meeting_id = self.referenceMeetingId(inst['code'], inst['term'])
                    if meeting_id:
                        seen_posts = []
                        membership_url = MEMBERSHIP_URL_TEMPLATE.format(meeting_id)
                        for councillor in self.councillorMembers(membership_url):
                            o.add_member(councillor['name'], councillor['role'])
                            if councillor['role'] not in seen_posts:
                                o.add_post(
                                    role=councillor['role'],
                                    label=councillor['role'],
                                    # TODO: More specific divisions for some committee?
                                    division_id=self.jurisdiction.division_id,
                                )
                                seen_posts.append(councillor['role'])

                extras['tmmis_decision_body_ids'].append({inst['term']: inst['decision_body_id']})
                o.extras = extras
                o.add_source(inst['source_url'])
                if instances[canonical_i]['name'] != inst['name']:
                    # TODO: Add start_date and end_date
                    o.add_name(inst['name'])

            yield o
Ejemplo n.º 31
0
    def get_organizations(self):
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Mayor',
                              label=self.division_name,
                              division_id=self.division_id)
        organization.add_post(role='Regional Councillor',
                              label=self.division_name,
                              division_id=self.division_id)
        for ward_number in range(1, 6):
            # @todo Until a boundary set is received and loaded into Represent, we treat this as having no divisions.
            # organization.add_post(role='Councillor', label='Ward {}'.format(ward_number), division_id=self.division_id)
            organization.add_post(
                role='Councillor',
                label='Georgina (seat {})'.format(ward_number),
                division_id=self.division_id)

        yield organization
Ejemplo n.º 32
0
    def get_organizations(self):
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Mayor',
                              label=self.division_name,
                              division_id=self.division_id)
        for seat_number in range(1, 11):
            organization.add_post(role='Councillor',
                                  label='{} (seat {})'.format(
                                      self.division_name, seat_number),
                                  division_id=self.division_id)
        for seat_number in range(1, 8):
            organization.add_post(role='Commissioner',
                                  label='{} (seat {})'.format(
                                      self.division_name, seat_number),
                                  division_id=self.division_id)

        yield organization
Ejemplo n.º 33
0
    def get_organizations(self):
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Mayor',
                              label=self.division_name,
                              division_id=self.division_id)
        for seat_number in range(1, 4):
            organization.add_post(
                role='Regional Councillor',
                label='Vaughan (seat {})'.format(seat_number),
                division_id=self.division_id)
        for ward_number in range(1, 6):
            organization.add_post(role='Councillor',
                                  label='Ward {}'.format(ward_number),
                                  division_id='{}/ward:{}'.format(
                                      self.division_id, ward_number))

        yield organization
Ejemplo n.º 34
0
    def get_organizations(self):
        legis = Organization('Minnesota Legislature', classification='legislature')

        upper = Organization('Minnesota Senate', classification='upper',
                             parent_id=legis._id)
        lower = Organization('Minnesota House of Representatives',
                             classification='lower', parent_id=legis._id)

        for n in range(1, 68):
            upper.add_post(label=str(n), role='Senator',
                           division_id='ocd-division/country:us/state:mn/sldu:{}'.format(n))
            lower.add_post(label=str(n) + 'A', role='Representative',
                           division_id='ocd-division/country:us/state:mn/sldl:{}a'.format(n))
            lower.add_post(label=str(n) + 'B', role='Representative',
                           division_id='ocd-division/country:us/state:mn/sldl:{}b'.format(n))

        yield legis
        yield upper
        yield lower
Ejemplo n.º 35
0
    def get_organizations(
        self
    ):  # @todo Fix labels along the lines of the regions of Peel, Niagara or Waterloo.
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Warden',
                              label=self.division_name,
                              division_id=self.division_id)
        organization.add_post(role='Deputy Warden',
                              label=self.division_name,
                              division_id=self.division_id)
        for seat_number in range(1, 16):
            organization.add_post(
                role='Councillor',
                label='Lambton (seat {})'.format(seat_number),
                division_id=self.division_id)

        yield organization
Ejemplo n.º 36
0
    def get_organizations(self):
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Maire',
                              label=self.division_name,
                              division_id=self.division_id)
        for division in Division.get(self.division_id).children('district'):
            if division.name == 'Greenfield Park':
                for seat_number in range(1, 4):
                    organization.add_post(role='Conseiller',
                                          label='{} (siège {})'.format(
                                              division.name, seat_number),
                                          division_id=division.id)
            else:
                organization.add_post(role='Conseiller',
                                      label=division.name,
                                      division_id=division.id)

        yield organization
Ejemplo n.º 37
0
    def get_organizations(self):
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Mayor',
                              label=self.division_name,
                              division_id=self.division_id)
        for seat_number in range(1, 4):
            organization.add_post(role='Regional Councillor',
                                  label='{} (seat {})'.format(
                                      self.division_name, seat_number),
                                  division_id=self.division_id)
        for ward_number, ward_name in enumerate(
            ('North', 'West', 'Centre', 'East'), 1):
            organization.add_post(role='Councillor',
                                  label='{} Ward'.format(ward_name),
                                  division_id='{}/ward:{}'.format(
                                      self.division_id, ward_number))

        yield organization
Ejemplo n.º 38
0
    def get_organizations(self):
        council = Organization(name="Council of the District of Columbia",
                               classification="legislature")
        mayor = Organization(name="Executive Office of the Mayor",
                             classification="executive")

        council.add_post('Chairman',
                         role="Chairman",
                         division_id=self.division_id)
        council.add_post('At-Large',
                         role="Councilmember",
                         division_id=self.division_id)

        for n in range(1, 8 + 1):
            council.add_post('Ward {}'.format(n),
                             role="member",
                             division_id='{}/ward:{}'.format(
                                 self.division_id, n))
        yield mayor
        yield council
Ejemplo n.º 39
0
    def get_organizations(self):
        org = Organization(name="Chicago City Council",
                           classification="legislature")

        org.add_post(
            "Clerk",
            "Clerk",
            division_id="ocd-division/country:us/state:il/place:chicago")

        org.add_post(
            "Mayor",
            "Mayor",
            division_id="ocd-division/country:us/state:il/place:chicago")

        for x in range(1, 51):
            org.add_post(
                "Ward {}".format(x),
                "Alderman",
                division_id="ocd-division/country:us/state:il/place:chicago")
        yield org
Ejemplo n.º 40
0
    def get_organizations(self):
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Mayor',
                              label=self.division_name,
                              division_id=self.division_id)
        for seat_number in range(1, 3):
            organization.add_post(
                role='Councillor at Large',
                label='Moncton (seat {})'.format(seat_number),
                division_id=self.division_id)
        for ward_number in range(1, 5):
            for seat_number in range(1, 3):
                organization.add_post(
                    role='Councillor',
                    label='Ward {} (seat {})'.format(ward_number, seat_number),
                    division_id='{}/ward:{}'.format(self.division_id,
                                                    ward_number))

        yield organization
Ejemplo n.º 41
0
    def get_organizations(self):
        #REQUIRED: define an organization using this format
        #where org_name is something like Seattle City Council
        #and classification is described here:
        org = Organization(name="Mountain View City Council",
                           classification="legislature")

        # REQUIRED: yield the organization
        yield org

        # OPTIONAL: add posts to your organizaion using this format,
        # where label is a human-readable description of the post (eg "Ward 8 councilmember")
        # and role is the position type (eg councilmember, alderman, mayor...)
        # skip entirely if you're not writing a people scraper.
        city = Organization('City of Mountain View',
                            classification='executive')
        city.add_post(
            'Mayor',
            'Mayor',
            division_id='ocd-division/country:us/state:ca/place:mountainview')
        city.add_post(
            'City Manager',
            'City Manager',
            division_id='ocd-division/country:us/state:ca/place:mountainview')
        city.add_post(
            'City Clerk',
            'City Clerk',
            division_id='ocd-division/country:us/state:ca/place:mountainview')

        yield city

        abekoga = Person(name="Abe-Koga, Margaret")
        abekoga.add_term('Mayor',
                         'executive',
                         start_date=datetime.date(1989, 4, 24),
                         end_date=datetime.date(2011, 5, 16),
                         appointment=True)
        abekoga.add_source('https://mountainview.legistar.com/People.aspx')
        yield abekoga
Ejemplo n.º 42
0
    def get_organizations(self):
        org = Organization(name="Board of Directors",
                           classification="legislature")

        org.add_post(
            'Mayor of the City of Los Angeles',
            'Board Member',
            division_id='ocd-division/country:us/state:ca/place:los_angeles')

        for district in range(1, 6):
            org.add_post(
                'Los Angeles County Board Supervisor, District {}'.format(
                    district),
                'Board Member',
                division_id=
                'ocd-division/country:us/state:ca/county:los_angeles/council_district:{}'
                .format(district))

        org.add_post(
            'Appointee of Mayor of the City of Los Angeles',
            'Board Member',
            division_id='ocd-division/country:us/state:ca/place:los_angeles')

        org.add_post('Appointee of Governor of California',
                     'Nonvoting Board Member',
                     division_id='ocd-division/country:us/state:ca')

        org.add_post(
            'Appointee of Los Angeles County City Selection Committee, North County/San Fernando Valley sector',
            'Board Member',
            division_id=
            'ocd-division/country:us/state:ca/county:los_angeles/la_metro_sector:north_county_san_fernando_valley'
        )

        org.add_post(
            'Appointee of Los Angeles County City Selection Committee, Southwest Corridor sector',
            'Board Member',
            division_id=
            'ocd-division/country:us/state:ca/county:los_angeles/la_metro_sector:southwest_corridor'
        )

        org.add_post(
            'Appointee of Los Angeles County City Selection Committee, San Gabriel Valley sector',
            'Board Member',
            division_id=
            'ocd-division/country:us/state:ca/county:los_angeles/la_metro_sector:san_gabriel_valley'
        )

        org.add_post(
            'Appointee of Los Angeles County City Selection Committee, Southeast Long Beach sector',
            'Board Member',
            division_id=
            'ocd-division/country:us/state:ca/county:los_angeles/la_metro_sector:southeast_long_beach'
        )

        org.add_post('Chair', 'Chair')

        org.add_post('1st Vice Chair', '1st Vice Chair')

        org.add_post('2nd Vice Chair', '2nd Vice Chair')

        yield org

        org = Organization(name="Crenshaw Project Corporation",
                           classification="corporation")
        org.add_source('foo')
        yield org

        org = Organization(name="LA SAFE", classification="corporation")
        org.add_source('foo')
        yield org
Ejemplo n.º 43
0
    def get_organizations(self):
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Regional Chair',
                              label=self.division_name,
                              division_id=self.division_id)

        divisions = {
            'Fort Erie': {
                'stop': 3,
                'type_id': '3526003',
            },
            'Grimsby': {
                'stop': 3,
                'type_id': '3526065',
            },
            'Lincoln': {
                'stop': 3,
                'type_id': '3526057',
            },
            'Niagara Falls': {
                'stop': 5,
                'type_id': '3526043',
            },
            'Niagara-on-the-Lake': {
                'stop': 3,
                'type_id': '3526047',
            },
            'Pelham': {
                'stop': 3,
                'type_id': '3526028',
            },
            'Port Colborne': {
                'stop': 3,
                'type_id': '3526011',
            },
            'St. Catharines': {
                'stop': 8,
                'type_id': '3526053',
            },
            'Thorold': {
                'stop': 3,  # can be 2
                'type_id': '3526037',
            },
            'Wainfleet': {
                'stop': 2,  # can be 3
                'type_id': '3526014',
            },
            'Welland': {
                'stop': 4,
                'type_id': '3526032',
            },
            'West Lincoln': {
                'stop': 2,
                'type_id': '3526021',
            },
        }
        for division_name, division in divisions.items():
            division_id = 'ocd-division/country:ca/csd:{}'.format(
                division['type_id'])
            organization.add_post(role='Mayor',
                                  label=division_name,
                                  division_id=division_id)
            for seat_number in range(1, division['stop']):
                organization.add_post(role='Councillor',
                                      label='{} (seat {})'.format(
                                          division_name, seat_number),
                                      division_id=division_id)

        yield organization
Ejemplo n.º 44
0
    def get_organizations(self):
        legislature_name = "South Dakota State Legislature"
        lower_chamber_name = "House"
        lower_title = "Representative"
        upper_chamber_name = "Senate"
        upper_title = "Senator"
        seats = 35

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        upper = Organization(upper_chamber_name,
                             classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name,
                             classification='lower',
                             parent_id=legislature._id)
        executive = Organization(name='Office of the Governor',
                                 classification='executive')

        for n in range(1, seats + 1):
            # 26 and 28 are special
            if n in (26, 28):
                continue
            lower.add_post(label=str(n),
                           role=lower_title,
                           division_id='{}/sldl:{}'.format(
                               self.division_id, n))

        lower.add_post(label='26A',
                       role=lower_title,
                       division_id='{}/sldl:26a'.format(self.division_id))
        lower.add_post(label='26B',
                       role=lower_title,
                       division_id='{}/sldl:26b'.format(self.division_id))
        lower.add_post(label='28A',
                       role=lower_title,
                       division_id='{}/sldl:28a'.format(self.division_id))
        lower.add_post(label='28B',
                       role=lower_title,
                       division_id='{}/sldl:28b'.format(self.division_id))

        for n in range(1, seats + 1):
            upper.add_post(label=str(n),
                           role=upper_title,
                           division_id='{}/sldu:{}'.format(
                               self.division_id, n))

        yield legislature
        yield executive
        yield upper
        yield lower
Ejemplo n.º 45
0
    def get_organizations(self):
        legislature_name = "Massachusetts General Court"
        lower_chamber_name = "House"
        lower_title = "Senator"
        upper_chamber_name = "Senate"
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        upper = Organization(upper_chamber_name,
                             classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name,
                             classification='lower',
                             parent_id=legislature._id)

        lower_divs = [
            ("Tenth Bristol",
             "ocd-division/country:us/state:ma/sldl:10th_bristol"),
            ("Tenth Essex",
             "ocd-division/country:us/state:ma/sldl:10th_essex"),
            ("Tenth Hampden",
             "ocd-division/country:us/state:ma/sldl:10th_hampden"),
            ("Tenth Middlesex",
             "ocd-division/country:us/state:ma/sldl:10th_middlesex"),
            ("Tenth Norfolk",
             "ocd-division/country:us/state:ma/sldl:10th_norfolk"),
            ("Tenth Plymouth",
             "ocd-division/country:us/state:ma/sldl:10th_plymouth"),
            ("Tenth Suffolk",
             "ocd-division/country:us/state:ma/sldl:10th_suffolk"),
            ("Tenth Worcester",
             "ocd-division/country:us/state:ma/sldl:10th_worcester"),
            ("Eleventh Bristol",
             "ocd-division/country:us/state:ma/sldl:11th_bristol"),
            ("Eleventh Essex",
             "ocd-division/country:us/state:ma/sldl:11th_essex"),
            ("Eleventh Hampden",
             "ocd-division/country:us/state:ma/sldl:11th_hampden"),
            ("Eleventh Middlesex",
             "ocd-division/country:us/state:ma/sldl:11th_middlesex"),
            ("Eleventh Norfolk",
             "ocd-division/country:us/state:ma/sldl:11th_norfolk"),
            ("Eleventh Plymouth",
             "ocd-division/country:us/state:ma/sldl:11th_plymouth"),
            ("Eleventh Suffolk",
             "ocd-division/country:us/state:ma/sldl:11th_suffolk"),
            ("Eleventh Worcester",
             "ocd-division/country:us/state:ma/sldl:11th_worcester"),
            ("Twelfth Bristol",
             "ocd-division/country:us/state:ma/sldl:12th_bristol"),
            ("Twelfth Essex",
             "ocd-division/country:us/state:ma/sldl:12th_essex"),
            ("Twelfth Hampden",
             "ocd-division/country:us/state:ma/sldl:12th_hampden"),
            ("Twelfth Middlesex",
             "ocd-division/country:us/state:ma/sldl:12th_middlesex"),
            ("Twelfth Norfolk",
             "ocd-division/country:us/state:ma/sldl:12th_norfolk"),
            ("Twelfth Plymouth",
             "ocd-division/country:us/state:ma/sldl:12th_plymouth"),
            ("Twelfth Suffolk",
             "ocd-division/country:us/state:ma/sldl:12th_suffolk"),
            ("Twelfth Worcester",
             "ocd-division/country:us/state:ma/sldl:12th_worcester"),
            ("Thirteenth Bristol",
             "ocd-division/country:us/state:ma/sldl:13th_bristol"),
            ("Thirteenth Essex",
             "ocd-division/country:us/state:ma/sldl:13th_essex"),
            ("Thirteenth Middlesex",
             "ocd-division/country:us/state:ma/sldl:13th_middlesex"),
            ("Thirteenth Norfolk",
             "ocd-division/country:us/state:ma/sldl:13th_norfolk"),
            ("Thirteenth Suffolk",
             "ocd-division/country:us/state:ma/sldl:13th_suffolk"),
            ("Thirteenth Worcester",
             "ocd-division/country:us/state:ma/sldl:13th_worcester"),
            ("Fourteenth Bristol",
             "ocd-division/country:us/state:ma/sldl:14th_bristol"),
            ("Fourteenth Essex",
             "ocd-division/country:us/state:ma/sldl:14th_essex"),
            ("Fourteenth Middlesex",
             "ocd-division/country:us/state:ma/sldl:14th_middlesex"),
            ("Fourteenth Norfolk",
             "ocd-division/country:us/state:ma/sldl:14th_norfolk"),
            ("Fourteenth Suffolk",
             "ocd-division/country:us/state:ma/sldl:14th_suffolk"),
            ("Fourteenth Worcester",
             "ocd-division/country:us/state:ma/sldl:14th_worcester"),
            ("Fifteenth Essex",
             "ocd-division/country:us/state:ma/sldl:15th_essex"),
            ("Fifteenth Middlesex",
             "ocd-division/country:us/state:ma/sldl:15th_middlesex"),
            ("Fifteenth Norfolk",
             "ocd-division/country:us/state:ma/sldl:15th_norfolk"),
            ("Fifteenth Suffolk",
             "ocd-division/country:us/state:ma/sldl:15th_suffolk"),
            ("Fifteenth Worcester",
             "ocd-division/country:us/state:ma/sldl:15th_worcester"),
            ("Sixteenth Essex",
             "ocd-division/country:us/state:ma/sldl:16th_essex"),
            ("Sixteenth Middlesex",
             "ocd-division/country:us/state:ma/sldl:16th_middlesex"),
            ("Sixteenth Suffolk",
             "ocd-division/country:us/state:ma/sldl:16th_suffolk"),
            ("Sixteenth Worcester",
             "ocd-division/country:us/state:ma/sldl:16th_worcester"),
            ("Seventeenth Essex",
             "ocd-division/country:us/state:ma/sldl:17th_essex"),
            ("Seventeenth Middlesex",
             "ocd-division/country:us/state:ma/sldl:17th_middlesex"),
            ("Seventeenth Suffolk",
             "ocd-division/country:us/state:ma/sldl:17th_suffolk"),
            ("Seventeenth Worcester",
             "ocd-division/country:us/state:ma/sldl:17th_worcester"),
            ("Eighteenth Essex",
             "ocd-division/country:us/state:ma/sldl:18th_essex"),
            ("Eighteenth Middlesex",
             "ocd-division/country:us/state:ma/sldl:18th_middlesex"),
            ("Eighteenth Suffolk",
             "ocd-division/country:us/state:ma/sldl:18th_suffolk"),
            ("Eighteenth Worcester",
             "ocd-division/country:us/state:ma/sldl:18th_worcester"),
            ("Nineteenth Middlesex",
             "ocd-division/country:us/state:ma/sldl:19th_middlesex"),
            ("Nineteenth Suffolk",
             "ocd-division/country:us/state:ma/sldl:19th_suffolk"),
            ("First Barnstable",
             "ocd-division/country:us/state:ma/sldl:1st_barnstable"),
            ("First Berkshire",
             "ocd-division/country:us/state:ma/sldl:1st_berkshire"),
            ("First Bristol",
             "ocd-division/country:us/state:ma/sldl:1st_bristol"),
            ("First Essex", "ocd-division/country:us/state:ma/sldl:1st_essex"),
            ("First Franklin",
             "ocd-division/country:us/state:ma/sldl:1st_franklin"),
            ("First Hampden",
             "ocd-division/country:us/state:ma/sldl:1st_hampden"),
            ("First Hampshire",
             "ocd-division/country:us/state:ma/sldl:1st_hampshire"),
            ("First Middlesex",
             "ocd-division/country:us/state:ma/sldl:1st_middlesex"),
            ("First Norfolk",
             "ocd-division/country:us/state:ma/sldl:1st_norfolk"),
            ("First Plymouth",
             "ocd-division/country:us/state:ma/sldl:1st_plymouth"),
            ("First Suffolk",
             "ocd-division/country:us/state:ma/sldl:1st_suffolk"),
            ("First Worcester",
             "ocd-division/country:us/state:ma/sldl:1st_worcester"),
            ("Twentieth Middlesex",
             "ocd-division/country:us/state:ma/sldl:20th_middlesex"),
            ("Twenty-First Middlesex",
             "ocd-division/country:us/state:ma/sldl:21st_middlesex"),
            ("Twenty-Second Middlesex",
             "ocd-division/country:us/state:ma/sldl:22nd_middlesex"),
            ("Twenty-Third Middlesex",
             "ocd-division/country:us/state:ma/sldl:23rd_middlesex"),
            ("Twenty-Fourth Middlesex",
             "ocd-division/country:us/state:ma/sldl:24th_middlesex"),
            ("Twenty-Fifth Middlesex",
             "ocd-division/country:us/state:ma/sldl:25th_middlesex"),
            ("Twenty-Sixth Middlesex",
             "ocd-division/country:us/state:ma/sldl:26th_middlesex"),
            ("Twenty-Seventh Middlesex",
             "ocd-division/country:us/state:ma/sldl:27th_middlesex"),
            ("Twenty-Eighth Middlesex",
             "ocd-division/country:us/state:ma/sldl:28th_middlesex"),
            ("Twenty-Ninth Middlesex",
             "ocd-division/country:us/state:ma/sldl:29th_middlesex"),
            ("Second Barnstable",
             "ocd-division/country:us/state:ma/sldl:2nd_barnstable"),
            ("Second Berkshire",
             "ocd-division/country:us/state:ma/sldl:2nd_berkshire"),
            ("Second Bristol",
             "ocd-division/country:us/state:ma/sldl:2nd_bristol"),
            ("Second Essex",
             "ocd-division/country:us/state:ma/sldl:2nd_essex"),
            ("Second Franklin",
             "ocd-division/country:us/state:ma/sldl:2nd_franklin"),
            ("Second Hampden",
             "ocd-division/country:us/state:ma/sldl:2nd_hampden"),
            ("Second Hampshire",
             "ocd-division/country:us/state:ma/sldl:2nd_hampshire"),
            ("Second Middlesex",
             "ocd-division/country:us/state:ma/sldl:2nd_middlesex"),
            ("Second Norfolk",
             "ocd-division/country:us/state:ma/sldl:2nd_norfolk"),
            ("Second Plymouth",
             "ocd-division/country:us/state:ma/sldl:2nd_plymouth"),
            ("Second Suffolk",
             "ocd-division/country:us/state:ma/sldl:2nd_suffolk"),
            ("Second Worcester",
             "ocd-division/country:us/state:ma/sldl:2nd_worcester"),
            ("Thirtieth Middlesex",
             "ocd-division/country:us/state:ma/sldl:30th_middlesex"),
            ("Thirty-First Middlesex",
             "ocd-division/country:us/state:ma/sldl:31st_middlesex"),
            ("Thirty-Second Middlesex",
             "ocd-division/country:us/state:ma/sldl:32nd_middlesex"),
            ("Thirty-Third Middlesex",
             "ocd-division/country:us/state:ma/sldl:33rd_middlesex"),
            ("Thirty-Fourth Middlesex",
             "ocd-division/country:us/state:ma/sldl:34th_middlesex"),
            ("Thirty-Fifth Middlesex",
             "ocd-division/country:us/state:ma/sldl:35th_middlesex"),
            ("Thirty-Sixth Middlesex",
             "ocd-division/country:us/state:ma/sldl:36th_middlesex"),
            ("Thirty-Seventh Middlesex",
             "ocd-division/country:us/state:ma/sldl:37th_middlesex"),
            ("Third Barnstable",
             "ocd-division/country:us/state:ma/sldl:3rd_barnstable"),
            ("Third Berkshire",
             "ocd-division/country:us/state:ma/sldl:3rd_berkshire"),
            ("Third Bristol",
             "ocd-division/country:us/state:ma/sldl:3rd_bristol"),
            ("Third Essex", "ocd-division/country:us/state:ma/sldl:3rd_essex"),
            ("Third Hampden",
             "ocd-division/country:us/state:ma/sldl:3rd_hampden"),
            ("Third Hampshire",
             "ocd-division/country:us/state:ma/sldl:3rd_hampshire"),
            ("Third Middlesex",
             "ocd-division/country:us/state:ma/sldl:3rd_middlesex"),
            ("Third Norfolk",
             "ocd-division/country:us/state:ma/sldl:3rd_norfolk"),
            ("Third Plymouth",
             "ocd-division/country:us/state:ma/sldl:3rd_plymouth"),
            ("Third Suffolk",
             "ocd-division/country:us/state:ma/sldl:3rd_suffolk"),
            ("Third Worcester",
             "ocd-division/country:us/state:ma/sldl:3rd_worcester"),
            ("Fourth Barnstable",
             "ocd-division/country:us/state:ma/sldl:4th_barnstable"),
            ("Fourth Berkshire",
             "ocd-division/country:us/state:ma/sldl:4th_berkshire"),
            ("Fourth Bristol",
             "ocd-division/country:us/state:ma/sldl:4th_bristol"),
            ("Fourth Essex",
             "ocd-division/country:us/state:ma/sldl:4th_essex"),
            ("Fourth Hampden",
             "ocd-division/country:us/state:ma/sldl:4th_hampden"),
            ("Fourth Middlesex",
             "ocd-division/country:us/state:ma/sldl:4th_middlesex"),
            ("Fourth Norfolk",
             "ocd-division/country:us/state:ma/sldl:4th_norfolk"),
            ("Fourth Plymouth",
             "ocd-division/country:us/state:ma/sldl:4th_plymouth"),
            ("Fourth Suffolk",
             "ocd-division/country:us/state:ma/sldl:4th_suffolk"),
            ("Fourth Worcester",
             "ocd-division/country:us/state:ma/sldl:4th_worcester"),
            ("Fifth Barnstable",
             "ocd-division/country:us/state:ma/sldl:5th_barnstable"),
            ("Fifth Bristol",
             "ocd-division/country:us/state:ma/sldl:5th_bristol"),
            ("Fifth Essex", "ocd-division/country:us/state:ma/sldl:5th_essex"),
            ("Fifth Hampden",
             "ocd-division/country:us/state:ma/sldl:5th_hampden"),
            ("Fifth Middlesex",
             "ocd-division/country:us/state:ma/sldl:5th_middlesex"),
            ("Fifth Norfolk",
             "ocd-division/country:us/state:ma/sldl:5th_norfolk"),
            ("Fifth Plymouth",
             "ocd-division/country:us/state:ma/sldl:5th_plymouth"),
            ("Fifth Suffolk",
             "ocd-division/country:us/state:ma/sldl:5th_suffolk"),
            ("Fifth Worcester",
             "ocd-division/country:us/state:ma/sldl:5th_worcester"),
            ("Sixth Bristol",
             "ocd-division/country:us/state:ma/sldl:6th_bristol"),
            ("Sixth Essex", "ocd-division/country:us/state:ma/sldl:6th_essex"),
            ("Sixth Hampden",
             "ocd-division/country:us/state:ma/sldl:6th_hampden"),
            ("Sixth Middlesex",
             "ocd-division/country:us/state:ma/sldl:6th_middlesex"),
            ("Sixth Norfolk",
             "ocd-division/country:us/state:ma/sldl:6th_norfolk"),
            ("Sixth Plymouth",
             "ocd-division/country:us/state:ma/sldl:6th_plymouth"),
            ("Sixth Suffolk",
             "ocd-division/country:us/state:ma/sldl:6th_suffolk"),
            ("Sixth Worcester",
             "ocd-division/country:us/state:ma/sldl:6th_worcester"),
            ("Seventh Bristol",
             "ocd-division/country:us/state:ma/sldl:7th_bristol"),
            ("Seventh Essex",
             "ocd-division/country:us/state:ma/sldl:7th_essex"),
            ("Seventh Hampden",
             "ocd-division/country:us/state:ma/sldl:7th_hampden"),
            ("Seventh Middlesex",
             "ocd-division/country:us/state:ma/sldl:7th_middlesex"),
            ("Seventh Norfolk",
             "ocd-division/country:us/state:ma/sldl:7th_norfolk"),
            ("Seventh Plymouth",
             "ocd-division/country:us/state:ma/sldl:7th_plymouth"),
            ("Seventh Suffolk",
             "ocd-division/country:us/state:ma/sldl:7th_suffolk"),
            ("Seventh Worcester",
             "ocd-division/country:us/state:ma/sldl:7th_worcester"),
            ("Eighth Bristol",
             "ocd-division/country:us/state:ma/sldl:8th_bristol"),
            ("Eighth Essex",
             "ocd-division/country:us/state:ma/sldl:8th_essex"),
            ("Eighth Hampden",
             "ocd-division/country:us/state:ma/sldl:8th_hampden"),
            ("Eighth Middlesex",
             "ocd-division/country:us/state:ma/sldl:8th_middlesex"),
            ("Eighth Norfolk",
             "ocd-division/country:us/state:ma/sldl:8th_norfolk"),
            ("Eighth Plymouth",
             "ocd-division/country:us/state:ma/sldl:8th_plymouth"),
            ("Eighth Suffolk",
             "ocd-division/country:us/state:ma/sldl:8th_suffolk"),
            ("Eighth Worcester",
             "ocd-division/country:us/state:ma/sldl:8th_worcester"),
            ("Ninth Bristol",
             "ocd-division/country:us/state:ma/sldl:9th_bristol"),
            ("Ninth Essex", "ocd-division/country:us/state:ma/sldl:9th_essex"),
            ("Ninth Hampden",
             "ocd-division/country:us/state:ma/sldl:9th_hampden"),
            ("Ninth Middlesex",
             "ocd-division/country:us/state:ma/sldl:9th_middlesex"),
            ("Ninth Norfolk",
             "ocd-division/country:us/state:ma/sldl:9th_norfolk"),
            ("Ninth Plymouth",
             "ocd-division/country:us/state:ma/sldl:9th_plymouth"),
            ("Ninth Suffolk",
             "ocd-division/country:us/state:ma/sldl:9th_suffolk"),
            ("Ninth Worcester",
             "ocd-division/country:us/state:ma/sldl:9th_worcester"),
            ("Barnstable, Dukes and Nantucket",
             "ocd-division/country:us/state:ma/sldl:barnstable_dukes_and_nantucket"
             ),
        ]

        upper_divs = [
            ("Berkshire, Hampshire, Franklin and Hampden",
             "ocd-division/country:us/state:ma/sldu:berkshire_hampshire_franklin_and_hampden"
             ),
            ("Bristol and Norfolk",
             "ocd-division/country:us/state:ma/sldu:bristol_and_norfolk"),
            ("Cape and Islands",
             "ocd-division/country:us/state:ma/sldu:cape_and_islands"),
            ("Fifth Middlesex",
             "ocd-division/country:us/state:ma/sldu:5th_middlesex"),
            ("First Bristol and Plymouth",
             "ocd-division/country:us/state:ma/sldu:1st_bristol_and_plymouth"),
            ("First Essex", "ocd-division/country:us/state:ma/sldu:1st_essex"),
            ("First Essex and Middlesex",
             "ocd-division/country:us/state:ma/sldu:1st_essex_and_middlesex"),
            ("First Hampden and Hampshire",
             "ocd-division/country:us/state:ma/sldu:1st_hampden_and_hampshire"
             ),
            ("First Middlesex",
             "ocd-division/country:us/state:ma/sldu:1st_middlesex"),
            ("First Middlesex and Norfolk",
             "ocd-division/country:us/state:ma/sldu:1st_middlesex_and_norfolk"
             ),
            ("First Plymouth and Bristol",
             "ocd-division/country:us/state:ma/sldu:1st_plymouth_and_bristol"),
            ("First Suffolk",
             "ocd-division/country:us/state:ma/sldu:1st_suffolk"),
            ("First Suffolk and Middlesex",
             "ocd-division/country:us/state:ma/sldu:1st_suffolk_and_middlesex"
             ),
            ("First Worcester",
             "ocd-division/country:us/state:ma/sldu:1st_worcester"),
            ("Fourth Middlesex",
             "ocd-division/country:us/state:ma/sldu:4th_middlesex"),
            ("Hampden", "ocd-division/country:us/state:ma/sldu:hampden"),
            ("Hampshire, Franklin and Worcester",
             "ocd-division/country:us/state:ma/sldu:hampshire_franklin_and_worcester"
             ),
            ("Middlesex and Suffolk",
             "ocd-division/country:us/state:ma/sldu:middlesex_and_suffolk"),
            ("Middlesex and Worcester",
             "ocd-division/country:us/state:ma/sldu:middlesex_and_worcester"),
            ("Norfolk, Bristol and Middlesex",
             "ocd-division/country:us/state:ma/sldu:norfolk_bristol_and_middlesex"
             ),
            ("Norfolk, Bristol and Plymouth",
             "ocd-division/country:us/state:ma/sldu:norfolk_bristol_and_plymouth"
             ),
            ("Norfolk and Plymouth",
             "ocd-division/country:us/state:ma/sldu:norfolk_and_plymouth"),
            ("Norfolk and Suffolk",
             "ocd-division/country:us/state:ma/sldu:norfolk_and_suffolk"),
            ("Plymouth and Barnstable",
             "ocd-division/country:us/state:ma/sldu:plymouth_and_barnstable"),
            ("Plymouth and Norfolk",
             "ocd-division/country:us/state:ma/sldu:plymouth_and_norfolk"),
            ("Second Bristol and Plymouth",
             "ocd-division/country:us/state:ma/sldu:2nd_bristol_and_plymouth"),
            ("Second Essex",
             "ocd-division/country:us/state:ma/sldu:2nd_essex"),
            ("Second Essex and Middlesex",
             "ocd-division/country:us/state:ma/sldu:2nd_essex_and_middlesex"),
            ("Second Hampden and Hampshire",
             "ocd-division/country:us/state:ma/sldu:2nd_hampden_and_hampshire"
             ),
            ("Second Middlesex",
             "ocd-division/country:us/state:ma/sldu:2nd_middlesex"),
            ("Second Middlesex and Norfolk",
             "ocd-division/country:us/state:ma/sldu:2nd_middlesex_and_norfolk"
             ),
            ("Second Plymouth and Bristol",
             "ocd-division/country:us/state:ma/sldu:2nd_plymouth_and_bristol"),
            ("Second Suffolk",
             "ocd-division/country:us/state:ma/sldu:2nd_suffolk"),
            ("Second Suffolk and Middlesex",
             "ocd-division/country:us/state:ma/sldu:2nd_suffolk_and_middlesex"
             ),
            ("Second Worcester",
             "ocd-division/country:us/state:ma/sldu:2nd_worcester"),
            ("Third Essex", "ocd-division/country:us/state:ma/sldu:3rd_essex"),
            ("Third Middlesex",
             "ocd-division/country:us/state:ma/sldu:3rd_middlesex"),
            ("Worcester, Hampden, Hampshire and Middlesex",
             "ocd-division/country:us/state:ma/sldu:worcester_hampden_hampshire_and_middlesex"
             ),
            ("Worcester and Middlesex",
             "ocd-division/country:us/state:ma/sldu:worcester_and_middlesex"),
            ("Worcester and Norfolk",
             "ocd-division/country:us/state:ma/sldu:worcester_and_norfolk"),
        ]

        for name, division_id in lower_divs:
            lower.add_post(label=name,
                           role=lower_title,
                           division_id=division_id)
        for name, division_id in upper_divs:
            upper.add_post(label=name,
                           role=upper_title,
                           division_id=division_id)

        yield Organization(name='Office of the Governor',
                           classification='executive')
        yield legislature
        yield upper
        yield lower
Ejemplo n.º 46
0
    def get_organizations(self):

        city = Organization('City of Minneapolis', classification='executive')
        city.add_post('Mayor', 'Mayor', division_id='ocd-division/country:us/state:mn/place:minneapolis')
        city.add_post('City Clerk', 'City Clerk', division_id='ocd-division/country:us/state:mn/place:minneapolis')        
        yield city

        council = Organization(name="Minneapolis City Council", classification="legislature", parent_id=city)
        for x in range(1, 14):
            council.add_post(
                "Ward {}".format(x),
                "Councilmember",
                division_id='ocd-division/country:us/state:mn/place:minneapolis/ward:{}'.format(x))

        yield council


        frey = Person(name="Frey, Jacob")
        frey.add_term('Mayor',
                      'executive',
                      start_date=datetime.date(2018, 1, 19),
                      appointment=True)
        frey.add_source('http://www.google.com')
        yield frey

        parks = Organization('Minneapolis Parks and Recreation', classification='legislature')
        for x in range(1, 7):
            parks.add_post(
                "District {}".format(x),
                "Commissioner")

        parks.add_post("At Large", "Commissioner")

        yield parks

        school = Organization('Minneapolis School Board', classification='legislature')
        for x in range(1, 7):
            school.add_post(
                "District {}".format(x),
                "Director",)

        school.add_post("At Large", "Director")
        yield school
        


        cmt_link = 'https://lims.minneapolismn.gov/Calendar/GetCommittees'
        cmts_site = requests.get(cmt_link)
        cmts = cmts_site.json()
        for c in cmts:
            name = c['Name']
            abbv = c['Abbreviation']
            org_id = c['Id']
            active = c['Active']
            member_count = c['MembersCount']
            purpose = c['Purpose']
            start_date = c['StartDate']
            chair = c['ChairMan']
            members = c['Members']
            location = c['Location']
            address = c['Address']
            mtg_time = c['MeetingTime']
            quorum = c['QuorumCount']

            if name != 'City Council':
                org = Organization(name, classification='committee', parent_id=council)
                org.add_source(cmt_link)
                if start_date != None:
                    org.founding_date = start_date.split('T')[0]
                yield org
Ejemplo n.º 47
0
    def get_organizations(self):
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Mayor',
                              label='Whitby',
                              division_id=self.division_id)
        for seat_number in range(1, 4):
            organization.add_post(role='Regional Councillor',
                                  label='Whitby (seat {})'.format(seat_number),
                                  division_id=self.division_id)
        organization.add_post(role='Councillor', label='North Ward')
        organization.add_post(role='Councillor', label='West Ward')
        organization.add_post(role='Councillor', label='Centre Ward')
        organization.add_post(role='Councillor', label='East Ward')

        yield organization
Ejemplo n.º 48
0
 def get_organizations(self):
     council = Organization('New York City Council',
                            classification='legislature')
     for x in range(1, 52):
         council.add_post(str(x), role='Council Member')
     yield council
Ejemplo n.º 49
0
 def get_organizations(self):
     council = Organization('City of Madison Common Council',
                            classification='legislature')
     for x in range(1, 21):
         council.add_post(str(x), role='Alder')
     yield council
Ejemplo n.º 50
0
    def get_organizations(self):
        org = Organization(name="Board of Directors",
                           classification="legislature")

        org.add_post(
            'Mayor of the City of Los Angeles',
            'Board Member',
            division_id='ocd-division/country:us/state:ca/place:los_angeles')

        for district in range(1, 6):
            org.add_post(
                'Los Angeles County Board Supervisor, District {}'.format(
                    district),
                'Board Member',
                division_id=
                'ocd-division/country:us/state:ca/county:los_angeles/council_district:{}'
                .format(district))

        org.add_post(
            'Appointee of Mayor of the City of Los Angeles',
            'Board Member',
            division_id='ocd-division/country:us/state:ca/place:los_angeles')

        org.add_post('Appointee of Governor of California',
                     'Nonvoting Board Member',
                     division_id='ocd-division/country:us/state:ca')

        org.add_post(
            'District 7 Director, California Department of Transportation (Caltrans), Appointee of the Governor of California',
            'Nonvoting Board Member',
            division_id='ocd-division/country:us/state:ca')

        org.add_post(
            'Appointee of Los Angeles County City Selection Committee, North County/San Fernando Valley sector',
            'Board Member',
            division_id=
            'ocd-division/country:us/state:ca/county:los_angeles/la_metro_sector:north_county_san_fernando_valley'
        )

        org.add_post(
            'Appointee of Los Angeles County City Selection Committee, Southwest Corridor sector',
            'Board Member',
            division_id=
            'ocd-division/country:us/state:ca/county:los_angeles/la_metro_sector:southwest_corridor'
        )

        org.add_post(
            'Appointee of Los Angeles County City Selection Committee, San Gabriel Valley sector',
            'Board Member',
            division_id=
            'ocd-division/country:us/state:ca/county:los_angeles/la_metro_sector:san_gabriel_valley'
        )

        org.add_post(
            'Appointee of Los Angeles County City Selection Committee, Southeast Long Beach sector',
            'Board Member',
            division_id=
            'ocd-division/country:us/state:ca/county:los_angeles/la_metro_sector:southeast_long_beach'
        )

        org.add_post('Chair', 'Chair')

        org.add_post('Vice Chair', 'Vice Chair')

        org.add_post('1st Vice Chair', '1st Vice Chair')

        org.add_post('2nd Vice Chair', '2nd Vice Chair')

        org.add_post("Chief Executive Officer", "Chief Executive Officer")

        org.add_source(
            'https://metro.legistar.com/DepartmentDetail.aspx?ID=28529&GUID=44319A1A-B2B7-48CC-B857-ADCE9064573B',
            note='web')

        yield org

        org = Organization(name="Crenshaw Project Corporation",
                           classification="corporation")
        org.add_source(
            'https://metro.legistar.com/DepartmentDetail.aspx?ID=32216&GUID=D790CC05-ACCB-451C-B576-2952090769F1'
        )
        yield org

        org = Organization(name="LA SAFE", classification="corporation")
        org.add_source(
            'https://metro.legistar.com/DepartmentDetail.aspx?ID=30222&GUID=5F27DA83-633F-4FEA-A4B0-0477551061B6&R=aef57793-1826-4cfa-b6e3-d6b42cf77527'
        )
        yield org
Ejemplo n.º 51
0
    def get_organizations(self):
        global date_range

        city = Organization('City of Saint Paul', classification='executive')
        city.add_post(
            'Mayor',
            'Mayor',
            division_id='ocd-division/country:us/state:mn/place:st_paul')
        city.add_post(
            'City Clerk',
            'City Clerk',
            division_id='ocd-division/country:us/state:mn/place:st_paul')
        yield city

        council = Organization(name="Saint Paul City Council",
                               classification="legislature",
                               parent_id=city)
        for x in range(1, 8):
            council.add_post(
                "Ward {}".format(x),
                "Councilmember",
                division_id=
                'ocd-division/country:us/state:mn/place:st_paul/ward:{}'.
                format(x))

        yield council

        carter = Person(name="Melvin Carter")
        carter.add_term('Mayor',
                        'executive',
                        start_date=dtdate(2018, 1, 19),
                        appointment=True)

        carter.add_source('http://www.google.com')
        yield carter

        new_meetings = []
        temp_labels = []
        for date in date_range:
            print('Checking date:', date)
            root = requests.get("https://www.stpaul.gov/calendar/" + date)
            base = html.fromstring(root.text)
            items = base.xpath('.//*/div[@class="view-content"]/div')
            meetings = []
            for i in items:
                if len(
                        i.xpath(
                            './/*/span[@class="date-display-single"]/text()')
                ) > 0:
                    d = {}
                    d['date'] = i.xpath(
                        './/*/span[@class="date-display-single"]/text()')[0]
                    d['info'] = i.xpath(
                        './/*/span[@class="field-content"]/a/text()')[0]
                    d['link'] = i.xpath(
                        './/*/span[@class="field-content"]/a/@href')[0]
                    meetings.append(d)

            for m in meetings:
                m['link'] = "https://www.stpaul.gov" + m['link']
            for m in meetings:
                r = requests.get(m['link'])
                b = html.fromstring(r.text)
                exists = b.xpath('.//div[@class="node-content clearfix"]')
                if len(exists) > 0:
                    if not 'City Council' in m[
                            'info'] and not 'Legislative' in m[
                                'info'] and not 'Holiday' in m['info']:
                        m['name'] = m['info'].replace('Meeting', '').replace(
                            ' - Cancelled', '').replace('Events', '').strip()
                        if not m['name'] in temp_labels:
                            temp_labels.append(m['name'])
                            new_meetings.append(m)

        print('Creating organizations')
        for m in new_meetings:
            print(m)
            cmt = Organization(name=m['name'],
                               classification='committee',
                               parent_id=city)
            cmt.add_source(m['link'])
            yield cmt
Ejemplo n.º 52
0
    def scrape(self):
        exclude_divisions = {
            'ocd-division/country:ca/csd:1301006',  # Saint John
            'ocd-division/country:ca/csd:1307022',  # Moncton
            'ocd-division/country:ca/csd:1310032',  # Fredericton
        }
        expected_roles = {
            'Mayor',
            'Councillor',
        }
        unique_roles = {
            'Mayor',
        }
        classifications = {
            'Cities': 'City',
            'Towns': 'Town',
            'Villages': 'Village',
            'Rural Communities': 'Community',
            'Regional Municipality': 'Regional',
        }
        corrections = {
            'Beaubassin-est/East': 'Beaubassin East',
            'Lac-Baker': 'Lac Baker',
            'Saint-François-de-Madawaska': 'Saint-François de Madawaska',
            'Saint-Hilaire': 'Saint Hilaire',
        }
        unknown_names = {
            'Haut-Madawaska',  # incorporated after Census 2016
        }
        duplicate_names = {
            'Denis Savoie',
            'Josée Levesque',
            'Luc Levesque',
        }

        names_to_ids = {}
        for division in Division.get('ocd-division/country:ca').children(
                'csd'):
            type_id = division.id.rsplit(':', 1)[1]
            if type_id.startswith('13'):
                if division.attrs['classification'] == 'P':
                    continue
                if division.name in names_to_ids:
                    raise Exception('unhandled collision: {}'.format(
                        division.name))
                else:
                    names_to_ids[division.name] = division.id

        page = self.lxmlize(COUNCIL_PAGE)
        list_links = page.xpath(
            '//div[@id="sidebar"]//div[contains(@class, "list")][1]//a')

        birth_date = 1900
        seen = set()

        assert len(list_links), 'No list items found'
        for list_link in list_links:
            page = self.lxmlize(list_link.attrib['href'])
            detail_urls = page.xpath('//td[1]//@href')

            assert len(detail_urls), 'No municipalities found'
            for detail_url in detail_urls:
                page = self.lxmlize(detail_url, encoding='utf-8')
                division_name = re.sub(
                    r'\ASt\b\.?', 'Saint',
                    page.xpath('//h1/text()')[0].split(' - ', 1)[1])
                division_name = corrections.get(division_name, division_name)

                if division_name in unknown_names:
                    continue
                division_id = names_to_ids[division_name]
                if division_id in exclude_divisions:
                    continue
                if division_id in seen:
                    raise Exception(
                        'unhandled collision: {}'.format(division_id))

                seen.add(division_id)
                division_name = Division.get(division_id).name
                organization_name = '{} {} Council'.format(
                    division_name, classifications[list_link.text])
                organization = Organization(name=organization_name,
                                            classification='government')
                organization.add_source(detail_url)

                address = ', '.join(
                    page.xpath('//div[@class="left_contents"]/p[1]/text()'))

                contacts = page.xpath(
                    '//div[@class="left_contents"]/p[contains(., "Contact")]/text()'
                )
                phone = contacts[0].split(':')[1]
                if len(contacts) > 1:
                    fax = contacts[1].split(':')[1]
                email = self.get_email(page,
                                       '//div[@class="left_contents"]',
                                       error=False)

                url = page.xpath(
                    '//div[@class="left_contents"]//@href[not(contains(., "mailto:"))]'
                )
                if url:
                    url = url[0]

                groups = page.xpath(
                    '//div[contains(@class, "right_contents")]/p')
                assert len(groups), 'No groups found'
                for p in groups:
                    role = p.xpath('./b/text()')[0].rstrip('s')
                    if role not in expected_roles:
                        raise Exception('unexpected role: {}'.format(role))

                    councillors = p.xpath('./text()')
                    assert len(councillors), 'No councillors found'
                    for seat_number, name in enumerate(councillors, 1):
                        if 'vacant' in name.lower():
                            continue

                        if role in unique_roles:
                            district = division_name
                        else:
                            district = '{} (seat {})'.format(
                                division_name, seat_number)

                        organization.add_post(role=role,
                                              label=district,
                                              division_id=division_id)

                        p = Person(primary_org='government',
                                   primary_org_name=organization_name,
                                   name=name,
                                   district=district,
                                   role=role)
                        p.add_source(COUNCIL_PAGE)
                        p.add_source(list_link.attrib['href'])
                        p.add_source(detail_url)

                        if name in duplicate_names:
                            p.birth_date = str(birth_date)
                            birth_date += 1

                        p.add_contact('address', address, 'legislature')
                        # @see https://en.wikipedia.org/wiki/Area_code_506
                        if phone:
                            p.add_contact('voice',
                                          phone,
                                          'legislature',
                                          area_code=506)
                        if fax:
                            p.add_contact('fax',
                                          fax,
                                          'legislature',
                                          area_code=506)
                        if email:
                            p.add_contact('email', email)
                        if url:
                            p.add_link(url)

                        p._related[0].extras[
                            'boundary_url'] = '/boundaries/census-subdivisions/{}/'.format(
                                division_id.rsplit(':', 1)[1])

                        yield p

                yield organization
Ejemplo n.º 53
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        organization.add_post(role='Regional Chair', label=self.division_name, division_id=self.division_id)
        organization.add_post(role='Mayor', label='Caledon', division_id='ocd-division/country:ca/csd:3521024')
        organization.add_post(role='Mayor', label='Brampton', division_id='ocd-division/country:ca/csd:3521010')
        organization.add_post(role='Mayor', label='Mississauga', division_id='ocd-division/country:ca/csd:3521005')
        for ward_number in range(1, 6):
            organization.add_post(role='Councillor', label='Caledon Ward {}'.format(ward_number), division_id='ocd-division/country:ca/csd:3521024/ward:{}'.format(ward_number))
        for ward_number in range(1, 11):
            organization.add_post(role='Councillor', label='Brampton Ward {}'.format(ward_number), division_id='ocd-division/country:ca/csd:3521010/ward:{}'.format(ward_number))
        for ward_number in range(1, 12):
            organization.add_post(role='Councillor', label='Mississauga Ward {}'.format(ward_number), division_id='ocd-division/country:ca/csd:3521005/ward:{}'.format(ward_number))

        yield organization
Ejemplo n.º 54
0
    def get_organizations(self):
        legislature_name = "Vermont General Assembly"
        lower_chamber_name = "House"
        lower_title = "Representative"
        upper_chamber_name = "Senate"
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        governor = Organization(name='Office of the Governor',
                                classification='executive')
        upper = Organization(upper_chamber_name,
                             classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name,
                             classification='lower',
                             parent_id=legislature._id)

        lower.add_post(
            label='Addison-1',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:addison-1')
        lower.add_post(
            label='Addison-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:addison-2')
        lower.add_post(
            label='Addison-3',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:addison-3')
        lower.add_post(
            label='Addison-4',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:addison-4')
        lower.add_post(
            label='Addison-5',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:addison-5')
        lower.add_post(
            label='Addison-Rutland',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:addison-rutland'
        )
        lower.add_post(
            label='Bennington-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:bennington-1')
        lower.add_post(
            label='Bennington-2-1',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:bennington-2-1')
        lower.add_post(
            label='Bennington-2-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:bennington-2-2')
        lower.add_post(
            label='Bennington-3',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:bennington-3')
        lower.add_post(
            label='Bennington-4',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:bennington-4')
        lower.add_post(
            label='Bennington-Rutland',  # maximum=1,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:bennington-rutland')
        lower.add_post(
            label='Caledonia-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:caledonia-1')
        lower.add_post(
            label='Caledonia-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:caledonia-2')
        lower.add_post(
            label='Caledonia-3',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:caledonia-3')
        lower.add_post(
            label='Caledonia-4',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:caledonia-4')
        lower.add_post(
            label='Caledonia-Washington',  # maximum=1,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:caledonia-washington')
        lower.add_post(
            label='Chittenden-10',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-10')
        lower.add_post(
            label='Chittenden-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-1')
        lower.add_post(
            label='Chittenden-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-2')
        lower.add_post(
            label='Chittenden-3',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-3')
        lower.add_post(
            label='Chittenden-4-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-4-1')
        lower.add_post(
            label='Chittenden-4-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-4-2')
        lower.add_post(
            label='Chittenden-5-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-5-1')
        lower.add_post(
            label='Chittenden-5-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-5-2')
        lower.add_post(
            label='Chittenden-6-1',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-6-1')
        lower.add_post(
            label='Chittenden-6-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-6-2')
        lower.add_post(
            label='Chittenden-6-3',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-6-3')
        lower.add_post(
            label='Chittenden-6-4',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-6-4')
        lower.add_post(
            label='Chittenden-6-5',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-6-5')
        lower.add_post(
            label='Chittenden-6-6',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-6-6')
        lower.add_post(
            label='Chittenden-6-7',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-6-7')
        lower.add_post(
            label='Chittenden-7-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-7-1')
        lower.add_post(
            label='Chittenden-7-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-7-2')
        lower.add_post(
            label='Chittenden-7-3',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-7-3')
        lower.add_post(
            label='Chittenden-7-4',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-7-4')
        lower.add_post(
            label='Chittenden-8-1',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-8-1')
        lower.add_post(
            label='Chittenden-8-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-8-2')
        lower.add_post(
            label='Chittenden-8-3',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-8-3')
        lower.add_post(
            label='Chittenden-9-1',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-9-1')
        lower.add_post(
            label='Chittenden-9-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:chittenden-9-2')
        lower.add_post(
            label='Essex-Caledonia',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:essex-caledonia'
        )
        lower.add_post(
            label='Essex-Caledonia-Orleans',  # maximum=1,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:essex-caledonia-orleans')
        lower.add_post(
            label='Franklin-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:franklin-1')
        lower.add_post(
            label='Franklin-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:franklin-2')
        lower.add_post(
            label='Franklin-3-1',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:franklin-3-1')
        lower.add_post(
            label='Franklin-3-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:franklin-3-2')
        lower.add_post(
            label='Franklin-4',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:franklin-4')
        lower.add_post(
            label='Franklin-5',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:franklin-5')
        lower.add_post(
            label='Franklin-6',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:franklin-6')
        lower.add_post(
            label='Franklin-7',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:franklin-7')
        lower.add_post(
            label='Grand Isle-Chittenden',  # maximum=2,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:grand_isle-chittenden')
        lower.add_post(
            label='Lamoille-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:lamoille-1')
        lower.add_post(
            label='Lamoille-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:lamoille-2')
        lower.add_post(
            label='Lamoille-3',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:lamoille-3')
        lower.add_post(
            label='Lamoille-Washington',  # maximum=2,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:lamoille-washington')
        lower.add_post(
            label='Orange-1',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:orange-1')
        lower.add_post(
            label='Orange-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:orange-2')
        lower.add_post(
            label='Orange-Caledonia',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:orange-caledonia'
        )
        lower.add_post(
            label='Orange-Washington-Addison',  # maximum=2,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:orange-washington-addison')
        lower.add_post(
            label='Orleans-1',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:orleans-1')
        lower.add_post(
            label='Orleans-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:orleans-2')
        lower.add_post(
            label='Orleans-Caledonia',  # maximum=2,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:orleans-caledonia')
        lower.add_post(
            label='Orleans-Lamoille',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:orleans-lamoille'
        )
        lower.add_post(
            label='Rutland-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:rutland-1')
        lower.add_post(
            label='Rutland-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:rutland-2')
        lower.add_post(
            label='Rutland-3',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:rutland-3')
        lower.add_post(
            label='Rutland-4',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:rutland-4')
        lower.add_post(
            label='Rutland-5-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:rutland-5-1')
        lower.add_post(
            label='Rutland-5-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:rutland-5-2')
        lower.add_post(
            label='Rutland-5-3',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:rutland-5-3')
        lower.add_post(
            label='Rutland-5-4',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:rutland-5-4')
        lower.add_post(
            label='Rutland-6',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:rutland-6')
        lower.add_post(
            label='Rutland-Bennington',  # maximum=1,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:rutland-bennington')
        lower.add_post(
            label='Rutland-Windsor-1',  # maximum=1,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:rutland-windsor-1')
        lower.add_post(
            label='Rutland-Windsor-2',  # maximum=1,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:rutland-windsor-2')
        lower.add_post(
            label='Washington-1',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:washington-1')
        lower.add_post(
            label='Washington-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:washington-2')
        lower.add_post(
            label='Washington-3',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:washington-3')
        lower.add_post(
            label='Washington-4',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:washington-4')
        lower.add_post(
            label='Washington-5',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:washington-5')
        lower.add_post(
            label='Washington-6',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:washington-6')
        lower.add_post(
            label='Washington-7',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:washington-7')
        lower.add_post(
            label='Washington-Chittenden',  # maximum=2,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:washington-chittenden')
        lower.add_post(
            label='Windham-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windham-1')
        lower.add_post(
            label='Windham-2-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windham-2-1')
        lower.add_post(
            label='Windham-2-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windham-2-2')
        lower.add_post(
            label='Windham-2-3',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windham-2-3')
        lower.add_post(
            label='Windham-3',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windham-3')
        lower.add_post(
            label='Windham-4',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windham-4')
        lower.add_post(
            label='Windham-5',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windham-5')
        lower.add_post(
            label='Windham-6',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windham-6')
        lower.add_post(
            label='Windham-Bennington',  # maximum=1,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:windham-bennington')
        lower.add_post(
            label='Windham-Bennington-Windsor',  # maximum=1,
            role=lower_title,
            division_id=
            'ocd-division/country:us/state:vt/sldl:windham-bennington-windsor')
        lower.add_post(
            label='Windsor-1',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windsor-1')
        lower.add_post(
            label='Windsor-2',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windsor-2')
        lower.add_post(
            label='Windsor-3-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windsor-3-1')
        lower.add_post(
            label='Windsor-3-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windsor-3-2')
        lower.add_post(
            label='Windsor-4-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windsor-4-1')
        lower.add_post(
            label='Windsor-4-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windsor-4-2')
        lower.add_post(
            label='Windsor-5',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windsor-5')
        lower.add_post(
            label='Windsor-Orange-1',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windsor-orange-1'
        )
        lower.add_post(
            label='Windsor-Orange-2',  # maximum=2,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windsor-orange-2'
        )
        lower.add_post(
            label='Windsor-Rutland',  # maximum=1,
            role=lower_title,
            division_id='ocd-division/country:us/state:vt/sldl:windsor-rutland'
        )
        upper.add_post(
            label='Addison',  # maximum=2,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:addison')
        upper.add_post(
            label='Bennington',  # maximum=2,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:bennington')
        upper.add_post(
            label='Caledonia',  # maximum=2,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:caledonia')
        upper.add_post(
            label='Chittenden',  # maximum=6,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:chittenden')
        upper.add_post(
            label='Essex-Orleans',  # maximum=2,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:essex-orleans')
        upper.add_post(
            label='Franklin',  # maximum=2,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:franklin')
        upper.add_post(
            label='Chittenden-Grand Isle',  # maximum=1,
            role=upper_title,
            division_id=
            'ocd-division/country:us/state:vt/sldu:grand_isle-chittenden')
        upper.add_post(
            label='Lamoille',  # maximum=1,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:lamoille')
        upper.add_post(
            label='Orange',  # maximum=1,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:orange')
        upper.add_post(
            label='Rutland',  # maximum=3,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:rutland')
        upper.add_post(
            label='Washington',  # maximum=3,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:washington')
        upper.add_post(
            label='Windham',  # maximum=2,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:windham')
        upper.add_post(
            label='Windsor',  # maximum=3,
            role=upper_title,
            division_id='ocd-division/country:us/state:vt/sldu:windsor')

        yield legislature
        yield governor
        yield upper
        yield lower
Ejemplo n.º 55
0
    def get_organizations(self):
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Chair', label='Waterloo')
        organization.add_post(role='Regional Councillor', label='Cambridge')
        organization.add_post(role='Regional Councillor', label='Kitchener')
        organization.add_post(role='Regional Councillor', label='Waterloo')
        organization.add_post(role='Regional Councillor',
                              label='North Dumfries')
        organization.add_post(role='Regional Councillor', label='Wellesley')
        organization.add_post(role='Regional Councillor', label='Wilmot')
        organization.add_post(role='Regional Councillor', label='Woolwich')
        for seat_number in range(1, 3):
            organization.add_post(
                role='Regional Councillor',
                label='Cambridge (seat {})'.format(seat_number))
        for seat_number in range(1, 5):
            organization.add_post(
                role='Regional Councillor',
                label='Kitchener (seat {})'.format(seat_number))
        for seat_number in range(1, 3):
            organization.add_post(
                role='Regional Councillor',
                label='Waterloo (seat {})'.format(seat_number))

        yield organization
Ejemplo n.º 56
0
    def get_organizations(self):
        organization = Organization(self.name, classification=self.classification)

        organization.add_post(role='Mayor', label='Thunder Bay', division_id=self.division_id)
        for seat_number in range(1, 6):
            organization.add_post(role='Councillor at Large', label='Thunder Bay (seat {})'.format(seat_number), division_id=self.division_id)
        organization.add_post(role='Councillor', label='Current River')
        organization.add_post(role='Councillor', label='Red River')
        organization.add_post(role='Councillor', label='McKellar')
        organization.add_post(role='Councillor', label='McIntyre')
        organization.add_post(role='Councillor', label='Northwood')
        organization.add_post(role='Councillor', label='Westfort')
        organization.add_post(role='Councillor', label='Neebing')

        yield organization
Ejemplo n.º 57
0
        def get_organizations(self):
            legislature = Organization(metadata['legislature_name'],
                                       classification='legislature')
            executive = Organization(metadata['name'] + ' Executive Branch',
                                     classification='executive')
            yield executive

            self._legislature = legislature
            self._executive = executive

            if a_state not in ('ne', 'dc'):
                for otype in ('upper', 'lower'):
                    if otype in metadata['chambers']:
                        org = Organization(metadata['name'] + ' ' +
                                           chamber_name(a_state, otype),
                                           classification=otype,
                                           parent_id=legislature._id)
                        districts = osbs.api('districts/{}/{}?'.format(
                            a_state, otype))
                        for district in districts:
                            division = district['division_id']

                            org.add_post(district['name'],
                                         metadata['chambers'][otype]['title'],
                                         division_id=division)

                        # old posts
                        if a_state == 'vt' and otype == 'lower':
                            old_posts = [
                                'Washington-Chittenden-1', 'Addison-Rutland-1',
                                'Bennington-5', 'Bennington-Rutland-1',
                                'Caledonia-Washington-1', 'Chittenden-1-1',
                                'Chittenden-1-2', 'Chittenden-3-1',
                                'Chittenden-3-10', 'Chittenden-3-2',
                                'Chittenden-3-3', 'Chittenden-3-4',
                                'Chittenden-3-5', 'Chittenden-3-6',
                                'Chittenden-3-7', 'Chittenden-3-8',
                                'Chittenden-3-9', 'Chittenden-4',
                                'Chittenden-8', 'Chittenden-9', 'Franklin-3',
                                'Grand Isle-Chittenden-1-1',
                                'Lamoille-Washington-1', 'Lamoille-4',
                                'Orange-Addison-1', 'Orange-Caledonia-1',
                                'Orleans-Caledonia-1', 'Orleans-Franklin-1',
                                'Rutland-1-1', 'Rutland-1-2', 'Rutland-7',
                                'Rutland-8', 'Washington-3-1',
                                'Washington-3-2', 'Washington-3-3',
                                'Windham-2', 'Windham-3-1', 'Windham-3-2',
                                'Windham-3-3', 'Windham-Bennington-Windsor-1',
                                'Windham-Bennington-1', 'Windsor-Rutland-1',
                                'Windsor-Rutland-2', 'Windsor-1-1',
                                'Windsor-1-2', 'Windsor-3', 'Windsor-4',
                                'Windsor-6-1', 'Windsor-6-2'
                            ]
                            end_date = '2012-05-01'
                        elif a_state == 'vt' and otype == 'upper':
                            old_posts = ['Grand Isle']
                            end_date = '2012-05-01'
                        elif a_state == 'nv' and otype == 'upper':
                            old_posts = [
                                'Washoe County, No. 1',
                                'Washoe County, No. 2',
                                'Washoe County, No. 3',
                                'Washoe County, No. 4',
                                'Clark County, No. 1',
                                'Clark County, No. 2',
                                'Clark County, No. 3',
                                'Clark County, No. 4',
                                'Clark County, No. 5',
                                'Clark County, No. 6',
                                'Clark County, No. 7',
                                'Clark County, No. 8',
                                'Clark County, No. 9',
                                'Clark County, No. 10',
                                'Clark County, No. 11',
                                'Clark County, No. 12',
                                'Capital Senatorial District',
                                'Central Nevada Senatorial District',
                                'Rural Nevada Senatorial District',
                            ]
                            end_date = '2012-01-01'
                        elif a_state == 'ma':
                            if otype == 'lower':
                                old_posts = [
                                    'Essex',
                                    'Middlesex',
                                ]
                            elif otype == 'upper':
                                old_posts = [
                                    'Third Essex and Middlesex',
                                    'Suffolk and Norfolk',
                                    'Hampshire and Franklin',
                                    'Middlesex and Essex',
                                    'Berkshire, Hampshire and Franklin',
                                    'Thirty-First Middlesex',
                                    'Worcester, Hampden, Hampshire and Franklin',
                                    'Middlesex, Suffolk and Essex',
                                ]
                            end_date = '2012-01-01'
                        else:
                            old_posts = []

                        for p in old_posts:
                            org.add_post(p,
                                         metadata['chambers'][otype]['title'],
                                         end_date=end_date)

                        yield org
            else:
                for post in POSTS[a_state]:
                    self._legislature.add_post(
                        str(post), metadata['chambers']['upper']['title'])

            yield legislature
Ejemplo n.º 58
0
    def get_organizations(self):
        organization = Organization(self.name,
                                    classification=self.classification)

        organization.add_post(role='Regional Chair', label='Peel')
        organization.add_post(role='Mayor', label='Caledon')
        organization.add_post(role='Mayor', label='Brampton')
        organization.add_post(role='Mayor', label='Mississauga')
        for ward_number in range(1, 6):
            organization.add_post(role='Councillor',
                                  label='Caledon Ward {}'.format(ward_number))
        for ward_number in range(1, 11):
            organization.add_post(role='Councillor',
                                  label='Brampton Ward {}'.format(ward_number))
        for ward_number in range(1, 12):
            organization.add_post(
                role='Councillor',
                label='Mississauga Ward {}'.format(ward_number))

        yield organization
Ejemplo n.º 59
0
    def get_organizations(self):
        legislature_name = "Maryland General Assembly"
        lower_chamber_name = "House"
        lower_title = "Delegate"
        upper_chamber_name = "Senate"
        upper_seats = 47
        upper_title = "Senator"

        legislature = Organization(name=legislature_name,
                                   classification="legislature")
        upper = Organization(upper_chamber_name, classification='upper',
                             parent_id=legislature._id)
        lower = Organization(lower_chamber_name, classification='lower',
                             parent_id=legislature._id)

        for n in range(1, upper_seats + 1):
            upper.add_post(
                label=str(n), role=upper_title,
                division_id='{}/sldu:{}'.format(self.division_id, n))

        lower.add_post('1A',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:1a')
        lower.add_post('1B',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:1b')
        lower.add_post('1C',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:1c')
        lower.add_post('2A',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:2a')
        lower.add_post('2B',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:2b')
        lower.add_post('3A',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:3a')
        lower.add_post('3B',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:3b')
        lower.add_post('4',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:4')
        lower.add_post('5',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:5')
        lower.add_post('6',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:6')
        lower.add_post('7',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:7')
        lower.add_post('8',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:8')
        lower.add_post('9A',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:9a')
        lower.add_post('9B',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:9b')
        lower.add_post('10',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:10')
        lower.add_post('11',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:11')
        lower.add_post('12',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:12')
        lower.add_post('13',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:13')
        lower.add_post('14',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:14')
        lower.add_post('15',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:15')
        lower.add_post('16',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:16')
        lower.add_post('17',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:17')
        lower.add_post('18',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:18')
        lower.add_post('19',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:19')
        lower.add_post('20',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:20')
        lower.add_post('21',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:21')
        lower.add_post('22',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:22')
        lower.add_post('23A',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:23a')
        lower.add_post('23B',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:23b')
        lower.add_post('24',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:24')
        lower.add_post('25',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:25')
        lower.add_post('26',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:26')
        lower.add_post('27A',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:27a')
        lower.add_post('27B',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:27b')
        lower.add_post('27C',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:27c')
        lower.add_post('28',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:28')
        lower.add_post('29A',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:29a')
        lower.add_post('29B',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:29b')
        lower.add_post('29C',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:29c')
        lower.add_post('30A',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:30a')
        lower.add_post('30B',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:30b')
        lower.add_post('31A',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:31a')
        lower.add_post('31B',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:31b')
        lower.add_post('32',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:32')
        lower.add_post('33',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:33')
        lower.add_post('34A',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:34a')
        lower.add_post('34B',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:34b')
        lower.add_post('35A',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:35a')
        lower.add_post('35B',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:35b')
        lower.add_post('36',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:36')
        lower.add_post('37A',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:37a')
        lower.add_post('37B',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:37b')
        lower.add_post('38A',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:38a')
        lower.add_post('38B',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:38b')
        lower.add_post('38C',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:38c')
        lower.add_post('39',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:39')
        lower.add_post('40',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:40')
        lower.add_post('41',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:41')
        lower.add_post('42A',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:42a')
        lower.add_post('42B',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:42b')
        lower.add_post('43',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:43')
        lower.add_post('44A',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:44a')
        lower.add_post('44B',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:44b')
        lower.add_post('45',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:45')
        lower.add_post('46',  # maximum=3,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:46')
        lower.add_post('47A',  # maximum=2,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:47a')
        lower.add_post('47B',  # maximum=1,
                       role=lower_title, division_id='ocd-division/country:us/state:md/sldl:47b')

        yield Organization('Office of the Governor', classification='executive')
        yield legislature
        yield upper
        yield lower
Ejemplo n.º 60
0
    def get_organizations(self):
        dfl = Organization('Republican', classification='party')
        repub = Organization('Democratic-Farmer-Labor', classification='party')
        yield dfl
        yield repub

        state = Organization(name="State of Minnesota",
                             classification="executive")
        state.add_post('Governor',
                       'Governor',
                       division_id='ocd-division/country:us/state:mn')
        state.add_post('Secretary of State',
                       'Secretary of State',
                       division_id='ocd-division/country:us/state:mn')
        state.add_post('State Auditor',
                       'State Auditor',
                       division_id='ocd-division/country:us/state:mn')
        state.add_post('Attorney General',
                       'Attorney General',
                       division_id='ocd-division/country:us/state:mn')
        state.add_post('Lt Governor',
                       'Lt Governor',
                       division_id='ocd-division/country:us/state:mn')
        state.add_post('Governor',
                       'Governor',
                       division_id='ocd-division/country:us/state:mn')
        state.add_post('Governor',
                       'Governor',
                       division_id='ocd-division/country:us/state:mn')
        yield state

        legis = Organization('Minnesota Legislature',
                             classification='legislature')

        upper = Organization('Minnesota Senate',
                             classification='upper',
                             parent_id=legis._id)
        lower = Organization('Minnesota House of Representatives',
                             classification='lower',
                             parent_id=legis._id)

        for n in range(1, 68):
            upper.add_post(
                label=str(n),
                role='Senator',
                division_id='ocd-division/country:us/state:mn/sldu:{}'.format(
                    n))
            lower.add_post(
                label=str(n) + 'A',
                role='Representative',
                division_id='ocd-division/country:us/state:mn/sldl:{}a'.format(
                    n))
            lower.add_post(
                label=str(n) + 'B',
                role='Representative',
                division_id='ocd-division/country:us/state:mn/sldl:{}b'.format(
                    n))

        yield legis
        yield upper
        yield lower