oelint-parser
Alternative parser for bitbake recipe
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-parseruv
uv add oelint-parserpoetry
poetry add oelint-parserInstalling 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
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
recipe-scrapersExtracts structured recipe data (ingredients,…
permissive · top 15,000 on PyPI
magic-filterProvides a filter mechanism based on dynamic…
permissive · top 5,000 on PyPI
referencingResolves JSON references according to JSON…
permissive · top 100 on PyPI
parameter-expansion-patchedExpands POSIX and Bash shell parameter syntax…
permissive · top 15,000 on PyPI
sttableParses string-formatted tables (with…
permissive · top 15,000 on PyPI
opack2opack2 parses the opack binary format, a…
copyleft · top 15,000 on PyPI
uri-templateExpands RFC 6570 URI Templates with variable…
permissive · top 1,000 on PyPI
stashaiStash is a CLI and MCP server that creates a…
permissive · top 15,000 on PyPI
xacroXacro is an XML macro language that lets you…
unclear · top 15,000 on PyPI