Esempio n. 1
0
    def geocode_address_batch(self, table):
        """
        Geocode multiple addresses from a parsons table.

        The table must **only** include the following columns in the following order.

        .. list-table::
            :widths: 40
            :header-rows: 1

            * - Column Data
            * - Unique ID
            * - Street
            * - City
            * - State
            * - Zipcode

        `Args:`
            table: Parsons Table
                A Parsons table
        `Returns:`
            A Parsons table
        """

        logger.info(f'Geocoding {table.num_rows} records.')
        chunked_tables = table.chunk(BATCH_SIZE)
        batch_count = 1
        records_processed = 0

        geocoded_tbl = Table([[]])
        for tbl in chunked_tables:
            geocoded_tbl.concat(
                Table(petl.fromdicts(self.cg.addressbatch(tbl))))
            records_processed += tbl.num_rows
            logger.info(
                f'{records_processed} of {table.num_rows} records processed.')
            batch_count += 1

        return geocoded_tbl
Esempio n. 2
0
    def get_activity_types(self):
        """
        Get activity types

        `Args:`
            `filters: dict`
            Optional; pass additional parameters to filter the records returned.
            See `Copper documentation <https://developer.copper.com/?version=latest#6bd339f1-f0de-48b4-8c34-5a5e245e036f>`_ for choices

        `Returns:`
            List of dicts of Parsons Tables:
                * activitiy_types
        """ # noqa: E501,E261

        logger.info("Retrieving activity types.")

        response = self.paginate_request('/activity_types/', req_type='GET')
        orig_table = Table(response)
        at_user = orig_table.long_table([], 'user', prepend=False)
        at_sys = orig_table.long_table([], 'system', prepend=False)
        Table.concat(at_sys, at_user)

        return [{'name': 'activity_types', 'tbl': at_sys}]