Raymond Hettinger
3fd500b4a5
The copy module now handles sets directly. The __copy__ methods are no
...
longer needed.
2004-03-08 18:31:10 +00:00
Raymond Hettinger
a3b11e7fb3
* Simplify and speedup logic for tp_print.
...
* Speed-up intersection whenever PyDict_Next can be used.
2003-12-31 14:08:58 +00:00
Raymond Hettinger
81ad32e435
Speedup set.update by using the override mode for PyDict_Merge().
2003-12-15 21:16:06 +00:00
Raymond Hettinger
fb4e33a8e2
Improve algorithm for set.difference when the input is not a set.
2003-12-15 13:23:55 +00:00
Raymond Hettinger
438e02dfc8
* Refactor set.__contains__()
...
* Use Py_RETURN_NONE everywhere.
* Fix-up the firstpass check for the tp_print slot.
2003-12-13 19:38:47 +00:00
Raymond Hettinger
0deab62704
Refactor set.discard() and set.remove().
2003-12-13 18:53:18 +00:00
Raymond Hettinger
dc5ae11abf
Use dictionary specific looping idiom where possible.
...
Simplifies and speeds-up the code.
2003-12-13 14:46:46 +00:00
Raymond Hettinger
8f5cdaa784
* Added a new method flag, METH_COEXIST.
...
* Used the flag to optimize set.__contains__(), dict.__contains__(),
dict.__getitem__(), and list.__getitem__().
2003-12-13 11:26:12 +00:00
Raymond Hettinger
bc0f2ab9bb
Expose dict_contains() and PyDict_Contains() with is about 10% faster
...
than PySequence_Contains() and more clearly applicable to dicts.
Apply the new function in setobject.c where __contains__ checking is
ubiquitous.
2003-11-25 21:12:14 +00:00
Raymond Hettinger
a38123e2fa
Factor out more duplicate code.
2003-11-24 22:18:49 +00:00
Guido van Rossum
5f4e45d66f
Stop GCC warning about int literal that's so long that it becomes an
...
unsigned int (on a 32-bit machine), by adding an explicit 'u' to the
literal (a prime used to improve the hash function for frozenset).
2003-11-24 04:13:13 +00:00
Raymond Hettinger
f5f41bf087
* Checkin remaining documentation
...
* Add more tests
* Refactor and neaten the code a bit.
* Rename union_update() to update().
* Improve the algorithms (making them a closer to sets.py).
2003-11-24 02:57:33 +00:00
Raymond Hettinger
49ba4c39c4
* Simplify hash function and add test to show effectiveness of the hash
...
function.
* Add a better test for deepcopying.
* Add tests to show the __init__() function works like it does for list
and tuple. Add related test.
* Have shallow copies of frozensets return self. Add related test.
* Have frozenset(f) return f if f is already a frozenset. Add related test.
* Beefed-up some existing tests.
2003-11-23 02:49:05 +00:00
Raymond Hettinger
bfd334a42d
Extend temporary hashability to remove() and discard().
...
Brings the functionality back in line with sets.py.
2003-11-22 03:55:23 +00:00
Raymond Hettinger
19c2d77842
Allow temporary hashability for the __contains__ test.
...
(Requested by Alex Martelli.)
2003-11-21 18:36:54 +00:00
Raymond Hettinger
3fbec701ca
issubset() and issuperset() to work with general iterables
2003-11-21 07:56:36 +00:00
Raymond Hettinger
82d73dd459
Three minor performance improvements:
...
* Improve the hash function to increase the chance that distinct sets will
have distinct xor'd hash totals.
* Use PyDict_Merge where possible (it is faster than an equivalent iter/set
pair).
* Don't rebuild dictionaries where the input already has one.
2003-11-20 22:54:33 +00:00
Guido van Rossum
b61982bacb
Implement straightforward suggestions from gcc warnings (remove unused
...
variable, add extra braces).
2003-11-18 19:27:19 +00:00
Raymond Hettinger
1b92fd5bca
Use PySequence_Contains() instead of direct access macro.
2003-11-18 14:15:31 +00:00
Raymond Hettinger
50a4bb325c
Various fixups (most suggested by Armin Rigo).
2003-11-17 16:42:33 +00:00
Raymond Hettinger
e2c277a69f
Fix output spacing typo
2003-11-16 16:36:58 +00:00
Raymond Hettinger
a690a9967e
* Migrate set() and frozenset() from the sandbox.
...
* Install the unittests, docs, newsitem, include file, and makefile update.
* Exercise the new functions whereever sets.py was being used.
Includes the docs for libfuncs.tex. Separate docs for the types are
forthcoming.
2003-11-16 16:17:49 +00:00