from typing import Iterable
from typing import Dict
from typing import Any


def _find_first_property_value(property_name: str, data: Iterable[Dict]) -> Any:
    """Finds a first value of a given proprety name in data from `ioreg`, returns None if not found."""
    found_value = None
    for item in data:
        found_value = item.get(
            property_name,
            _find_first_property_value(property_name=property_name, data=item.get("IORegistryEntryChildren", [])),
        )
        if found_value:
            break
    return found_value