version_info
Documentation for eth_defi.version_info Python module.
Read Docker image git version stamp.
During the Docker image build, the git revision of the source tree is
written into GIT_VERSION_TAG.txt, GIT_COMMIT_MESSAGE.txt and
GIT_VERSION_HASH.txt files at the install root — see
Dockerfile.vault-scanner. This module reads those files back at
runtime so long-running services can report which code revision they
are running, e.g. the vault scanner embedding its version in the
top-vaults JSON export.
Modelled on the trade-executor VersionInfo pattern, based on
https://stackoverflow.com/a/74694676/315168
Example:
from eth_defi.version_info import VersionInfo
version = VersionInfo.read_docker_version()
print(version.commit_hash) # None outside Docker
Classes
Reflect the git version information embedded in the Docker image during build. |
- class VersionInfo
Bases:
objectReflect the git version information embedded in the Docker image during build.
All fields are
Nonewhen running outside a stamped Docker image, e.g. from a source checkout. Individual fields can also beNoneinside a stamped image when the corresponding build ARG was not passed — in particulartagisNonefor images built from an untagged commit. SeeDockerfile.vault-scannerfor how the stamp files are written.- __init__(tag=None, commit_message=None, commit_hash=None)
- as_dict()
Return a JSON-serialisable dict for embedding in data exports.
- classmethod read_docker_version(root=PosixPath('/home/runner/work/web3-ethereum-defi/web3-ethereum-defi'))
Read version information burnt within the Docker file system during image build.
- Parameters
root (pathlib.Path) – Directory holding the stamp files. Defaults to the
eth_defiinstall root.- Returns
Populated version info, or
Nonefor every field when the stamp files are absent (e.g. running from a source checkout).- Return type
- static read_version_file(name, root=PosixPath('/home/runner/work/web3-ethereum-defi/web3-ethereum-defi'))
Read one version stamp file written by the Docker build.
- Parameters
name (str) – Stamp file name, e.g.
GIT_VERSION_HASH.txt.root (pathlib.Path) – Directory holding the stamp files.
- Returns
Stripped file content, or
Noneif the file does not exist, is empty, or contains theUNSPECIFIED_SENTINELplaceholder written when the build ARG was not passed.- Return type