docs: def get_version(cls, path, memo={}):
          """
          Return a string describing the version of the repository at ``path`` if
          possible, otherwise throws ``subprocess.CalledProcessError``.
  
          (Note: memoizes the result in the ``memo`` parameter)
          """
          if path not in memo:
              memo[path] = subprocess.check_output(
                  "git describe --tags --dirty 2> /dev/null",
                  shell=True, cwd=path).strip().decode("utf-8")
  
              v = re.search("-[0-9]+-", memo[path])
              if v is not None:
                  # Replace -n- with -branchname-n-
                  branch = r"-{0}-\1-".format(cls.get_branch(path))
                  (memo[path], _) = re.subn("-([0-9]+)-", branch, memo[path], 1)
  
          return memo[path]