def license_id(self, dataset): '''Add license ID to every resource''' resources = dataset['resources'] license_id_data = dataset['license_id'] if not license_id_data: util.log_error(dataset, "No license_id") return # key == OGD value and value == DCAT URI if license_id_data in self.license_mapping.keys(): # OGD value is present. Map it accordingly. license_id_dcat = self.license_mapping[license_id_data] dataset['license_id'] = license_id_dcat elif license_id_data not in self.license_mapping.values(): # Invalid value, neither OGD nor DCAT util.log_error( dataset, u"license_id '" + unicode(license_id_data) + u"' not part of the mapping") return # At this point, a valid DCAT license is present in dataset['license_id']. if resources is not None: for resource in resources: if '__extras' not in resource: resource['__extras'] = dict() resource['__extras'][u'license'] = dataset['license_id']
def license_id(self, dataset): '''Add license ID to every resource''' resources = dataset['resources'] license_id_data = dataset['license_id'] if not license_id_data: util.log_error(dataset, "No license_id") return if license_id_data not in self.license_mapping.keys(): if license_id_data not in self.license_mapping.values(): util.log_error( dataset, u"license_id '" + unicode(license_id_data) + u"' not part of the mapping") return license_id_dcat = self.license_mapping[license_id_data] dataset[u'license_id'] = license_id_dcat if resources is not None: for resource in resources: if '__extras' not in resource: resource['__extras'] = dict() resource['__extras'][u'license'] = license_id_dcat
def geographical_granularity(self, dataset): '''geographical_granularity -> politicalGeocodingLevelUri''' valid_values = { 'bund': 'federal', 'land': 'state', 'kommune': 'municipality', 'stadt': 'municipality', # DCAT values (without URI part) stay the same 'federal': 'federal', 'state': 'state', 'municipality': 'municipality', # Additional non-OGD value 'kreis': 'administrativeDistrict' } geo_level = ds_utils.get_extras_field(dataset, 'geographical_granularity') target_field = ds_utils.get_extras_field( dataset, u'politicalGeocodingLevelURI') # only add if the field hasn't been migrated before if target_field is None: if geo_level is not None: geo_level_value = geo_level['value'].lower() if geo_level_value in valid_values: geo_level_value = ( 'http://dcat-ap.de/def/politicalGeocoding/Level/' + valid_values.get(geo_level_value)) else: util.log_error( dataset, 'INVALID: politicalGeocodingLevelURI: ' + geo_level_value) geo_level['value'] = geo_level_value util.rename_extras_field_migration( dataset, u'geographical_granularity', u'politicalGeocodingLevelURI', False)
def groups(self, dataset): if 'groups' in dataset: for group_name in [n['name'] for n in dataset['groups'] ]: # iterate list of groupnames if group_name in self.category_mapping.keys(): themes = self.category_mapping[group_name] # remove old group_name util.delete_group(dataset, group_name) # transform single strings to lists with one argument if isinstance(themes, basestring): themes = [themes] if themes is not None: for theme in themes: dataset['groups'].append({ 'id': theme, 'name': theme }) elif group_name not in self.new_groups: util.log_error( dataset, u'INVALID: non-OGD-Category found: ' + unicode(group_name))