(keywords, *, no_default_keywords)
| 391 | |
| 392 | |
| 393 | def process_keywords(keywords, *, no_default_keywords): |
| 394 | custom_keywords = {} |
| 395 | for spec in dict.fromkeys(keywords): |
| 396 | name, spec = parse_spec(spec) |
| 397 | if name not in custom_keywords: |
| 398 | custom_keywords[name] = [] |
| 399 | custom_keywords[name].append(spec) |
| 400 | |
| 401 | if no_default_keywords: |
| 402 | return custom_keywords |
| 403 | |
| 404 | # custom keywords override default keywords |
| 405 | for name, spec in DEFAULTKEYWORDS.items(): |
| 406 | if name not in custom_keywords: |
| 407 | custom_keywords[name] = [] |
| 408 | if spec not in custom_keywords[name]: |
| 409 | custom_keywords[name].append(spec) |
| 410 | return custom_keywords |
| 411 | |
| 412 | |
| 413 | @dataclass(frozen=True) |
searching dependent graphs…