def _parse_mirteFile(path, logger=None):
l = logging.getLogger('<STR_LIT>') if logger is None else logger<EOL>cache_path = os.path.join(os.path.dirname(path),<EOL>CACHE_FILENAME_TEMPLATE % os.path.basename(path))<EOL>if (os.path.exists(cache_path) and<EOL>os.path.getmtime(cache_path) >= os.path.getmtime(path)):<EOL><INDENT>with open(cache_path) as f:<EOL><INDENT>return msgpack.unpack(f)<EOL><DEDENT><DEDENT>with open(path) as f:<EOL><INDENT>ret = yaml.load(f)<EOL><DEDENT>try:<EOL><INDENT>with open(cache_path, '<STR_LIT:w>') as f:<EOL><INDENT>msgpack.pack(ret, f)<EOL><DEDENT><DEDENT>except IOError as e:<EOL><INDENT>if e.errno == errno.EACCES:<EOL><INDENT>l.warn('<STR_LIT>', path)<EOL><DEDENT>else:<EOL><INDENT>raise<EOL><DEDENT><DEDENT>return ret<EOL>
Open and parses the mirteFile at <path>.