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)