def get_git_version()

in src/gluonts/_version.py [0:0]


def get_git_version(fallback):
    def format_version(release, is_dev, labels):
        dev = ".dev0" if is_dev else ""
        labels = "+" + ".".join(labels) if labels else ""
        return "".join([release, dev, labels])

    dist_root_ = dist_root()
    repo = GitRepo(dist_root_)

    try:
        # TODO: Do we really need this check?
        if repo.root() != dist_root_:
            return None
    except (subprocess.CalledProcessError, FileNotFoundError):
        # can fail if git is not installed, or command fails
        return None

    try:
        git_tag = repo.describe()
        release, num_changes, git_hash = git_tag.rsplit("-", 2)

        release = release.lstrip("v")
        # if the current commit is not tagged directly, num_changes is ` > 0`
        # and attach the `.dev` label
        is_dev = num_changes != "0"
        labels = [git_hash] if is_dev else []

    except subprocess.CalledProcessError:
        # If there is no git-tag, we have to fallback.
        release = fallback
        is_dev = False
        labels = ["g" + repo.head_commit()]

    if not repo.clean():
        labels.append("dirty")

    return format_version(release, is_dev, labels)