Parses Debian Control-File formats.
Project description
Deb-Parse
A simple parser for Debian control file formats.
Once initialized, it exposes three attributes with information from the input Control File, and one method to export the information to a JSON file.
A CLI functionality may be added later.
Installation
Install using pip:
$ pip install --user deb-parse
Usage
Import it in your project
from deb_parse.parser import Parser
Initialze it with a valid Control File path or a string that follows the schema:
my_parser = Parse("/var/lib/dpkg/status")
- Note: A
TypeErroris raised if the input is notstr - Note: A
ValueErroris raised if the input string or path don't follow the schema
If everything goes well, my_parser will now have three accessible attributes:
my_parser.pkg_namesoutputs alistof package names in the inputmy_parser.raw_pkg_infooutputs alistof rawdictobjects as seen in inputmy_parser.clean_pkg_infooutputs alistof cleaned updictobjects with more useful information
Examples:
print(my_parser.pkg_names)
['libws-commons-util-java', 'python-pkg-resources', 'tcpd', ... ]
print(my_parser.raw_pkg_info)
[{'name': 'libws-commons-util-java', 'details': {'status': 'install ok installed', 'priority': 'optional', 'section': 'java', 'installed-size': '101', 'maintainer': 'Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>', 'architecture': 'all', 'version': '1.0.1-7', 'description': 'Common utilities from the Apache Web Services Project\n This is a small collection of utility classes, that allow high\n performance XML processing based on SAX.', 'original-maintainer': 'Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>', 'homepage': 'http://ws.apache.org/commons/util/'}}, ... ]
print(my_parser.clean_pkg_info)
[{'name': 'libws-commons-util-java', 'details': {'version': '1.0.1-7', 'synopsis': 'Common utilities from the Apache Web Services Project', 'description': 'This is a small collection of utility classes, that allow high\nperformance XML processing based on SAX.', 'depends': None, 'alt_depends': None, 'reverse_depends': None}}, ... ]
If you want, you can also dump the parsed information in a JSON file using .to_json_file():
Attributes:
outfile=str, default:'./datastore/dpkgs.json'names_only=bool, default:False(ifTrueoutputs list of names and cancelsrawoption)raw=bool, default:False(ifTrueoutputs raw parse)
If both options are False, JSON will be based on clean package information
Development
For working on deb-parse, you will need Python >= 3.7 and pipenv installed. Configure pipenv to create its .venv in the current folder if you want to use the VS-Code settings. With these installed, run the following command to create a virtualenv for the project and fetch the dependencies:
$ pipenv install --dev
...
Next, activate the virtual environment and get to work:
$ pipenv shell
...
(deb-parse) $
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file deb_parse-0.1.1.tar.gz.
File metadata
- Download URL: deb_parse-0.1.1.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c7944aa18d0430b4f750f6b555d15c2e62e799f190b7911157873ba5f3c354c
|
|
| MD5 |
adf109df3102990c0df8f3584f25006c
|
|
| BLAKE2b-256 |
e4b0ef08ad957e326e04944946923de3ee25c86bc4a297ad7f60373c0d934d78
|
File details
Details for the file deb_parse-0.1.1-py3-none-any.whl.
File metadata
- Download URL: deb_parse-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ba521302b5058b22f86736e22d279800fa9d4038d88d21d559b07683bb45504
|
|
| MD5 |
a6cb2a1f2392db616034179257dd9d23
|
|
| BLAKE2b-256 |
927f606e47408f4fd44b91512ac58b42cf93518fabe847bb57c1d8dcd31ec89f
|