Raymond Hettinger
e8b4b60555
Add recipe to docs.
2008-03-11 00:19:07 +00:00
Raymond Hettinger
38fb9bee6c
Tweak recipes and tests
2008-03-07 01:33:20 +00:00
Raymond Hettinger
a1ca94a102
Issue 2246: itertools grouper object did not participate in GC (should be backported).
2008-03-06 22:51:36 +00:00
Raymond Hettinger
ad47fa141c
More tests.
2008-03-06 20:52:01 +00:00
Raymond Hettinger
66f91ea966
C implementation of itertools.permutations().
2008-03-05 20:59:58 +00:00
Raymond Hettinger
d553d856e7
Beef-up docs and tests for itertools. Fix-up end-case for product().
2008-03-04 04:17:08 +00:00
Raymond Hettinger
08ff6822cc
Handle the repeat keyword argument for itertools.product().
2008-02-29 02:21:48 +00:00
Raymond Hettinger
b4cbc98c39
Add alternate constructor for itertools.chain().
2008-02-28 22:46:41 +00:00
Raymond Hettinger
05bf6338b8
Have itertools.chain() consume its inputs lazily instead of building a tuple of iterators at the outset.
2008-02-28 22:30:42 +00:00
Raymond Hettinger
2ab0552b5e
Larger test range
2008-02-27 01:08:30 +00:00
Raymond Hettinger
93e804da9c
Add itertools.combinations().
2008-02-26 23:40:50 +00:00
Raymond Hettinger
9d63837e9b
Make sure the itertools filter functions give the same performance for func=bool as func=None.
2008-02-25 22:42:32 +00:00
Raymond Hettinger
73d7963242
Improve the implementation of itertools.product()
...
* Fix-up issues pointed-out by Neal Norwitz.
* Add extensive comments.
* The lz->result variable is now a tuple instead of a list.
* Use fast macro getitem/setitem calls so most code is in-line.
* Re-use the result tuple if available (modify in-place instead of copy).
2008-02-23 02:20:41 +00:00
Raymond Hettinger
50986cc45b
First draft for itertools.product(). Docs and other updates forthcoming.
2008-02-22 03:16:42 +00:00
Raymond Hettinger
473170908e
Make starmap() match its pure python definition and accept any itertable input (not just tuples).
2008-01-17 03:02:14 +00:00
Raymond Hettinger
3a0de08d54
Fix test of count.__repr__() to ignore the 'L' if the count is a long
2007-10-12 17:53:11 +00:00
Raymond Hettinger
50e90e265f
itertools.count() no longer limited to sys.maxint.
2007-10-04 00:20:27 +00:00
Kristján Valur Jónsson
170eee9d6a
Fix those parts in the testsuite that assumed that sys.maxint would cause overflow on x64. Now the testsuite is well behaved on that platform.
2007-05-03 20:09:56 +00:00
Tim Peters
ea5962f86e
Whitespace normalization.
2007-03-12 18:07:52 +00:00
Raymond Hettinger
d36862cf78
Add itertools.izip_longest().
2007-02-21 05:20:38 +00:00
Raymond Hettinger
6d121f168c
Do not let overflows in enumerate() and count() pass silently.
2007-02-08 00:07:32 +00:00
Georg Brandl
b84c13792d
Bug #1486663 : don't reject keyword arguments for subclasses of builtin
...
types.
2007-01-21 10:28:43 +00:00
Jack Diederich
36234e8f66
* regression bug, count_next was coercing a Py_ssize_t to an unsigned Py_size_t
...
which breaks negative counts
* added test for negative numbers
will backport to 2.5.1
2006-09-21 17:50:26 +00:00
Neal Norwitz
69e8897505
Bug #1550714 : fix SystemError from itertools.tee on negative value for n.
...
Needs backport to 2.5.1 and earlier.
2006-09-02 02:58:13 +00:00
Armin Rigo
a3f092751a
("Forward-port" of r46506)
...
Remove various dependencies on dictionary order in the standard library
tests, and one (clearly an oversight, potentially critical) in the
standard library itself - base64.py.
Remaining open issues:
* test_extcall is an output test, messy to make robust
* tarfile.py has a potential bug here, but I'm not familiar
enough with this code. Filed in as SF bug #1496501 .
* urllib2.HTTPPasswordMgr() returns a random result if there is more
than one matching root path. I'm asking python-dev for
clarification...
2006-05-28 19:13:17 +00:00
Raymond Hettinger
6b27cda643
Convert iterator __len__() methods to a private API.
2005-09-24 21:23:05 +00:00
Raymond Hettinger
fdf3bd6630
SF patch #1171417 : bug fix for islice() in docs
2005-03-27 20:11:44 +00:00
Raymond Hettinger
f77d0334f3
Revised the itertools quantifier recipes to match the performance of the
...
new builtins.
2005-03-11 22:17:30 +00:00
Raymond Hettinger
b2594050ea
Added optional None arguments to itertools.islice().
2004-12-05 09:25:51 +00:00
Raymond Hettinger
a9f6092904
Fix and test weak referencing of itertools.tee objects.
2004-10-17 16:40:14 +00:00
Raymond Hettinger
ff5dc0ee77
Improve test coverage.
2004-09-29 11:40:50 +00:00
Raymond Hettinger
4cda01e260
* Increase test coverage.
...
* Have groupby() be careful about decreffing structure members.
2004-09-28 04:45:28 +00:00
Raymond Hettinger
ffdb8bb99c
Use floor division operator.
2004-09-27 15:29:05 +00:00
Raymond Hettinger
4533f1fb7f
Improve three recipes in the itertools docs.
2004-09-23 07:27:39 +00:00
Tim Peters
beb7c0c434
test_sf_950057's gen1() used an assert statement, which caused the test
...
to fail when running with -O. Changed to raise AssertionError instead.
2004-07-18 17:34:03 +00:00
Raymond Hettinger
9d7c870c6d
SF #950057 : itertools.chain doesn't "process" exceptions as they occur
...
Both cycle() and chain() were handling exceptions only when switching
input sources. The patch makes the handle more immediate.
Will backport.
2004-05-08 19:49:42 +00:00
Raymond Hettinger
5cab2e3a88
Give itertools.repeat() a length method.
2004-02-10 09:25:40 +00:00
Raymond Hettinger
734fb5724f
Add a Guido inspired example for groupby().
2004-01-20 20:04:40 +00:00
Raymond Hettinger
64958a15d7
Guido grants a Christmas wish:
...
sorted() becomes a regular function instead of a classmethod.
2003-12-17 20:43:33 +00:00
Raymond Hettinger
d25c1c6351
Implement itertools.groupby()
...
Original idea by Guido van Rossum.
Idea for skipable inner iterators by Raymond Hettinger.
Idea for argument order and identity function default by Alex Martelli.
Implementation by Hye-Shik Chang (with tweaks by Raymond Hettinger).
2003-12-06 16:23:06 +00:00
Raymond Hettinger
ad983e79d6
Improve the implementation of itertools.tee().
...
Formerly, underlying queue was implemented in terms of two lists. The
new queue is a series of singly-linked fixed length lists.
The new implementation runs much faster, supports multi-way tees, and
allows tees of tees without additional memory costs.
The root ideas for this structure were contributed by Andrew Koenig
and Guido van Rossum.
2003-11-12 14:32:26 +00:00
Raymond Hettinger
d591f666de
Replace the window() example with pairwise() which demonstrates tee().
2003-10-26 15:34:50 +00:00
Raymond Hettinger
f0c5aec85f
Minor improvements to itertools.tee():
...
* tee object is no longer subclassable
* independent iterators renamed to "itertools.tee_iterator"
* fixed doc string typo and added entry in the module doc string
2003-10-26 14:25:56 +00:00
Raymond Hettinger
6a5b027742
Added itertools.tee()
...
It works like the pure python verion except:
* it stops storing data after of the iterators gets deallocated
* the data queue is implemented with two stacks instead of one dictionary.
2003-10-24 08:45:23 +00:00
Raymond Hettinger
dbe3d280e7
Adopt Christian Stork's suggested argument order for the logic quantifiers.
...
Adopt Jeremy Fincher's suggested function name, "any", instead of "some".
2003-10-05 16:47:36 +00:00
Raymond Hettinger
42a61ed277
Simplify doctest of tee().
2003-09-13 01:01:34 +00:00
Raymond Hettinger
a098b33c93
Add an example to address a common question of how to split iterators.
2003-09-08 23:58:40 +00:00
Raymond Hettinger
a56f6b6600
SF bug #793826 : using itertools.izip to mutate tuples
...
Avoid Armin Rigo's dastardly exercise in re-entrancy.
2003-08-29 23:09:58 +00:00
Raymond Hettinger
b5a420883c
Modified itertools.izip() to match the behavior of __builtin__.zip()
...
which can now take zero arguments.
2003-08-08 05:10:41 +00:00
Raymond Hettinger
77fe69bd08
Re-sync doc tests with the doc updates.
2003-08-08 04:33:19 +00:00