下载器
UnifontDownloader用于下载并解压官方发布的GNU Unifont.hex文件
快速开始
from unifont_utils import UnifontDownloader
# 下载最新的unifont_all变体并写入当前目录
path, version = UnifontDownloader().download_hex()
print(f"Downloaded {version} to {path}")
指定版本、变体和输出路径:
downloader = UnifontDownloader(timeout=60)
path, version = downloader.download_hex(
version="16.0.04",
variant="unifont_jp",
output="cache/unifont_jp-16.0.04.hex",
force=True, # 已存在文件时覆盖
)
- 版本号格式为
<major>.<minor>.<patch>(如17.0.03),<major>最低为7。 - 未指定
output时,默认写入<variant>-<version>.hex。
版本变体与版本号校验
normalize_variant会校验并规范化传入的版本变体,可选项有:
unifontunifont_allunifont_jpunifont_jp_sampleunifont_sampleunifont_upperunifont_upper_sample
normalize_version支持带前缀的写法(如v17.0.03)。
进度回调
下载过程中可以通过progress_callback获取实时进度:
def show_progress(downloaded: int, total: int | None) -> None:
if total:
percent = downloaded * 100 / total
print(f"\r{percent:5.1f}% ({downloaded}/{total} bytes)", end="")
else:
print(f"\r{downloaded} bytes", end="")
UnifontDownloader().download_hex(progress_callback=show_progress)
print() # 换行
当服务器未返回Content-Length时,total为None,此时只能显示已下载的字节数。
CLI对应命令
命令行等价实现为unipie download,参见命令行工具说明:
unipie download -v 16.0.04 -t unifont_jp -o unifont_jp-16.0.04.hex --force