fspacker.utils package
Submodules
fspacker.utils.checksum module
fspacker.utils.package module
- fspacker.utils.package.is_version_satisfied(cached_file: Path, req: Requirement) bool[源代码]
检查缓存文件版本是否满足需求.
- 参数:
cached_file -- 缓存文件.
req -- 依赖.
- 返回:
是否满足版本约束.
- 返回类型:
bool
- fspacker.utils.package.get_cached_package(req: Requirement) Path | None[源代码]
获取满足版本约束的缓存文件.
- 参数:
req -- 依赖.
- 返回:
满足版本约束的缓存文件, 无则返回None.
- 返回类型:
pathlib.Path
- fspacker.utils.package.download_to_libs_dir(req: Requirement) Path[源代码]
下载满足版本的包到缓存.
- 参数:
req -- 依赖.
- 返回:
下载的文件.
- 返回类型:
Path
- fspacker.utils.package.unpack_wheel(wheel_file: Path, dest_dir: Path, excludes: set[str] | None = None, patterns: set[str] | None = None) None[源代码]
fspacker.utils.requirement module
本模块包含库所需常用函数.
- class fspacker.utils.requirement.RequirementParser[源代码]
基类:
object解析需求字符串为Requirement对象.
- classmethod normalize(req_str: str) str[源代码]
规范化需求字符串.
处理特殊情况: 1. 括号包裹的版: shiboken2 (==5.15.2.1) -> shiboken2==5.15.2.1 2. 不规范的版本分隔符: package@1.0 -> package==1.0 3. 移除多余空格和注释.
- 参数:
req_str -- 需求字符串.
- 返回:
规范化后的需求字符串, 如果解析失败, 返回 None.
- classmethod parse(req_str: str) Requirement | None[源代码]
安全解析需求字符串为Requirement对象.
- 参数:
req_str -- 需求字符串.
- 返回:
Requirement对象, 如果解析失败, 返回 None.
- 抛出:
ProjectPackError -- 解析失败
fspacker.utils.url module
- fspacker.utils.url.check_url_access_time(url: str) float[源代码]
测试 url 访问时间.
- 参数:
url -- 待访问的 url.
- 返回:
秒.
- 返回类型:
访问时间, 单位
- fspacker.utils.url.get_fastest_url(urls: dict[str, str]) str[源代码]
从给定的URL字典中找出访问速度最快的链接。.
- 参数:
urls -- 包含多个URL的字典, 格式为 {名称: URL}
- 返回:
访问速度最快的URL字符串
备注
如果所有URL都无法访问, 将返回空字符串
- fspacker.utils.url.validate_url_scheme(url: str, allowed_schemes: set[str]) None[源代码]
验证URL scheme是否被允许.
- 参数:
url -- 待验证的URL
allowed_schemes -- 允许的scheme集合
- 抛出:
ParseUrlError -- 如果scheme不被允许
- fspacker.utils.url.safe_read_url_data(url: str, timeout: int = 10) bytes | None[源代码]
读取 url 数据.
- 参数:
url -- 待读取的 url.
timeout -- 超时时间, 单位: 秒.
- 返回:
读取到的数据, 如果读取失败, 返回 None.
- 抛出:
ParseUrlError -- 如果 scheme 不被允许