def build_um_cf_map(fuseki, now, git_sha, base_dir): """ Encode the UM/CF phenomenon translation mappings within the specified file. Args: * fuseki: The :class:`metarelate.fuseki.FusekiServer` instance. * now: Time stamp to write into the file * git_sha: The git SHA1 of the metarelate commit * base_dir: The root directory of the Iris source. """ filename = os.path.join(base_dir, 'lib', 'iris', 'fileformats', 'um_cf_map.py') # Create the base directory. if not os.path.exists(os.path.dirname(filename)): os.makedirs(os.path.dirname(filename)) # Create the file to contain UM/CF translations. with open(filename, 'w') as fh: fh.write( HEADER.format(year=YEAR, doc_string=DOC_STRING_UM, datestamp=now, git_sha=git_sha, name='Iris')) fh.write('\n') # Encode the relevant UM to CF translations. maps = _retrieve_mappings(fuseki, FORMAT_URIS['umf'], FORMAT_URIS['cff']) # create the collections, then call lines on each one # for thread safety during lines and encode fccf = FieldcodeCFMappings(maps) stcf = StashCFNameMappings(maps) stcfhcon = StashCFHeightConstraintMappings(maps) fh.writelines(fccf.lines(fuseki)) fh.writelines(stcf.lines(fuseki)) fh.writelines(stcfhcon.lines(fuseki)) # Encode the relevant CF to UM translations. maps = _retrieve_mappings(fuseki, FORMAT_URIS['cff'], FORMAT_URIS['umf']) # create the collections, then call lines on each one # for thread safety during lines and encode cffc = CFFieldcodeMappings(maps) fh.writelines(cffc.lines(fuseki))
def build_um_cf_map(fuseki, now, git_sha, base_dir): """ Encode the UM/CF phenomenon translation mappings within the specified file. Args: * fuseki: The :class:`metarelate.fuseki.FusekiServer` instance. * now: Time stamp to write into the file * git_sha: The git SHA1 of the metarelate commit * base_dir: The root directory of the Iris source. """ filename = os.path.join(base_dir, 'lib', 'iris', 'fileformats', 'um_cf_map.py') # Create the base directory. if not os.path.exists(os.path.dirname(filename)): os.makedirs(os.path.dirname(filename)) # Create the file to contain UM/CF translations. with open(filename, 'w') as fh: fh.write(HEADER.format(year=YEAR, doc_string=DOC_STRING_UM, datestamp=now, git_sha=git_sha, name='Iris')) fh.write('\n') # Encode the relevant UM to CF translations. maps = _retrieve_mappings(fuseki, FORMAT_URIS['umf'], FORMAT_URIS['cff']) # create the collections, then call lines on each one # for thread safety during lines and encode fccf = FieldcodeCFMappings(maps) stcf = StashCFNameMappings(maps) stcfhcon = StashCFHeightConstraintMappings(maps) fh.writelines(fccf.lines(fuseki)) fh.writelines(stcf.lines(fuseki)) fh.writelines(stcfhcon.lines(fuseki)) # Encode the relevant CF to UM translations. maps = _retrieve_mappings(fuseki, FORMAT_URIS['cff'], FORMAT_URIS['umf']) # create the collections, then call lines on each one # for thread safety during lines and encode cffc = CFFieldcodeMappings(maps) fh.writelines(cffc.lines(fuseki))
def build_um_cf_map(fuseki, filename): """ Encode the UM/CF phenomenon translation mappings within the specified file. Args: * fuseki: The :class:`metarelate.fuseki.FusekiServer` instance. * filename: The name of the file to contain the translations. """ # Create the base directory. if not os.path.exists(os.path.dirname(filename)): os.makedirs(os.path.dirname(filename)) # Create the file to contain UM/CF translations. with open(filename, 'w') as fh: fh.write(HEADER.format(year=YEAR, doc_string=DOC_STRING_UM)) fh.write('\n') # Encode the relevant UM to CF translations. maps = _retrieve_mappings(fuseki, FORMAT_URIS['umf'], FORMAT_URIS['cff']) # create the collections, then call lines on each one # for thread safety during lines and encode fccf = FieldcodeCFMappings(maps) stcf = StashCFNameMappings(maps) stcfhcon = StashCFHeightConstraintMappings(maps) fh.writelines(fccf.lines(fuseki)) fh.writelines(stcf.lines(fuseki)) fh.writelines(stcfhcon.lines(fuseki)) # Encode the relevant CF to UM translations. maps = _retrieve_mappings(fuseki, FORMAT_URIS['cff'], FORMAT_URIS['umf']) # create the collections, then call lines on each one # for thread safety during lines and encode cffc = CFFieldcodeMappings(maps) fh.writelines(cffc.lines(fuseki))