Changeset View
Changeset View
Standalone View
Standalone View
swh/indexer/metadata_dictionary.py
Show First 20 Lines • Show All 366 Lines • ▼ Show 20 Lines | class MavenMapping(DictMapping, SingleFileMapping): | ||||
mapping = CROSSWALK_TABLE['Java (Maven)'] | mapping = CROSSWALK_TABLE['Java (Maven)'] | ||||
def translate(self, content): | def translate(self, content): | ||||
try: | try: | ||||
d = xmltodict.parse(content).get('project') or {} | d = xmltodict.parse(content).get('project') or {} | ||||
except xml.parsers.expat.ExpatError: | except xml.parsers.expat.ExpatError: | ||||
self.log.warning('Error parsing XML from %s', self.log_suffix) | self.log.warning('Error parsing XML from %s', self.log_suffix) | ||||
return None | return None | ||||
except UnicodeDecodeError: | |||||
self.log.warning('Error unidecoding XML from %s', self.log_suffix) | |||||
return None | |||||
except (LookupError, ValueError): | |||||
# unknown encoding or multi-byte encoding | |||||
self.log.warning('Error detecting XML encoding from %s', | |||||
self.log_suffix) | |||||
return None | |||||
metadata = self.translate_dict(d, normalize=False) | metadata = self.translate_dict(d, normalize=False) | ||||
metadata[SCHEMA_URI+'codeRepository'] = self.parse_repositories(d) | metadata[SCHEMA_URI+'codeRepository'] = self.parse_repositories(d) | ||||
metadata[SCHEMA_URI+'license'] = self.parse_licenses(d) | metadata[SCHEMA_URI+'license'] = self.parse_licenses(d) | ||||
return self.normalize_translation(metadata) | return self.normalize_translation(metadata) | ||||
_default_repository = {'url': 'https://repo.maven.apache.org/maven2/'} | _default_repository = {'url': 'https://repo.maven.apache.org/maven2/'} | ||||
def parse_repositories(self, d): | def parse_repositories(self, d): | ||||
▲ Show 20 Lines • Show All 260 Lines • Show Last 20 Lines |