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
File details
Details for the file rpmrepo_metadata-0.1.0.post2.tar.gz
.
File metadata
- Download URL: rpmrepo_metadata-0.1.0.post2.tar.gz
- Upload date:
- Size: 53.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.6.3 pkginfo/1.8.2 requests/2.27.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b24f785acb896d67f204c89183f64c0b7225cd67dcc99a31eef215a5f0165e81 |
|
MD5 | 57fa498b6faa6a9720bb0946c85a024d |
|
BLAKE2b-256 | 0162e850a78635f0907fe7b80be79c5ec30e231ed20e8653145a0cd8ce4b0e6e |