Типизация "**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, а сотня ключевых слов. ... и этот тип применяется в других местах приложения.


Ответы (0 шт):