[Python-Dev] Inconsistent API for sets.Set and build-in set (original) (raw)

Barry Warsaw barry at python.org
Fri Jul 1 18:58:54 CEST 2005


On Thu, 2005-06-30 at 13:37, Raymond Hettinger wrote:

> If there are no objections, I propose to do the following (only in > Python 2.4 and 2.5): > > * Add set.unionupdate() as an alias for set.update().

No. It was intentional to drop the duplicate method with the hard-to-use name. There was some thought given to deprecating sets.unionupdate() but that would have just caused unnecessary grief.

Oh, okay. Did you run out of clever abbreviations after s/union_update/update/ or do you think that symmetric_difference_update is already easy enough to use? ;)

Why was "update" chosen when you have two other forms of longer *_update() methods on sets? This is after all, a union and it's arguably more confusing not to have that in the name (especially given the "easy-to-use" other *_update() methods).

> I consider this a bug in 2.4, not a new feature, because without it, it > makes more work in porting applications.

Bah. It's just one of the handful of search/replace steps: Set --> set ImmutableSet --> frozenset unionupdate --> update

But an unnecessary one, IMO.

> I'm willing to Just Fix It,

Please don't. All of the differences between set and Set were intentional improvements (i.e. the hash algorithm's are different).

I don't care about the implementation, I'm sure it's vastly superior. I'm concerned with the API. I don't agree that dropping union_update() is necessarily an improvement, but I guess I had my chance when the PEP was being debated, so I'll drop it.

I do think you owe it to users to describe the differences in PLR $2.3.7 to aid people in the transition process.

-Barry

-------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 307 bytes Desc: This is a digitally signed message part Url : http://mail.python.org/pipermail/python-dev/attachments/20050701/bac40886/attachment.pgp



More information about the Python-Dev mailing list