(cat_rules: Dict[str, Any])
| 260 | ) |
| 261 | |
| 262 | def _collect_attrs(cat_rules: Dict[str, Any]) -> set: |
| 263 | out: set = set(schema_attrs(schema, cat_rules.get("schema_common_block", ""))) |
| 264 | out |= set(cat_rules.get("schema_common_extra_attrs", [])) |
| 265 | sub_block = cat_rules.get("schema_subtypes_block") |
| 266 | if sub_block and sub_block in schema: |
| 267 | block = schema[sub_block] |
| 268 | if isinstance(block, dict): |
| 269 | for sub_attrs in block.values(): |
| 270 | if isinstance(sub_attrs, list): |
| 271 | out |= set(sub_attrs) |
| 272 | elif isinstance(sub_attrs, dict): |
| 273 | out |= set(sub_attrs.get("attrs", [])) |
| 274 | elif isinstance(block, list): |
| 275 | for entry in block: |
| 276 | if isinstance(entry, dict): |
| 277 | out |= set(entry.get("attrs", [])) |
| 278 | return out |
| 279 | |
| 280 | flagged: set = set() |
| 281 | for cat_name, cat_rules in rules.get("categories", {}).items(): |
no test coverage detected