mirror of
https://github.com/k2-fsa/icefall.git
synced 2025-08-09 10:02:22 +00:00
124 lines
3.3 KiB
Python
Executable File
124 lines
3.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# Copyright 2023 Xiaomi Corp. (authors: Fangjun Kuang)
|
|
|
|
|
|
import argparse
|
|
import json
|
|
|
|
|
|
def get_args():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument(
|
|
"--min-torch-version",
|
|
help="Minimu torch version",
|
|
)
|
|
return parser.parse_args()
|
|
|
|
|
|
def version_gt(a, b):
|
|
a_major, a_minor = list(map(int, a.split(".")))[:2]
|
|
b_major, b_minor = list(map(int, b.split(".")))[:2]
|
|
if a_major > b_major:
|
|
return True
|
|
|
|
if a_major == b_major and a_minor > b_minor:
|
|
return True
|
|
|
|
return False
|
|
|
|
|
|
def version_ge(a, b):
|
|
a_major, a_minor = list(map(int, a.split(".")))[:2]
|
|
b_major, b_minor = list(map(int, b.split(".")))[:2]
|
|
if a_major > b_major:
|
|
return True
|
|
|
|
if a_major == b_major and a_minor >= b_minor:
|
|
return True
|
|
|
|
return False
|
|
|
|
|
|
def get_torchaudio_version(torch_version):
|
|
if torch_version == "1.13.0":
|
|
return "0.13.0"
|
|
elif torch_version == "1.13.1":
|
|
return "0.13.1"
|
|
elif torch_version == "2.0.0":
|
|
return "2.0.1"
|
|
elif torch_version == "2.0.1":
|
|
return "2.0.2"
|
|
else:
|
|
return torch_version
|
|
|
|
|
|
def get_matrix(min_torch_version):
|
|
k2_version = "1.24.4.dev20241029"
|
|
kaldifeat_version = "1.25.5.dev20241029"
|
|
version = "20241218"
|
|
|
|
# torchaudio 2.5.0 does not support python 3.13
|
|
python_version = ["3.8", "3.9", "3.10", "3.11", "3.12"]
|
|
torch_version = []
|
|
torch_version += ["1.13.0", "1.13.1"]
|
|
torch_version += ["2.0.0", "2.0.1"]
|
|
# torch_version += ["2.1.0", "2.1.1", "2.1.2"]
|
|
# torch_version += ["2.2.0", "2.2.1", "2.2.2"]
|
|
# Test only torch >= 2.3.0
|
|
torch_version += ["2.3.0", "2.3.1"]
|
|
torch_version += ["2.4.0"]
|
|
torch_version += ["2.4.1"]
|
|
torch_version += ["2.5.0"]
|
|
torch_version += ["2.5.1"]
|
|
|
|
matrix = []
|
|
for p in python_version:
|
|
for t in torch_version:
|
|
if min_torch_version and version_gt(min_torch_version, t):
|
|
continue
|
|
|
|
# torchaudio <= 1.13.x supports only python <= 3.10
|
|
|
|
if version_gt(p, "3.10") and not version_gt(t, "2.0"):
|
|
continue
|
|
|
|
# only torch>=2.2.0 supports python 3.12
|
|
if version_gt(p, "3.11") and not version_gt(t, "2.1"):
|
|
continue
|
|
|
|
if version_gt(p, "3.12") and not version_gt(t, "2.4"):
|
|
continue
|
|
|
|
if version_gt(t, "2.4") and version_gt("3.10", p):
|
|
# torch>=2.5 requires python 3.10
|
|
continue
|
|
|
|
if t == "2.5.1":
|
|
k2_version_2 = "1.24.4.dev20241122"
|
|
kaldifeat_version_2 = "1.25.5.dev20241126"
|
|
else:
|
|
k2_version_2 = k2_version
|
|
kaldifeat_version_2 = kaldifeat_version
|
|
|
|
matrix.append(
|
|
{
|
|
"k2-version": k2_version_2,
|
|
"kaldifeat-version": kaldifeat_version_2,
|
|
"version": version,
|
|
"python-version": p,
|
|
"torch-version": t,
|
|
"torchaudio-version": get_torchaudio_version(t),
|
|
}
|
|
)
|
|
return matrix
|
|
|
|
|
|
def main():
|
|
args = get_args()
|
|
matrix = get_matrix(min_torch_version=args.min_torch_version)
|
|
print(json.dumps({"include": matrix}))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|