与Debian仓库内容文件一起工作的实用程序
项目描述
pydebcontents:搜索Debian内容文件
Debian(及其衍生版)发布的软件包仓库有许多不同的索引文件,描述了发布、软件包、源和软件包的文件内容。Debian维基百科有关于仓库格式的完整描述。
通过python-debian模块提供对Release、Packages和Sources文件中数据的访问,该模块可在Debian存档和PyPI中获取。
此模块提供对内容文件的访问。
需求
此模块不需要stdlib之外的Python模块。
然而,搜索内容文件依赖于外部zgrep
程序在您的PATH上;zgrep
用于透明地搜索gzip压缩的Contents.gz
文件。
内容文件需要按在Debian镜像上找到的顺序排列: dists/{release}/{component}/Contents-{arch}.gz
。
使用apt-cacher-ng
软件包的用户可能希望使用其本地文件缓存来访问期望格式的内容文件。
安装
从PyPI
pip install pydebcontents
从git
git clone https://salsa.debian.org/debian-irc-team/pydebcontents
cd pydebcontents
pip install .
用法
该模块附带一个简单的命令行界面,感觉有点像标准的apt-file
程序。
例如,要查找所有包含在软件包中的README文件
py-apt-file --base /var/cache/apt-cacher-ng/debrep/ search --mode glob usr/share/doc/*/README
目前py-apt-file
知道的唯一动词是search
。
$ py-apt-file search --help
usage: py-apt-file search [-h] [--release RELEASE] [--arch ARCH] [--component COMP] [--mode {glob,regex,fixed}]
[--max MAX]
PATTERN
positional arguments:
PATTERN glob, regular expression or fixed string
options:
-h, --help show this help message and exit
--release RELEASE release to search (default: sid)
--arch ARCH, --architecture ARCH
architecture to search (default: amd64)
--component COMP archive components to search (default: all of them)
--mode {glob,regex,fixed}
match mode for pattern
--max MAX maximum number of packages to return
从Python,可以使用模块
import pydebcontents
contents = pydebcontents.ContentsFile("/var/cache/apt-cacher-ng/debrep/", "sid", "amd64", ["contrib"])
contents.search("usr/share/doc/.*/README")
返回一个ContentsDict
结构,它是一个dict
,其键是包条目(在Contents文件中使用的{section}/{package}
格式),值是匹配的文件名列表。
ContentsFile.search
使用的搜索词是正则表达式的字符串表示。在pydebcontents
中提供了处理搜索模式的便利函数,包括处理一些zgrep
和Contents文件格式的怪癖。
glob2re
将glob语法转换为正则表达式fixed2re
将固定字符串转换为正则表达式re2re
清理现有的正则表达式pattern2re
用于程序化选择上述三个函数之一。
待办事项列表/限制
- 之前尝试的纯Python实现速度太慢,无法用于搜索Contents文件;这可以重新审视。
- 镜像现在携带其他压缩格式,如
xz
,目前找不到或使用。 - 没有提供获取Contents文件并在磁盘上以合适的树形结构排列它们的实用程序。
- 没有能力简单地指向一个不在所需树形格式中的磁盘上的Contents文件。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
pydebcontents-0.3.1.tar.gz (12.9 kB 查看哈希值)
构建分发
pydebcontents-0.3.1-py3-none-any.whl (16.1 kB 查看哈希值)
关闭
pydebcontents-0.3.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d1fe3a8de2eb140d92b33f87d23c45908777004121feaa3a1fe2362449b58c46 |
|
MD5 | cac241019a0b12e75df1d2bc593057f4 |
|
BLAKE2b-256 | 02d2b876e7b68a0ae424842f425a0fb946b855a9933f1f9fc6143b15be12f602 |
关闭
pydebcontents-0.3.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 66046376c625e08eff59f2b4de52833328a93e6e1d41c3f0964b0d6772de03e6 |
|
MD5 | dfa0de664ad82cdcd801ba6c32002047 |
|
BLAKE2b-256 | fadb9da949ceda90e21b2a8f73c6ef43f52354f0adcfa8ccaf054ddf7439af8a |