Skip to main content

Rust + Python library for parsing makedeb-styled .SRCINFO files

Project description

makedeb-srcinfo

makedeb-srcinfo is a library for Rust and Python to parse makedeb-style .SRCINFO files.

The library itself is written in Rust, and bindings for Python are made possible via PyO3 and Maturin.

Build status

Crates.io Rust docs

PyPI

Usage

Installation

You'll first need to install the library before using it. Installation instructions will change depending on if you're using the Rust or Python library:

Rust

cargo add makedeb-srcinfo

Python

pip install makedeb-srcinfo

Using the library

The Rust and Python libraries are designed to look quite similar to each other, both interfaces use the same function/class names, and should only differ in how the languages themselves are designed.

Rust

See the documentation on Docs.rs for full usage instructions.

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

Note Help is currently needed to get Python documentation automatically published on new releases. Please see https://github.com/makedeb/makedeb-srcinfo/issues/3 if you'd like to help.

#!/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}")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

makedeb_srcinfo-0.8.1.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

makedeb_srcinfo-0.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (596.2 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

File details

Details for the file makedeb_srcinfo-0.8.1.tar.gz.

File metadata

  • Download URL: makedeb_srcinfo-0.8.1.tar.gz
  • Upload date:
  • Size: 23.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/0.14.0-beta.7

File hashes

Hashes for makedeb_srcinfo-0.8.1.tar.gz
Algorithm Hash digest
SHA256 a99f31ad2c59c9b4a8b9f256573f2b8413ef7fd0cdb39bb027d0176b4fe8ad92
MD5 fc625acb77252e3d4dcd830f52165b01
BLAKE2b-256 2cd4a557e0c8ac1d70b3346cff5bd66cc16ac430c39866fe6bc13ccbe91c3118

See more details on using hashes here.

File details

Details for the file makedeb_srcinfo-0.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for makedeb_srcinfo-0.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aec64fcdae5b0b147eb15f8cc16d40800aef7448b301359d78777e9d1b2e27c5
MD5 9f46be3439f4ea50d19f2a301a134e96
BLAKE2b-256 db58f2b48b70e9be4e185f74b00d1fd73d9c3dd2ba2736de064a155849878626

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page