pydevicetree
A library for parsing Devicetree Source v1
Decision gist · record as of 2026-08-14
Yes, if you work with Devicetree Source files in embedded systems or firmware development. The package has low install friction, permissive licensing, and no known vulnerabilities. However, note that maintenance is aging—the last release was over two years ago—so consider whether you need active development support or can work with a stable, feature-complete implementation for DTS parsing and querying.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >= 3.5; the package is designed for parsing .dts files conforming to Devicetree Specification v0.2.
- Low install friction with a single runtime dependency (pyparsing).
- Maintenance status is aging—last release was 2023-07-21 and the repository has not been updated since 2025-07-24, though it remains active and unarchived.
License · maintenance · safety
permissive license (permissive) — Licensed under Apache License 2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.
last release 2023-07-21 (1120 days) · last repo commit 2025-07-24 · 27 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 80,338 downloads/mo, #14,297 on PyPI
Alternatives
Verify before relying
pip install pydevicetree
from pydevicetree import Devicetree
tree = Devicetree.parseFile("design.dts")
matches = tree.match("sifive,rocket0")
node = tree.get_by_path("/soc/uart@10000000")- Whether the package handles Devicetree Specification versions beyond v0.2 or only v0.2 strictly.
- Performance characteristics when parsing large or deeply nested devicetree files.
- Whether modifications to trees are persisted back to .dts files or remain in-memory only.
What it is and what it does
pydevicetree is a Python library for working with Devicetree Source (DTS) files, the standard format for describing hardware device configurations in embedded systems and firmware. It parses .dts files into an in-memory tree structure, then provides methods to query nodes by compatible string or path, retrieve and modify properties, and convert trees back to DTS format. The library depends only on pyparsing and supports Python 3.5 and later.
The package is primarily useful for embedded systems developers, firmware engineers, and hardware abstraction layer (HAL) developers who need to programmatically inspect or generate device tree configurations. Common operations include finding nodes by device type, extracting register addresses and memory ranges, and accessing device properties like interrupt configurations or clock frequencies. It handles Devicetree Specification v0.2 and supports standard DTS syntax including aliases, chosen nodes, and hierarchical device definitions.
Use it for
- Automated validation of hardware device tree configurations in CI/CD pipelines for embedded projects.
- Programmatic extraction of register addresses and memory mappings from .dts files for code generation.
- Runtime modification of device tree properties to support dynamic hardware reconfiguration or testing.
- Querying device compatibility strings to identify and configure specific hardware peripherals in firmware.
- Converting between devicetree formats or generating device tree fragments from other configuration sources.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with Devicetree Source files in embedded systems or firmware development.
The package has low install friction, permissive licensing, and no known vulnerabilities. However, note that maintenance is aging—the last release was over two years ago—so consider whether you need active development support or can work with a stable, feature-complete implementation for DTS parsing and querying.
Install
pydevicetree on PyPI
Before you install
Low install friction with a single runtime dependency (pyparsing). Maintenance status is aging—last release was 2023-07-21 and the repository has not been updated since 2025-07-24, though it remains active and unarchived.
Requires Python >= 3.5; the package is designed for parsing .dts files conforming to Devicetree Specification v0.2.
License in practice
Licensed under Apache License 2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.
Quickstart
pip install pydevicetree
from pydevicetree import Devicetree
tree = Devicetree.parseFile("design.dts")
matches = tree.match("sifive,rocket0")
node = tree.get_by_path("/soc/uart@10000000")
Verify before relying
- Whether the package handles Devicetree Specification versions beyond v0.2 or only v0.2 strictly.
- Performance characteristics when parsing large or deeply nested devicetree files.
- Whether modifications to trees are persisted back to .dts files or remain in-memory only.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.5 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagepyparsing |
| Maintenance | Aging 1,120 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 80,338 / month, #14,297 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: pydevicetree-0.0.13-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “dts file parser”
- pydevicetreeParses, queries, and modifies Devicetree Source v1 files according to…
- fdtParses, manipulates, and converts between Device Tree binary (.dtb)…
- INIToolsINITools parses and manipulates INI-style configuration files through…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also devicetree · fdt · pyslang · pyftdi · crownstone-uart · rosdistro · pylspci · uart-devices · xdg-base-dirs · RPi.GPIO