code: def _load_module(self, name: YangIdentifier,
                       rev: RevisionDate) -> Statement:
          
          for d in self.module_search_path:
              run = 0
              while run < 2:
                  fn = f"{d}/{name}"
                  if rev and run == 0:
                      fn += "@" + rev
                  fn += ".yang"
                  try:
                      with open(fn, encoding='utf-8') as infile:
                          res = ModuleParser(infile.read(), name, rev).parse()
                  except (FileNotFoundError, PermissionError, ModuleContentMismatch):
                      run += 1
                      continue
                  return res
          raise ModuleNotFound(name, rev)
docs: Read and parse a YANG module or submodule.