code: def _check_submodule_no_git(self):
          
  
          gitmodules_path = os.path.abspath('.gitmodules')
  
          if not os.path.isfile(gitmodules_path):
              return False
  
          # This is a minimal reader for gitconfig-style files.  It handles a few of
          # the quirks that make gitconfig files incompatible with ConfigParser-style
          # files, but does not support the full gitconfig syntax (just enough
          # needed to read a .gitmodules file).
          gitmodules_fileobj = io.StringIO()
  
          # Must use io.open for cross-Python-compatible behavior wrt unicode
          with io.open(gitmodules_path) as f:
              for line in f:
                  # gitconfig files are more flexible with leading whitespace; just
                  # go ahead and remove it
                  line = line.lstrip()
  
                  # comments can start with either # or ;
                  if line and line[0] in (':', ';'):
                      continue
  
                  gitmodules_fileobj.write(line)
  
          gitmodules_fileobj.seek(0)
  
          cfg = RawConfigParser()
  
          try:
              cfg.readfp(gitmodules_fileobj)
          except Exception as exc:
              log.warn('Malformatted .gitmodules file: {0}\n'
                       '{1} cannot be assumed to be a git submodule.'.format(
                           exc, self.path))
              return False
  
          for section in cfg.sections():
              if not cfg.has_option(section, 'path'):
                  continue
  
              submodule_path = cfg.get(section, 'path').rstrip(os.sep)
  
              if submodule_path == self.path.rstrip(os.sep):
                  return True
  
          return False
docs: Like ``_check_submodule_using_git``, but simply parses the .gitmodules file
          to determine if the supplied path is a git submodule, and does not exec any
          subprocesses.
  
          This can only determine if a path is a submodule--it does not perform
          updates, etc.  This function may need to be updated if the format of the
          .gitmodules file is changed between git versions.