Source code for mt_metadata.transfer_functions.io.emtfxml.metadata.data_types

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 23 21:30:36 2020

:copyright: 
    Jared Peacock (jpeacock@usgs.gov)

:license: MIT

"""
# =============================================================================
# Imports
# =============================================================================
from xml.etree import cElementTree as et

from mt_metadata.base.helpers import write_lines, element_to_string
from mt_metadata.base import get_schema, Base
from .standards import SCHEMA_FN_PATHS
from . import DataType

# =============================================================================
attr_dict = get_schema("data_types", SCHEMA_FN_PATHS)
# =============================================================================


[docs]class DataTypes(Base): __doc__ = write_lines(attr_dict) def __init__(self, **kwargs): self._data_types_list = [] super().__init__(attr_dict=attr_dict, **kwargs) @property def data_types_list(self): return self._data_types_list @data_types_list.setter def data_types_list(self, value): if not isinstance(value, list): value = [value] self._data_types_list = [] for item in value: dt = DataType() dt.from_dict(item) self._data_types_list.append(dt)
[docs] def read_dict(self, input_dict): """ Read in statistical estimate descriptions :param input_dict: DESCRIPTION :type input_dict: TYPE :return: DESCRIPTION :rtype: TYPE """ try: self.data_types_list = input_dict["data_types"]["data_type"] except KeyError: self.logger.warning("Could not read Data Types")
[docs] def to_xml(self, string=False, required=True): """ :param string: DESCRIPTION, defaults to False :type string: TYPE, optional :param required: DESCRIPTION, defaults to True :type required: TYPE, optional :return: DESCRIPTION :rtype: TYPE """ root = et.Element(self.__class__.__name__) for dtype in self.data_types_list: root.append(dtype.to_xml(required=required)) if string: return element_to_string(root) return root