(typ: type)
| 1212 | |
| 1213 | @functools.cache |
| 1214 | def _extra_args(typ: type) -> set[str]: |
| 1215 | import inspect |
| 1216 | |
| 1217 | sig = inspect.signature(typ) |
| 1218 | extras = set() |
| 1219 | for name, param in sig.parameters.items(): |
| 1220 | if param.kind in ( |
| 1221 | inspect.Parameter.VAR_POSITIONAL, |
| 1222 | inspect.Parameter.VAR_KEYWORD, |
| 1223 | ): |
| 1224 | continue |
| 1225 | if name in typ.get_all_slots(): # type: ignore[attr-defined] |
| 1226 | extras.add(name) |
| 1227 | return extras |
no test coverage detected
searching dependent graphs…