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
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}]