def read_json(self): """ read metadata from json and set all the found properties. :return: the read metadata :rtype: dict """ with reading_ancillary_files(self): metadata = super(ImpactLayerMetadata, self).read_json() if 'provenance' in metadata: for provenance_step in metadata['provenance']: try: title = provenance_step['title'] if 'IF Provenance' in title: self.append_if_provenance_step( provenance_step['title'], provenance_step['description'], provenance_step['time'], provenance_step['data'] ) else: self.append_provenance_step( provenance_step['title'], provenance_step['description'], provenance_step['time'], ) except KeyError: # we want to get as much as we can without raising # errors pass if 'summary_data' in metadata: self.summary_data = metadata['summary_data'] return metadata
def read_json(self): """ calls the overridden method :return: the read metadata :rtype: dict """ with reading_ancillary_files(self): metadata = super(GenericLayerMetadata, self).read_json() return metadata
def read_xml(self): """ calls the overridden method :return: the read metadata :rtype: ElementTree.Element """ with reading_ancillary_files(self): root = super(GenericLayerMetadata, self).read_xml() return root
def read_xml(self): """ read metadata from xml and set all the found properties. :return: the root element of the xml :rtype: ElementTree.Element """ with reading_ancillary_files(self): root = super(ImpactLayerMetadata, self).read_xml() if root is not None: self._read_provenance_from_xml(root) return root
def read_json(self): """ read metadata from json and set all the found properties. when overriding remember to wrap your calls in reading_ancillary_files :return: the read metadata :rtype: dict """ with reading_ancillary_files(self): if self.json_uri is None: metadata = self._read_json_db() else: metadata = self._read_json_file() if 'properties' in metadata: for name, prop in metadata['properties'].iteritems(): try: self.set(prop['name'], prop['value'], prop['xml_path']) except KeyError: # we just skip if we don't have something, we want # to have as much as possible read from the JSON pass return metadata
def read_json(self): """ read metadata from json and set all the found properties. :return: the read metadata :rtype: dict """ with reading_ancillary_files(self): metadata = super(ImpactLayerMetadata, self).read_json() if "provenance" in metadata: for provenance_step in metadata["provenance"]: try: self.append_provenance_step( provenance_step["title"], provenance_step["description"], provenance_step["time"] ) except KeyError: # we want to get as much as we can without raising # errors pass if "summary_data" in metadata: self.summary_data = metadata["summary_data"] return metadata