skillfed

oelint-parser

Alternative parser for bitbake recipe

oelint-parser v8.12.1 77.0K downloads/30d#14,568 on PyPI18
Permissive license BSD-2-Clause Active released

What it is and what it does

oelint-parser is a Python library that parses BitBake recipe files—the configuration and build metadata format used by OpenEmbedded and Yocto—and exposes their contents through a queryable object model. It loads recipe files into a Stash object, resolves cross-file dependencies, and allows you to filter and extract variables, functions, and other metadata by attribute. The library handles variable expansion (both raw and evaluated), inline conditional branches, and provides access to a curated set of BitBake constants like known functions, machines, and distros.

Typical use is loading one or more recipe files, calling Finalize() to resolve dependencies, then querying the Stash for specific items using GetItemsFor() with attribute filters. You can expand variable values, extract list items, and reduce result sets further. The package supports modern Python (3.10–3.14) and depends only on regex and Deprecated, keeping installation lightweight.

Use it for:

  • Extract and analyze variable definitions (e.g., PV, BPV) from a collection of BitBake recipes to audit or validate build metadata.
  • Resolve variable references and cross-file dependencies to determine the effective value of a recipe variable after all expansions.
  • Build tooling that inspects or lints BitBake recipes by querying the parsed metadata for compliance with project standards.
  • Automate recipe migration or refactoring by programmatically identifying and modifying specific variables or functions across multiple files.
  • Generate documentation or reports from BitBake metadata by extracting and filtering recipe contents into structured formats.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Parses BitBake recipe files and provides programmatic access to variables, functions, and cross-file dependencies through a queryable object model.

Yes. The package is actively maintained, has no known vulnerabilities, installs with low friction, and carries a permissive license. It fills a specific niche—programmatic BitBake parsing—that few alternatives address. Install it if you need to parse, query, or analyze BitBake recipes in Python; skip it if you work outside the OpenEmbedded/Yocto ecosystem.

Install

oelint-parser on PyPI

pip

pip install oelint-parser

uv

uv add oelint-parser

poetry

poetry add oelint-parser

Installing oelint-parser

Before you install

Low install friction with a pure-Python wheel. Actively maintained with a release within the last month. Depends only on regex and Deprecated, both lightweight runtime dependencies.

License in practice

BSD-2-Clause is a permissive license allowing commercial and private use with minimal restrictions; suitable for most projects.

Quickstart

from oelint_parser.cls_stash import Stash
from oelint_parser.cls_item import Variable

_stash = Stash()
_stash.AddFile("/path/to/recipe.bb")
_stash.Finalize()

for item in _stash.GetItemsFor(attribute=Variable.ATTR_VAR, attributeValue="PV"):
    print(item.VarValue)

Requires Python 3.10 or later.

Verify before relying

  • Whether the package handles malformed or non-standard BitBake syntax gracefully.
  • Performance characteristics when parsing very large recipe files or stashes with thousands of items.
  • Whether the Deprecated dependency indicates planned API changes or removal of features.

Package facts

License BSD-2-Clause (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 2 — regex, Deprecated
Maintenance actively maintained — 25 days since the last release
Last repo commit
First released
Downloads 76,972/month — #14,568 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: oelint_parser-8.12.1-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Tags

bitbake recipe parserbitbake file parsingrecipe variable extractionbitbake dependency resolutionopenembedded recipe analysisbitbake metadata parsing
bitbakeyoctoopenembedded

More Build Tools packages