Skip to main content

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 TypeError is raised if the input is not str
  • Note: A ValueError is 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_names outputs a list of package names in the input
  • my_parser.raw_pkg_info outputs a list of raw dict objects as seen in input
  • my_parser.clean_pkg_info outputs a list of cleaned up dict objects 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 (if True outputs list of names and cancels raw option)
  • raw=bool, default: False (if True outputs 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


Download files

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

Source Distribution

deb_parse-0.1.1.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

deb_parse-0.1.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

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

Hashes for deb_parse-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2c7944aa18d0430b4f750f6b555d15c2e62e799f190b7911157873ba5f3c354c
MD5 adf109df3102990c0df8f3584f25006c
BLAKE2b-256 e4b0ef08ad957e326e04944946923de3ee25c86bc4a297ad7f60373c0d934d78

See more details on using hashes here.

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

Hashes for deb_parse-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2ba521302b5058b22f86736e22d279800fa9d4038d88d21d559b07683bb45504
MD5 a6cb2a1f2392db616034179257dd9d23
BLAKE2b-256 927f606e47408f4fd44b91512ac58b42cf93518fabe847bb57c1d8dcd31ec89f

See more details on using hashes here.

Supported by

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