def get_census_profile(geo_code, geo_level, profile_name=None): session = get_session() try: geo_summary_levels = geo_data.get_summary_geo_info(geo_code, geo_level) data = {} for section in PROFILE_SECTIONS: function_name = 'get_%s_profile' % section if function_name in globals(): func = globals()[function_name] data[section] = func(geo_code, geo_level, session) # get profiles for province and/or country for level, code in geo_summary_levels: # merge summary profile into current geo profile merge_dicts(data[section], func(code, level, session), level) finally: session.close() if geo_level != 'vdc': group_remainder(data['demographics']['language_distribution'], 10) group_remainder(data['demographics']['ethnic_distribution'], 10) return data
def get_elections_profile(geo_code, geo_level): data = OrderedDict() session = get_session() try: geo_summary_levels = geo_data.get_summary_geo_info(geo_code, geo_level) for election in ELECTIONS: section = election['name'].lower().replace(' ', '_') data[section] = get_election_data(geo_code, geo_level, election, session) # get profiles for province and/or country for level, code in geo_summary_levels: # merge summary profile into current geo profile merge_dicts(data[section], get_election_data(code, level, election, session), level) # tweaks to make the data nicer # show 8 largest parties on their own and group the rest as 'Other' group_remainder(data[section]['party_distribution'], 9) if geo_level == 'country': add_elections_media_coverage(data) return data finally: session.close()
def get_profile(geo_code, geo_level, profile_name=None): session = get_session() try: geo_summary_levels = geo_data.get_summary_geo_info(geo_code, geo_level) data = {} sections = list(PROFILE_SECTIONS) if geo_level not in ['country', 'province', 'district', 'municipality']: pass # Raise error as we don't have this data for section in sections: function_name = 'get_%s_profile' % section if function_name in globals(): func = globals()[function_name] data[section] = func(geo_code, geo_level, session) # get profiles for province and/or country for level, code in geo_summary_levels: # merge summary profile into current geo profile merge_dicts(data[section], func(code, level, session), level) return data finally: session.close()
def get_census_profile(geo_code, geo_level, profile_name=None): session = get_session() try: geo_summary_levels = geo_data.get_summary_geo_info(geo_code, geo_level) data = {} for section in PROFILE_SECTIONS: function_name = 'get_%s_profile' % section if function_name in globals(): func = globals()[function_name] data[section] = func(geo_code, geo_level, session) # get profiles for province and/or country for level, code in geo_summary_levels: # merge summary profile into current geo profile merge_dicts(data[section], func(code, level, session), level) # tweaks to make the data nicer # show X largest groups on their own and group the rest as 'Other' group_remainder(data['households']['roofing_material_distribution'], 5) group_remainder(data['households']['wall_material_distribution'], 5) return data finally: session.close()
def get_profile(geo_code, geo_level, profile_name=None): session = get_session() try: geo_summary_levels = geo_data.get_summary_geo_info(geo_code, geo_level) data = {} sections = list(PROFILE_SECTIONS) if geo_level not in ['country', 'province', 'municipality']: pass # Raise error as we don't have this data for section in sections: function_name = 'get_%s_profile' % section if function_name in globals(): func = globals()[function_name] data[section] = func(geo_code, geo_level, session) # get profiles for province and/or country for level, code in geo_summary_levels: # merge summary profile into current geo profile merge_dicts(data[section], func(code, level, session), level) group_remainder(data['households']['type_of_dwelling_distribution'], 5) group_remainder(data['service_delivery']['water_source_distribution'], 5) group_remainder(data['service_delivery']['toilet_facilities_distribution'], 5) return data finally: session.close()
def get_census_profile(geo_code, geo_level, profile_name=None): session = get_session() try: geo_summary_levels = geo_data.get_summary_geo_info(geo_code, geo_level) data = {} for section in PROFILE_SECTIONS: function_name = 'get_%s_profile' % section if function_name in globals(): func = globals()[function_name] data[section] = func(geo_code, geo_level, session) # get profiles for province and/or country for level, code in geo_summary_levels: # merge summary profile into current geo profile merge_dicts(data[section], func(code, level, session), level) # tweaks to make the data nicer # show X largest groups on their own and group the rest as 'Other' #group_remainder(data['households']['roofing_material_distribution'], 5) #group_remainder(data['households']['wall_material_distribution'], 5) return data finally: session.close()
def get_census_profile(geo_code, geo_level, profile_name=None): logger.info('Begin of transaction for {}: {}'.format(geo_level, geo_code)) session = get_session() try: geo_summary_levels = geo_data.get_summary_geo_info(geo_code, geo_level) data = {} for section in PROFILE_SECTIONS: function_name = 'get_%s_profile' % section if function_name in globals(): func = globals()[function_name] data[section] = func(geo_code, geo_level, session) # get profiles for province and/or country for level, code in geo_summary_levels: # merge summary profile into current geo profile merge_dicts(data[section], func(code, level, session), level) return data finally: logger.info('End of transaction for {}: {}'.format( geo_level, geo_code)) session.close()
def get_profile(geo_code, geo_level, profile_name=None): session = get_session() try: geo_summary_levels = geo_data.get_summary_geo_info(geo_code, geo_level) data = {} for section in PROFILE_SECTIONS: function_name = 'get_%s_profile' % section if function_name in globals(): func = globals()[function_name] data[section] = func(geo_code, geo_level, session) for level, code in geo_summary_levels: merge_dicts(data[section], func(code, level, session), level) return data finally: session.close()
def get_profile(geo_code, geo_level, profile_name=None): session = get_session() try: geo_summary_levels = geo_data.get_summary_geo_info(geo_code, geo_level) data = {} sections = list(PROFILE_SECTIONS) if geo_level in ['country', 'province']: sections.append('crime') for section in sections: function_name = 'get_%s_profile' % section if function_name in globals(): func = globals()[function_name] data[section] = func(geo_code, geo_level, session) # get profiles for province and/or country for level, code in geo_summary_levels: # merge summary profile into current geo profile merge_dicts(data[section], func(code, level, session), level) finally: session.close() # tweaks to make the data nicer # show 3 largest groups on their own and group the rest as 'Other' group_remainder(data['service_delivery']['water_source_distribution'], 5) group_remainder(data['service_delivery']['refuse_disposal_distribution'], 5) group_remainder(data['service_delivery']['toilet_facilities_distribution'], 5) group_remainder(data['demographics']['language_distribution'], 7) group_remainder(data['demographics']['province_of_birth_distribution'], 7) group_remainder(data['demographics']['region_of_birth_distribution'], 5) group_remainder(data['households']['type_of_dwelling_distribution'], 5) group_remainder(data['child_households']['type_of_dwelling_distribution'], 5) data['elections'] = get_elections_profile(geo_code, geo_level) return data