Parse value lists with units

This commit is contained in:
Lukas Klass 2020-10-24 17:30:18 +02:00
parent d505c7212a
commit c7c659161f

View File

@ -5,6 +5,7 @@ import astropy.units as u
from ..lib.logger import logger
import difflib
import os
import numpy as np
class Entry(object):
@ -71,6 +72,7 @@ class Entry(object):
mes : Union[None, str]
The error message of the check. This will be None if the check was successful.
"""
u.imperial.enable()
if not hasattr(self, name):
return "Parameter '" + name + "' not found."
attr = getattr(self, name)
@ -80,7 +82,12 @@ class Entry(object):
self.__setattr__(name, float(attr) * unit)
except ValueError:
try:
self.__setattr__(name, u.Quantity(attr))
val = list(map(u.Quantity, attr.split(',')))
if len(val) == 1:
val = val[0]
else:
val = np.array(val[:(len(val)-1)] + [val[-1].value]) << val[-1].unit
self.__setattr__(name, val)
mes = self.check_quantity(name, unit, use_default)
if mes is not None:
return mes