--- id: oelint-parser version: "8.12.1" license: BSD-2-Clause license_treatment: permissive maintenance: active --- # oelint-parser — Alternative parser for bitbake recipe License: permissive · Maintenance: active · Downloads: 77.0K/mo ## 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 above — 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 pip install oelint-parser uv add oelint-parser 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_current - Install friction: low - Maintenance: active - Downloads: 77.0K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags bitbake recipe parser, bitbake file parsing, recipe variable extraction, bitbake dependency resolution, openembedded recipe analysis, bitbake metadata parsing, bitbake, yocto, openembedded [View on SkillFed](https://skillfed.io/packages/oelint-parser) · [View on PyPI](https://pypi.org/project/oelint-parser/)