def _generate_base_ents()

in msticpy/datamodel/entities/alert.py [0:0]


def _generate_base_ents(ents: list) -> list:  # noqa: MC0001
    """Generate a list of all enties form a set of nested entities."""
    base_ents = []
    for ent in ents:
        base_ents.append(ent)
        for _, item in ent.items():
            if isinstance(item, list):
                for prop in item:
                    if isinstance(prop, dict) and "$id" in prop.keys():
                        base_ents.append(prop)
                        for val in prop:
                            if isinstance(prop[val], list):
                                for p in prop[val]:
                                    if isinstance(p, dict) and "$id" in p.keys():
                                        base_ents.append(p)
                            elif (
                                isinstance(prop[val], dict)
                                and "$id" in prop[val].keys()
                            ):
                                base_ents.append(val)
            elif isinstance(item, dict) and "$id" in item.keys():
                base_ents.append(item)
    return base_ents