A library for parsing RPM repository metadata.
Project description
rpmrepo_metadata
rpmrepo_metadata is a library for manipulating, reading and writing RPM repositories.
Installation
pip install rpmrepo_metadata
Note: requires Python >= 3.7.
Example
In [1]: from rpmrepo_metadata import RepositoryReader
In [2]: reader = RepositoryReader("tests/assets/external_repos/centos7/")
In [3]: packages = reader.iter_packages()
In [4]: packages.total_packages
Out[4]: 10072
In [5]: next(packages)
Out[5]: <Package at 0x5613b8983cb0>
In [6]: packages.remaining_packages
Out[6]: 10071
In [7]: for pkg in packages:
...: print(pkg.nevra())
389-ds-base-0:1.3.10.2-6.el7.x86_64
389-ds-base-devel-0:1.3.10.2-6.el7.x86_64
389-ds-base-libs-0:1.3.10.2-6.el7.x86_64
389-ds-base-snmp-0:1.3.10.2-6.el7.x86_64
Cython-0:0.19-5.el7.x86_64
ElectricFence-0:2.2.2-39.el7.i686
ElectricFence-0:2.2.2-39.el7.x86_64
...
...
Development
Setup
- Install Rust / Cargo
- Create and activate a Python virtual environment
maturin develop
Testing
To run the native Rust tests, cargo test
To run the validation tests against createrepo_c
, first install createrepo_c
and pytest
in your virtual environment
pytest -vv tests/validate_against_createrepo_c.py
To test a specific repo
pytest -vv tests/validate_against_createrepo_c.py::validate_ecosystem_repo\[centos7\]
Building an RPM
- install and set up mock https://rpm-software-management.github.io/mock/#setup
- spectool -g *.spec && fedpkg --release f35 srpm
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for rpmrepo_metadata-0.1.0.post2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b24f785acb896d67f204c89183f64c0b7225cd67dcc99a31eef215a5f0165e81 |
|
MD5 | 57fa498b6faa6a9720bb0946c85a024d |
|
BLAKE2b-256 | 0162e850a78635f0907fe7b80be79c5ec30e231ed20e8653145a0cd8ce4b0e6e |