class EscdfFortranModule(object): def __init__(self, group, yaml_doc, template=None): # Init self.group = group self.specs = EscdfSpecs(self.group, yaml_doc) if template: self.template = EscdfTemplate(template) else: self.template = EscdfTemplate(f03_mod_default) # Build Fortran interfaces f03_interfaces = [] for elem in self.specs.get_elements(): spec = self.specs.get_spec(elem) for action in ["read", "write"]: spec["action"] = action f03_interfaces.append("%s" % EscdfFortranInterface(spec)) # Substitute patterns self.patterns = {} self.patterns["group"] = self.group self.patterns["interfaces"] = "\n".join(f03_interfaces) self.f03_module = self.template.substitute(self.patterns) def __str__(self): return self.f03_module
def test_elts_matches_yaml(self): specs = EscdfSpecs("basic", escdf_basic_specs) chk_elts = specs.get_elements() assert ( (len(chk_elts) == len(specs.elts)) and \ (len(chk_elts) == len(specs.yaml_data.keys())) )