Типизация "**kwargs" в Python?
Как аннотировать тип **kwargs?
В python можно указать тип используя Unpack,
такой подход требует определения класса наследуемого от TypedDict:
class Kwargs(TypedDict):
foo: Any
bar: Any
def some(**kwargs: Unpack[Kwargs]) -> None:
pass
some(foo=1, bar=2)
... но параметрами являются ключевые слова определенные в enum:
@enum.unique
class RecordKey(enum.StrEnum):
foo = "foo"
bar = "bar"
... а значения всегда один и тот же тип. Как можно добиться такого результата?:
def some(**kwargs: Unpack[dict[RecordKey, MyClass]])
В enum.StrEnum может быть не 2-3, а сотня ключевых слов. ... и этот тип применяется в других местах приложения.
