PKGBUILD PARSER

English documentation (GitHub)
English documentation (Codeberg)

Introducción

pkgbuild_parser es un módulo escrito en Python (compatible con Python 3.x) diseñado para extraer información de un PKGBUILD. El propósito principal de este módulo es proporcionar un acceso sencillo y directo a los campos más importantes de un PKGBUILD sin depender de herramientas externas ni librerías adicionales.

Este módulo permite obtener datos como el nombre del paquete, versión, descripción, licencia, URL y archivo fuente de manera rápida y directa.


Funciones principales para el usuario

Aunque internamente el módulo tiene funciones de soporte (get_base), el usuario solo necesita usar las funciones de alto nivel, que son claras y directas:

Función Qué retorna
get_pkgname() Nombre del paquete (pkgname) como string.
get_pkgver() Versión del paquete (pkgver) como string.
get_pkgrel() Número de release (pkgrel) como string.
get_pkgdesc() Descripción del paquete (pkgdesc) como string.
get_arch() Arquitectura del paquete (arch) como una lista de strings.
get_url() URL principal del proyecto (url) como string.
get_license() Licencia del paquete (license) como una lista de strings.
get_source() Fuente(s) del paquete (source) como una lista de strings.
get_epoch() epoch del paquete.
get_full_package_name() Nombre completo del paquete, incluyendo epoch, versión y pkgrel.
get_depends() Lista de las dependencias del paquete.
get_makedepends() Lista de las dependencias de compilación del paquete.
get_optdepends() Diccionario de las dependencias opcionales del paquete.
get_options() Lista de las opciones del paquete.
get_checkdepends() Lista de las dependencias de verificación del paquete.
get_sums(algorithm) Lista de las sumas de verificación del algoritmo.
get_validpgpkeys() Lista de las llaves PGP válidas.
get_conflicts() Lista de paquetes en conflicto.
get_provides() Lista de paquetes proporcionados.
get_replaces() Lista de paquetes que reemplaza.
get_pkgbase() Paquete base (pkgbase) como una lista.

Nota: Las funciones internas (get_base, multiline, replacevar, processvar y remove_quotes) están pensadas para uso del módulo y no necesitan ser usadas por el usuario, excepto cuando desees crear funciones que no están en el parser.

Además, puedes usar la clase InfoDict para crear diccionarios a partir de información seleccionada, InfoDict tiene estos métodos:

Función Qué retorna
get_dict() Diccionario que contiene la información solicitada por el usuario.
to_json() Convierte el diccionario a formato JSON.
write_json(json_name) Escribe un archivo con el nombre proporcionado que contiene la información del diccionario en formato JSON.

Instalación y uso

Opción 1: AUR

El módulo está disponible en el AUR como python-pkgbuild-parser.

Opción 2: PyPi

pip install pkgbuild-parser

Uso básico

Ejemplo en GitHub

Ejemplo en Codeberg

Manejo de errores

Si el archivo PKGBUILD no existe, se lanza un ParserFileError, que debe ser capturado para evitar que el programa falle.

También puede ocurrir que se lanza un ParserKeyError en caso de que la obtención de un valor del PKGBUILD falle, por ejemplo, si la licencia no está declarada correctamente, y se llama a get_license() se producirá dicha excepción.

Limitaciones y notas adicionales


Volver a Inicio