(obj: Any, path: str = "$", out: Set[str] | None = None)
| 171 | |
| 172 | |
| 173 | def extract_entities(obj: Any, path: str = "$", out: Set[str] | None = None) -> Set[str]: |
| 174 | if out is None: |
| 175 | out = set() |
| 176 | |
| 177 | if isinstance(obj, dict): |
| 178 | for k in sorted(obj.keys()): |
| 179 | extract_entities(obj[k], f"{path}.{k}", out) |
| 180 | elif isinstance(obj, list): |
| 181 | for item in obj: |
| 182 | out.add(f"{path}[]::{canonical_json(normalize_json(item))}") |
| 183 | else: |
| 184 | out.add(f"{path}={canonical_json(obj)}") |
| 185 | return out |
| 186 | |
| 187 | |
| 188 | @dataclass |
no test coverage detected