INNER CODE UNIT · Python
traverse
kubeai-project/kubeai · hack/filter-openapi-components.py:7
def traverse(obj, components, collected):
"""
Recursively search an object (dict or list) for internal $ref keys that
point to components (i.e. starting with "#/components/"). For each referenced
component, add it to the collected set and traverse its definition to find
further references.
"""
if isinstance(obj, dict):
if "$ref" in obj and isinstance(obj["$ref"], str):
ref = obj["$ref"]
if ref.startswith("#/components/"):
# Expected format: "#/components/<component_type>/<component_name>"
parts = ref.split("/")
if len(parts) >= 4:
comp_type = parts[2]
comp_name = parts[3]
if (comp_type, comp_name) not in collected:
collected.add((comp_type, comp_name))