def transform()

in scripts/new_ping_metadata_table.py [0:0]


def transform(data: Dict[str, Any]) -> List[Tuple[str, str]]:
    """Transform a JSON Schema into a list of (path, description) pairs."""

    # transform must start at a valid node in the schema
    assert "properties" in data
    # the result set
    result = []
    # state for breadth first traversal
    queue = [([], data["properties"])]

    while queue:
        prefix, obj = queue.pop()
        for key, sub in sorted(obj.items()):
            path = prefix + [key]
            if sub["type"] == "object":
                queue += [(path, sub["properties"])]
            else:
                result += [(".".join(path), sub.get("description", "N/A"))]
    return result