Skip to main content

pkgbuild_parser

Documentation in Spanish

Introduction

pkgbuild_parser is a module written in Python (compatible with Python 3.x) designed to extract information from a PKGBUILD. The main purpose of this module is to provide simple and direct access to the most important fields of a PKGBUILD without relying on external tools or additional libraries.

  • Version: 2.1.0
  • License: MPL-2.0 2026 KevinCrrl
  • Dependencies: None
  • Style: Simplicity, no external dependencies, easy to use

This module allows you to quickly and directly obtain data such as package name, version, description, license, URL, and source file.


Contributing to PKGBUILD Parser

See the CONTRIBUTING file.

Main functions for the user

Although the module internally has support functions (get_base), the user only needs to use the high-level functions, which are clear and direct:

Function That returns
get_pkgname() Package name (pkgname) as a string.
get_pkgver() Package version (pkgver) as a string.
get_pkgrel() Release number (pkgrel) as a string.
get_pkgdesc() Package description (pkgdesc) as a string.
get_arch() Package architecture (arch) as a list of strings.
get_url() Main project URL (url) as a string.
get_license() Package license (license) as a list of strings.
get_source() Package source(s) (source) as a list of strings.
get_epoch() Package epoch.
get_install() Install script name
get_full_package_name() Full package name, including epoch, version, and pkgrel.
get_depends() List of the package's dependencies.
get_makedepends() List of the package's build dependencies.
get_optdepends() Dictionary of the package's optional dependencies.
get_options() List of the package's options.
get_checkdepends() List of the package's check dependencies.
get_sums(algorithm) List of the algorithm checksums.
get_validpgpkeys() List of the valid PGP keys.
get_conflicts() List of conflicting packages.
get_provides() List of packages provided.
get_replaces() List of packages it replaces.
get_pkgbase() Base package (pkgbase) as a list.
get_changelog() Changelog filename as a string.
get_groups() List of the package groups.
get_backup() List of the backup files.
get_noextract() List of files to exclude from the extraction.

Note: The internal functions (get_base, multiline, replacevar, processvar and remove_quotes) are intended for module use and do not need to be used by the user, except when you want to create functions that are not in the parser.

Also, you can use the InfoDict class to create dictionariess from selected information, InfoDict has this methods:

Function That returns
get_dict() dictionary that contains the information requested by the user.
to_json() Converts the dictionary to a JSON format.
write_json(json_name) Writes a file with the provided name that contains the dictionary information in JSON format.

Installation and use

Option 1: AUR

The module is available on the AUR as python-pkgbuild-parser.

Option 2: PyPi

pip install pkgbuild-parser

Basic usage

GitHub example Codeberg example

Error handling

If the PKGBUILD file does not exist, a ParserFileError is raised, which must be caught to prevent the program from failing.

A ParserKeyError can also be raised if getting a value from the PKGBUILD fails, for example, if the license is not declared correctly, and get_license() is called, this exception will be raised.

Limitations and additional notes

  • Starting with version 1.2.0, the parser can replace known variables in a Bash string. For example, if you try to fetch a source file and it is declared in the PKGBUILD as "${url}/package-$pkgver.tar.gz", pkgbuild-parser will be able to recognize these variables, retrieve them, and replace them with their values.
  • The module's goal is to extract only basic information from standard PKGBUILDs, It cannot replace variables it does not recognize, such as "$my_personal_var", or variations of known variables, such as "$pkgname%suffix".
  • It works best with PKGBUILDs that follow the Arch Wiki standards.
  • This code doesn't implement a proper parser; it simply reads the PKGBUILD file and extracts the necessary information using various conditions and state logic. However, I try to make it as accurate as possible :)
  • Since version 0.4.0, the module can extract information from arrays or lists, such as depends, makedepends, source, optdepends, license, options, and checkdepends.
  • Since version 1.0.0, functions that return a string no longer include quotes by default.

Download files

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

Source Distribution

pkgbuild_parser-2.2.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

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

pkgbuild_parser-2.2.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file pkgbuild_parser-2.2.0.tar.gz.

File metadata

  • Download URL: pkgbuild_parser-2.2.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for pkgbuild_parser-2.2.0.tar.gz
Algorithm Hash digest
SHA256 ab37197794a54d9f13c286a7c72de9e65430fa422b95181200b076eb52a6ae0f
MD5 a10b9028799e2404d365c97ec21d45e7
BLAKE2b-256 a15a198f8f5d8b99ac7fc54170101f9849a718d29a9a2f8783ac25f949bd56d1

See more details on using hashes here.

File details

Details for the file pkgbuild_parser-2.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pkgbuild_parser-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5dba6a2cf950e43bd96e2878299ae8cdb7c82ad16c8128e0cc85aaf33c1f087e
MD5 d32c214e5b9bf86ae7beebc24ae3e5b9
BLAKE2b-256 bc8b6b978ab043d1647fb6de41193b9180871ab95f1bb140e65e0a3d046aaa27

See more details on using hashes here.

Release history Release notifications | RSS feed

2.3.0

2 files

This release

2.2.0 This release

2 files

2.1.0

2 files

2.0.0

2 files

1.2.1

2 files

1.2.0

2 files

1.1.0

2 files

1.0.1

2 files

1.0.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

Supported by

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