On 23 maj 2013, at 01:16, Terry Jan Reedy <tjre...@udel.edu> wrote: > I like the general idea. Does you have any specific stdlib use cases in mind? > > I thought of pprint, which at some point dispatches on dict versus > set/sequence, but overall it seems more complicated than mere arg type > dispatch.
I want to make pprint extensible for 3.4 and PEP 443 started out as an idea to introduce a uniform API for the boilerplate I'm going to need anyway. It turned out the idea has been around for years. > Unittest.TestCase.assertEqual mostly (but not completely) uses first arg > dispatch based on an instance-specific dict, and it has an custom instance > registration method addTypeEqualityFunc. (Since each test_xxx runs in a new > instance, a registration for multiple methods has to be done either in a > setup method or repeated in each test_method.) If a registration mechanism is already in place, it will probably need to stay (backwards compatibility). The feasability of refactoring to @singledispatch will have to be considered on a case-by-case basis. On a more general note, I'm sure that @singledispatch won't cover every use case. Still, PJE implemented both pkgutil.simplegeneric and PEAK-Rules because the former is the proverbial 20% that gets you 80% there. For those use cases the simplicity and transparency provided by a basic solution are a virtue. This is what PEP 443 targets. If @singledispatch turns out so successful that we'll find ourselves longing for multiple dispatch or predicate-based dispatch in the future, I'm sure there's still going to be enough PEP numbers free. The @singledispatch name has been chosen to ensure there's no name clash in that case (thanks Nick for suggesting that!). -- Best regards, Łukasz Langa WWW: http://lukasz.langa.pl/ Twitter: @llanga IRC: ambv on #python-dev _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com