k2 / update-cuda-html.py
csukuangfj's picture
small fixes
6ac7d7a
raw
history blame
No virus
2 kB
#!/usr/bin/env python3
import os
import re
from pathlib import Path
from update_readme import generate_url, get_all_files
def get_doc_dir():
k2_dir = os.getenv("K2_DIR")
if k2_dir is None:
raise ValueError("Please set the environment variable k2_dir")
return Path(k2_dir) / "docs"
class Wheel:
def __init__(self, full_name: str, url: str):
"""
Args:
full_name:
Example: k2-1.23.4.dev20230224+cuda10.1.torch1.6.0-cp36-cp36m-linux_x86_64.whl
"""
self.full_name = full_name
pattern = r"k2-(\d)\.(\d)+((\.)(\d))?\.dev(\d{8})\+cuda(\d+)\.(\d+)\.torch(\d\.\d+\.\d)-cp(\d+)"
m = re.search(pattern, full_name)
self.k2_major = int(m.group(1))
self.k2_minor = int(m.group(2))
self.k2_patch = int(m.group(5))
self.k2_date = int(m.group(6))
self.cuda_major_version = int(m.group(7))
self.cuda_minor_version = int(m.group(8))
self.torch_version = m.group(9)
self.py_version = int(m.group(10))
self.url = url
def sort_by_wheel(x: Wheel):
torch_major, torch_minor, torch_patch = x.torch_version.split(".")
torch_major = int(torch_major)
torch_minor = int(torch_minor)
torch_patch = int(torch_patch)
return (
x.k2_major,
x.k2_minor,
x.k2_patch,
x.k2_date,
torch_major,
torch_minor,
torch_patch,
x.cuda_major_version,
x.cuda_minor_version,
x.py_version,
)
def main():
wheels = get_all_files("cuda", suffix="*.whl")
urls = generate_url(wheels)
wheels = []
for url in urls:
full_name = url.rsplit("/", maxsplit=1)[1]
wheels.append(Wheel(full_name, url))
wheels.sort(reverse=True, key=sort_by_wheel)
d = get_doc_dir()
with open(d / "source/cuda.html", "w") as f:
for w in wheels:
f.write(f'<a href="{w.url}">{w.full_name}</a><br/>\n')
if __name__ == "__main__":
main()