Example #1
0
 def read(self, name=None):
     """ Reads the units file and creates a database with all units and conversion factors. """
     SourceManagedClass.read(self, name)
     self.si_conversions = {}
     for dimension in self.database.sections():
         units = self.database.options(dimension)
         for unit in units:
             if "META_GenerateConversions" in unit:
                 expression = self.database.get(dimension, unit)
                 si_base_unit = expression.split()[0]
                 centi = "centi" in expression
                 deci = "deci" in expression
                 non_base_si_factor = self.safe_eval(expression.split()[1]) if "altbase" in expression else 1
                 dimension_conversions = generateConversionDictForSISuffix(
                     si_base_unit,
                     centi=centi,
                     deci=deci,
                     non_base_si_factor=non_base_si_factor
                 )
                 self.siConversions.update(dimension_conversions)
                 self.dimensions[dimension].update(dimension_conversions)
                 continue
             string_expression = self.database.get(dimension, unit)
             self.siConversions[unit] = self.safe_eval(string_expression)
             self.dimensions[dimension][unit] = self.siConversions[unit]
Example #2
0
    def __init__(self, sources=None):
        SourceManagedClass.__init__(self)
        self.known_materials = {}

        for name, path in sources.items():
            self.sources[name] = os.path.abspath(
                path.replace('SOLCORE_ROOT', solcore.SOLCORE_ROOT))
Example #3
0
    def __init__(self, sources=None):
        SourceManagedClass.__init__(self)
        self.separate_value_and_unit_RE = re.compile(u"([-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)(?:[ \t]*(.*))?")
        self.split_units_RE = re.compile(u"(?:([^ \+\-\^\.0-9]+)[\^]?([\-\+]?[^ \-\+]*)?)")
        self.siConversions = {}
        self.dimensions = defaultdict(dict)

        for name, path in sources.items():
            self.add_source(name, os.path.abspath(path.replace('SOLCORE_ROOT', solcore.SOLCORE_ROOT)))

        self.read()
    def __init__(self, sources=None):
        self.__assemble_builtins(
        )  # create a dictionary that's safe for the eval function to use, so
        # that config files don't have access to all of python
        self.element_RE = re.compile(
            "([A-Z][a-z]*)"
        )  # Matches capital letter + n * small letter, e.g.: In, Ga, As
        SourceManagedClass.__init__(self)

        for name, path in sources.items():
            self.add_source(
                name,
                os.path.abspath(
                    path.replace('SOLCORE_ROOT', solcore.SOLCORE_ROOT)))

        self.read()
 def initialise_cache(self):
     # self.get_parameter.cache_clear()
     SourceManagedClass.initialise_cache(self)