mirror of
https://github.com/csukuangfj/kaldifeat.git
synced 2025-08-09 10:02:20 +00:00
107 lines
2.6 KiB
Python
Executable File
107 lines
2.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import datetime
|
|
import os
|
|
import platform
|
|
import re
|
|
import shutil
|
|
|
|
import torch
|
|
|
|
|
|
def is_macos():
|
|
return platform.system() == "Darwin"
|
|
|
|
|
|
def is_windows():
|
|
return platform.system() == "Windows"
|
|
|
|
|
|
def with_cuda():
|
|
if shutil.which("nvcc") is None:
|
|
return False
|
|
|
|
if is_macos():
|
|
return False
|
|
|
|
return True
|
|
|
|
|
|
def get_pytorch_version():
|
|
# if it is 1.7.1+cuda101, then strip +cuda101
|
|
return torch.__version__.split("+")[0]
|
|
|
|
|
|
def get_cuda_version():
|
|
from torch.utils import collect_env
|
|
|
|
running_cuda_version = collect_env.get_running_cuda_version(collect_env.run)
|
|
cuda_version = torch.version.cuda
|
|
if running_cuda_version is not None and cuda_version is not None:
|
|
assert cuda_version in running_cuda_version, (
|
|
f"PyTorch is built with CUDA version: {cuda_version}.\n"
|
|
f"The current running CUDA version is: {running_cuda_version}"
|
|
)
|
|
return cuda_version
|
|
|
|
|
|
def is_for_pypi():
|
|
ans = os.environ.get("KALDIFEAT_IS_FOR_PYPI", None)
|
|
return ans is not None
|
|
|
|
|
|
def is_stable():
|
|
ans = os.environ.get("KALDIFEAT_IS_STABLE", None)
|
|
return ans is not None
|
|
|
|
|
|
def is_for_conda():
|
|
ans = os.environ.get("KALDIFEAT_IS_FOR_CONDA", None)
|
|
return ans is not None
|
|
|
|
|
|
def get_package_version():
|
|
# Set a default CUDA version here so that `pip install kaldifeat`
|
|
# uses the default CUDA version.
|
|
#
|
|
default_cuda_version = "10.1" # CUDA 10.1
|
|
|
|
if with_cuda():
|
|
cuda_version = get_cuda_version()
|
|
if is_for_pypi() and default_cuda_version == cuda_version:
|
|
cuda_version = ""
|
|
pytorch_version = ""
|
|
local_version = ""
|
|
else:
|
|
cuda_version = f"+cuda{cuda_version}"
|
|
pytorch_version = get_pytorch_version()
|
|
local_version = f"{cuda_version}.torch{pytorch_version}"
|
|
else:
|
|
pytorch_version = get_pytorch_version()
|
|
local_version = f"+cpu.torch{pytorch_version}"
|
|
|
|
if is_for_conda():
|
|
local_version = ""
|
|
|
|
if is_for_pypi() and is_macos():
|
|
local_version = ""
|
|
|
|
with open("CMakeLists.txt") as f:
|
|
content = f.read()
|
|
|
|
latest_version = re.search(r"set\(kaldifeat_VERSION (.*)\)", content).group(
|
|
1
|
|
)
|
|
latest_version = latest_version.strip('"')
|
|
|
|
if not is_stable():
|
|
dt = datetime.datetime.utcnow()
|
|
package_version = f"{latest_version}.dev{dt.year}{dt.month:02d}{dt.day:02d}{local_version}"
|
|
else:
|
|
package_version = f"{latest_version}"
|
|
return package_version
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print(get_package_version())
|