code: def module(self):
          
          # late import to workaround circular dependencies
          module_checkout_abspath = self.abspath
          try:
              repo = git.Repo(module_checkout_abspath)
              if repo != self.repo:
                  return repo
              # END handle repo uninitialized
          except (InvalidGitRepositoryError, NoSuchPathError):
              raise InvalidGitRepositoryError("No valid repository at %s" % module_checkout_abspath)
          else:
              raise InvalidGitRepositoryError("Repository at %r was not yet checked out" % module_checkout_abspath)
docs: :return: Repo instance initialized from the repository at our submodule path
          :raise InvalidGitRepositoryError: if a repository was not available. This could
              also mean that it was not yet initialized