|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import socket |
|
|
import subprocess |
|
|
import sys |
|
|
from pathlib import Path |
|
|
from typing import Any, Dict |
|
|
|
|
|
import k2 |
|
|
import k2.version |
|
|
import lhotse |
|
|
import torch |
|
|
|
|
|
|
|
|
def get_git_sha1(): |
|
|
try: |
|
|
git_commit = ( |
|
|
subprocess.run( |
|
|
["git", "rev-parse", "--short", "HEAD"], |
|
|
check=True, |
|
|
stdout=subprocess.PIPE, |
|
|
) |
|
|
.stdout.decode() |
|
|
.rstrip("\n") |
|
|
.strip() |
|
|
) |
|
|
dirty_commit = ( |
|
|
len( |
|
|
subprocess.run( |
|
|
["git", "diff", "--shortstat"], |
|
|
check=True, |
|
|
stdout=subprocess.PIPE, |
|
|
) |
|
|
.stdout.decode() |
|
|
.rstrip("\n") |
|
|
.strip() |
|
|
) |
|
|
> 0 |
|
|
) |
|
|
git_commit = git_commit + "-dirty" if dirty_commit else git_commit + "-clean" |
|
|
except: |
|
|
return None |
|
|
|
|
|
return git_commit |
|
|
|
|
|
|
|
|
def get_git_date(): |
|
|
try: |
|
|
git_date = ( |
|
|
subprocess.run( |
|
|
["git", "log", "-1", "--format=%ad", "--date=local"], |
|
|
check=True, |
|
|
stdout=subprocess.PIPE, |
|
|
) |
|
|
.stdout.decode() |
|
|
.rstrip("\n") |
|
|
.strip() |
|
|
) |
|
|
except: |
|
|
return None |
|
|
|
|
|
return git_date |
|
|
|
|
|
|
|
|
def get_git_branch_name(): |
|
|
try: |
|
|
git_date = ( |
|
|
subprocess.run( |
|
|
["git", "rev-parse", "--abbrev-ref", "HEAD"], |
|
|
check=True, |
|
|
stdout=subprocess.PIPE, |
|
|
) |
|
|
.stdout.decode() |
|
|
.rstrip("\n") |
|
|
.strip() |
|
|
) |
|
|
except: |
|
|
return None |
|
|
|
|
|
return git_date |
|
|
|
|
|
|
|
|
def get_env_info() -> Dict[str, Any]: |
|
|
"""Get the environment information.""" |
|
|
return { |
|
|
"k2-version": k2.version.__version__, |
|
|
"k2-build-type": k2.version.__build_type__, |
|
|
"k2-with-cuda": k2.with_cuda, |
|
|
"k2-git-sha1": k2.version.__git_sha1__, |
|
|
"k2-git-date": k2.version.__git_date__, |
|
|
"lhotse-version": lhotse.__version__, |
|
|
"torch-version": str(torch.__version__), |
|
|
"torch-cuda-available": torch.cuda.is_available(), |
|
|
"torch-cuda-version": torch.version.cuda, |
|
|
"python-version": ".".join(sys.version.split(".")[:2]), |
|
|
"icefall-git-branch": get_git_branch_name(), |
|
|
"icefall-git-sha1": get_git_sha1(), |
|
|
"icefall-git-date": get_git_date(), |
|
|
"icefall-path": str(Path(__file__).resolve().parent.parent), |
|
|
"k2-path": str(Path(k2.__file__).resolve()), |
|
|
"lhotse-path": str(Path(lhotse.__file__).resolve()), |
|
|
"hostname": socket.gethostname(), |
|
|
"IP address": socket.gethostbyname(socket.gethostname()), |
|
|
} |
|
|
|