New submission from Łukasz Langa <luk...@langa.pl>:

With the patch attached to this issue, @singledispatch gains support for 
passing the type in @register via annotations.

This looks more natural and enables more thorough type checking without 
repeating yourself:


@singledispatch
def generic(arg): ...

@generic.register
def _(arg: str): ...

@generic.register
def _(arg: int): ...


The previous API is still available for backwards compatibility, as well as 
stacking, and use with classes (sic, I was surprised to learn it's used that 
way, too).

The patch should be uncontroversial, maybe except for the fact that it's 
importing the `typing` module if annotations are used. This is necessary 
because of forward references, usage of None as a type, and so on. More 
importantly, with PEP 563 it's mandatory.

----------
assignee: lukasz.langa
components: Library (Lib)
messages: 307686
nosy: lukasz.langa, rhettinger, yselivanov
priority: normal
severity: normal
status: open
title: singledispatch support for type annotations
type: enhancement
versions: Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32227>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to