-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Description
There are some situations where a user wants to have more precisely typed **kwds. Current syntax only allows homogeneous **kwds:
def fun(x: int, *, **options: str) -> None:
...However, in situations with many heterogeneous options listing all options in the signature could be verbose and will require rewriting some existing code. There is a vague idea to allow TypedDict for such situations. For example:
class Options(TypedDict):
timeout: int
alternative: str
on_error: Callable[[int], None]
on_timeout: Callable[[], None]
...
def fun(x: int, *, **options: Options) -> None:
...Maybe for such cases the TypedDict used should be automatically understood as defined with total=False. Also it is worth mentioning that this feature will allow reusing the TypedDicts in modules where several functions have same (or similar) option sets.
justinpawela, rmorshea, untitaker, canassa, xNinjaKittyx and 125 moreMattwmaster58, agronick, alukach, NeilGirdhar, griels and 31 more