[Python-Dev] pep 362 - 5th edition

Nick Coghlan ncoghlan at gmail.com
Wed Jun 20 06:39:41 CEST 2012


On Wed, Jun 20, 2012 at 1:28 PM, Yury Selivanov <yselivanov.ml at gmail.com> wrote:
> On 2012-06-19, at 11:24 PM, Nick Coghlan wrote:
>> The constructor accepts an iterable of Parameter objects rather than a mapping.
>
> That's the code I've ended up with:
>
>        sig = signature(obj.__func__)
>        return Signature(OrderedDict(tuple(sig.parameters.items())[1:]),
>                         **sig.optional)

Why require a mapping as the argument? A simple iterable of Parameter
objects seems like a more convenient constructor API to me. The
constructor can take care of building the mapping from that internally
via:

    param_map = OrderedDict((param.name, param for param in parameters))

> Still looks better than creating implicit & explicit copies ;)

Indeed :)

>
> As for slices support in OrderedDict -- it would return values, so
> it won't solve the problem anyways.

You wouldn't want to do it anyway - while slices happen to not be
hashable *now*, there's no strong reason behind that.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-Dev mailing list