def __init__(self, name, unit, min=float('<STR_LIT>'), max=float('<STR_LIT>'),<EOL>abbreviation=None, unit_descr=None, point_in_time=True,<EOL>cumulative=False):
assert isinstance(name, str), '<STR_LIT>'.format(type(name))<EOL>assert isinstance(unit, str), '<STR_LIT>'.format(type(unit))<EOL>assert isinstance(min, (float, int)), '<STR_LIT>''<STR_LIT>'.format(type(min))<EOL>assert isinstance(max, (float, int)), '<STR_LIT>''<STR_LIT>'.format(type(max))<EOL>if abbreviation is not None:<EOL><INDENT>assert isinstance(abbreviation, str), '<STR_LIT>''<STR_LIT>'.format(type(abbreviation))<EOL><DEDENT>if unit_descr is not None:<EOL><INDENT>assert isinstance(unit_descr, dict), '<STR_LIT>''<STR_LIT>'.format(type(unit_descr))<EOL><DEDENT>assert isinstance(point_in_time, bool), '<STR_LIT>''<STR_LIT>'.format(type(point_in_time))<EOL>assert isinstance(cumulative, bool), '<STR_LIT>''<STR_LIT>'.format(type(cumulative))<EOL>if point_in_time is True:<EOL><INDENT>assert cumulative is False, '<STR_LIT>''<STR_LIT>'<EOL><DEDENT>self._name = name<EOL>self._units = [unit]<EOL>self._min = min<EOL>self._max = max<EOL>self._abbreviation = abbreviation if abbreviation is not None else name<EOL>self._unit_descr = unit_descr<EOL>self._point_in_time = point_in_time<EOL>self._cumulative = cumulative<EOL>
Initalize Generic Type.

        Args:
            name: A name for the data type as a string.
            unit: A unit for the data type as a string.
            min: Optional lower limit for the data type, values below which should be
                physically or mathematically impossible. (Default: -inf)
            max: Optional upper limit for the data type, values above which should be
                physically or mathematically impossible. (Default: +inf)
            abbreviation: An optional abbreviation for the data type as text.
            unit_descr: An optional dictionary describing categories that the numerical
                values of the units relate to. For example:
                {-1: 'Cold', 0: 'Neutral', +1: 'Hot'}
                {0: 'False', 1: 'True'}
            point_in_time: Boolean to note whether the data type represents conditions
                at a single instant in time (True) as opposed to being an average or
                accumulation over time (False) when it is found in hourly lists of data.
                (Default: True)
            cumulative: Boolean to tell whether the data type can be cumulative when it
                is represented over time (True) or it can only be averaged over time
                to be meaningful (False). Note that cumulative cannot be True
                when point_in_time is also True. (Default: False)