#pkgbuild #makedeb #python-bindings #srcinfo #mpr

makedeb-srcinfo

Rust + Python 库,用于解析 makedeb 样式的 .SRCINFO 文件

7 个版本

0.8.1 2022年11月15日
0.8.0 2022年9月22日
0.7.1 2022年9月18日
0.7.0 2022年8月20日
0.6.2 2022年8月6日

#1181 in 解析器实现

每月 30 次下载

GPL-3.0 或更高版本

24KB
393 代码行

makedeb-srcinfo

makedeb-srcinfo 是一个 Rust 和 Python 库,用于解析 makedeb 样式的 .SRCINFO 文件。

该库本身是用 Rust 编写的,并通过 PyO3Maturin 实现了 Python 绑定。

Build status

Crates.io Rust docs

PyPI

用法

安装

在开始使用之前,您需要安装此库。安装说明将根据您是否使用 Rust 或 Python 库而有所不同

Rust

cargo add makedeb-srcinfo

Python

pip install makedeb-srcinfo

使用库

Rust 和 Python 库设计得非常相似,两个接口都使用相同的函数/类名,只是语言本身的设计略有不同。

Rust

请参阅 Docs.rs 上的文档以获取完整的使用说明。

use makedeb_srcinfo::SrcInfo;
use std::fs;

fn main() {
    let file = fs::read_to_string(".SRCINFO").unwrap();
    let srcinfo = SrcInfo::new(&file).unwrap();
    
    // Get the package base.
    println!("The package base for this package is {}.", srcinfo.get_string("pkgbase").unwrap());

    // Get any dependencies.
    match srcinfo.get_array("makedepends") {
        Some(makedepends) => {
            println!("Found {} build dependencies:", makedepends.len());

            for dep in makedepends {
                println!("- {}", dep);
            };
        },
        None => {
            println!("Found no dependencies.");
        }
    }
}

Python

注意:目前需要帮助自动发布 Python 文档的新版本。如果您想帮忙,请参阅 https://github.com/makedeb/makedeb-srcinfo/issues/3

#!/usr/bin/env python3
from makedeb_srcinfo import SrcInfo

with open(".SRCINFO") as file:
    data = file.read()

srcinfo = SrcInfo(data)

# Get the package base.
pkgbase = srcinfo.get_string("pkgbase")
print(f"The package base for this package is {pkgbase}.")

# Get any dependencies.
makedepends = srcinfo.get_array("makedepends")

if len(makedepends) == 0:
    print("Found no build dependencies.")
else:
    print(f"Found {len(makedepends)} build dependencies:")

    for dep in makedepends:
        print(f"- {dep}")

依赖关系

~2.2–9MB
~66K SLoC