Commit Graph

160 Commits

Author SHA1 Message Date
Tim Peters
75f8e35ef4 Generalize PySequence_Count() (operator.countOf) to work with iterators. 2001-05-05 11:33:43 +00:00
Tim Peters
1434299a99 Remove redundant line. 2001-05-05 10:14:34 +00:00
Tim Peters
de9725f135 Make 'x in y' and 'x not in y' (PySequence_Contains) play nice w/ iterators.
NEEDS DOC CHANGES
A few more AttributeErrors turned into TypeErrors, but in test_contains
this time.
The full story for instance objects is pretty much unexplainable, because
instance_contains() tries its own flavor of iteration-based containment
testing first, and PySequence_Contains doesn't get a chance at it unless
instance_contains() blows up.  A consequence is that
    some_complex_number in some_instance
dies with a TypeError unless some_instance.__class__ defines __iter__ but
does not define __getitem__.
2001-05-05 10:06:17 +00:00
Tim Peters
2cfe368283 Make unicode.join() work nice with iterators. This also required a change
to string.join(), so that when the latter figures out in midstream that
it really needs unicode.join() instead, unicode.join() can actually get
all the sequence elements (i.e., there's no guarantee that the sequence
passed to string.join() can be iterated over *again* by unicode.join(),
so string.join() must not pass on the original sequence object anymore).
2001-05-05 05:36:48 +00:00
Tim Peters
432b42aa4c Mark string.join() as done. Turns out string_join() works "for free" now,
because PySequence_Fast() started working for free as soon as
PySequence_Tuple() learned how to work with iterators.  For some reason
unicode.join() still doesn't work, though.
2001-05-05 04:24:43 +00:00
Tim Peters
6912d4ddf0 Generalize tuple() to work nicely with iterators.
NEEDS DOC CHANGES.
This one surprised me!  While I expected tuple() to be a no-brainer, turns
out it's actually dripping with consequences:
1. It will *allow* the popular PySequence_Fast() to work with any iterable
   object (code for that not yet checked in, but should be trivial).
2. It caused two std tests to fail.  This because some places used
   PyTuple_Sequence() (the C spelling of tuple()) as an indirect way to test
   whether something *is* a sequence.  But tuple() code only looked for the
   existence of sq->item to determine that, and e.g. an instance passed
   that test whether or not it supported the other operations tuple()
   needed (e.g., __len__).  So some things the tests *expected* to fail
   with an AttributeError now fail with a TypeError instead.  This looks
   like an improvement to me; e.g., test_coercion used to produce 559
   TypeErrors and 2 AttributeErrors, and now they're all TypeErrors.  The
   error details are more informative too, because the places calling this
   were *looking* for TypeErrors in order to replace the generic tuple()
   "not a sequence" msg with their own more specific text, and
   AttributeErrors snuck by that.
2001-05-05 03:56:37 +00:00
Guido van Rossum
3e360db159 Add TODO item about x in y -- this should use iterators too, IMO. 2001-05-04 13:40:18 +00:00
Tim Peters
3e067578f6 Added reminders to make some remaining functions iterator-friendly. Feel
free to do one!
2001-05-04 04:43:42 +00:00
Tim Peters
15d81efb8a Generalize reduce() to work with iterators.
NEEDS DOC CHANGES.
2001-05-04 04:39:21 +00:00
Tim Peters
4e9afdca39 Generalize map() to work with iterators.
NEEDS DOC CHANGES.
Possibly contentious:  The first time s.next() yields StopIteration (for
a given map argument s) is the last time map() *tries* s.next().  That
is, if other sequence args are longer, s will never again contribute
anything but None values to the result, even if trying s.next() again
could yield another result.  This is the same behavior map() used to have
wrt IndexError, so it's the only way to be wholly backward-compatible.
I'm not a fan of letting StopIteration mean "try again later" anyway.
2001-05-03 23:54:49 +00:00
Tim Peters
c307453162 Generalize max(seq) and min(seq) to work with iterators.
NEEDS DOC CHANGES.
2001-05-03 07:00:32 +00:00
Tim Peters
0e57abf0cd Generalize filter(f, seq) to work with iterators. This also generalizes
filter() to no longer insist that len(seq) be defined.
NEEDS DOC CHANGES.
2001-05-02 07:39:38 +00:00
Guido van Rossum
1031582388 Add more news about iterators. 2001-05-01 20:54:30 +00:00
Tim Peters
f553f89d45 Generalize list(seq) to work with iterators. This also generalizes list()
to no longer insist that len(seq) be defined.
NEEDS DOC CHANGES.
This is meant to be a model for how other functions of this ilk (max,
filter, etc) can be generalized similarly.  Feel encouraged to grab your
favorite and convert it!
Note some cute consequences:
    list(file) == file.readlines() == list(file.xreadlines())
    list(dict) == dict.keys()
    list(dict.iteritems()) = dict.items()
    list(xrange(i, j, k)) == range(i, j, k)
2001-05-01 20:45:31 +00:00
Guido van Rossum
ffe13be84d Noted what's new in 2.1 (final).
Hopefully this is the last checkin for 2.1!
2001-04-16 18:46:45 +00:00
Guido van Rossum
5b08f13a0c Added news for 2.1c2.
Greatly updated news for 2.1c1 (!).
2001-04-16 02:05:23 +00:00
Guido van Rossum
4fb60361dc Note additions to pydoc and pstats. 2001-04-13 00:46:14 +00:00
Guido van Rossum
c993272786 Note that __debug__ assignments are legal again. 2001-04-12 02:31:27 +00:00
Guido van Rossum
34d37dc5d2 Noted the improved RISCOS port and the new Unixware 7 port. 2001-04-11 21:03:32 +00:00
Barry Warsaw
11e89c72c1 Added news about the updated python-mode.el 2001-04-11 20:37:57 +00:00
Andrew M. Kuchling
68ad64af87 Remove the backed-out version requirement 2001-03-31 02:42:42 +00:00
Jeremy Hylton
f626db77df News items for my recent checkins 2001-03-23 14:18:27 +00:00
Fred Drake
4e262a9631 A small change to the C API for weakly-referencable types: Such types
must now initialize the extra field used by the weak-ref machinery to
NULL themselves, to avoid having to require PyObject_INIT() to check
if the type supports weak references and do it there.  This causes less
work to be done for all objects (the type object does not need to be
consulted to check for the Py_TPFLAGS_HAVE_WEAKREFS bit).
2001-03-22 18:26:47 +00:00
Andrew M. Kuchling
8e9972c215 Added news items for the Distutils 2001-03-22 15:42:08 +00:00
Guido van Rossum
053ae3502c Add some news for 2.1b2. I'd still like someone else to add news
about these packages:

- distutils

- xml
2001-03-22 14:17:21 +00:00
Martin v. Löwis
0411f6f135 Add section on 2.1b2.
Report the addition of the Tix module.
2001-03-21 08:01:39 +00:00
Guido van Rossum
e3955a8ce2 Add some more info about pydoc. (Can you see I'm excited?) 2001-03-02 14:05:59 +00:00
Guido van Rossum
9d0fbdeaf7 Add big news item about nested scopes, __future__, and compile-time
warnings.
2001-03-02 14:00:32 +00:00
Guido van Rossum
9089b2769e ROSCOS change. 2001-03-02 06:49:50 +00:00
Tim Peters
2fe289a21b Thank Jason Tishler and Steven Majewski for their help in the Cygwin and
MacOS X ports.  Change section header to beta 1.
2001-03-01 22:19:38 +00:00
Tim Peters
1eff79674b Added blurbs about difflib, doctest and Windows import (PEP 235). 2001-03-01 02:31:33 +00:00
Andrew M. Kuchling
d6a1d79d16 Mention pydoc 2001-02-28 21:05:42 +00:00
Neil Schemenauer
a35c688055 Add Vladimir Marangozov's object allocator. It is disabled by default. This
closes SF patch #401229.
2001-02-27 04:45:05 +00:00
Martin v. Löwis
2a5130ed20 Document XML changes. 2001-02-27 04:21:58 +00:00
Andrew M. Kuchling
debc352e9c Mention the removal of soundex.c 2001-02-22 15:53:21 +00:00
Tim Peters
25a9ce371c Take a tour of hell's seedier neighborhoods to try to make winsound.Beep()
do something non-useless on Win9X boxes.  WinME unknown to me.  Someone with
NT/2000 make sure it still works there!
2001-02-19 07:06:36 +00:00
Tim Peters
3389f1999a Fixed misspelling. 2001-02-18 08:48:49 +00:00
Tim Peters
1449585529 Bug #132921: None treated differently in cmp() / sort() in 2.1a2.
Just mentioning that in the NEWS file.
2001-02-18 08:28:33 +00:00
Martin v. Löwis
e214baa209 Fix binfmt_register documentation to always register the right magic. 2001-02-04 22:37:56 +00:00
Tim Peters
d66595fe42 Renamed _testXXX to _testcapiXXX. Jack is my hero -- good call! 2001-02-04 03:09:53 +00:00
Guido van Rossum
ba38123b75 Clarify the news item about "from M import X" if "M is not a real
module" after a complaint from Tim.
2001-02-03 15:06:40 +00:00
Tim Peters
b16c56f0ba Teach Windows build and installer about new _symtable module/DLL. 2001-02-02 21:24:51 +00:00
Jeremy Hylton
d6b1cf9a55 Fix spelling errors.
Add note about _symtable.
Add note that 'from ... import *' restriction may go away -- and move
the whole entry closer to the top, because it might bite people.
2001-02-02 20:06:28 +00:00
Tim Peters
9ea17ac595 Patch derived from Trent's 101162: a Python/C API testing framework.
STILL NEEDS UNIX BUILD CHANGES.
2001-02-02 05:57:15 +00:00
Jeremy Hylton
4c4fda0f57 add info about Grant Edwards' raw packet support 2001-02-02 03:29:24 +00:00
Jeremy Hylton
0072d5aa33 continue now allowed in try block 2001-02-01 22:53:15 +00:00
Jeremy Hylton
4589bd82da Add item about nested scopes.
Revise item about restriction on 'from ... import *'.  It was in the
wrong section and the section restriction was removed.
2001-02-01 20:38:45 +00:00
Fred Drake
fb9d712721 Added comments about the weak reference support. 2001-02-01 20:00:40 +00:00
Tim Peters
0de88fc4b1 Change random.seed() so that it can get at the full range of possible
internal states.  Put the old .seed() (which could only get at about
the square root of the # of possibilities) under the new name .whseed(),
for bit-level compatibility with older versions.  This occurred to me
while reviewing effbot's book (he found himself stumbling over .seed()
more than once there ...).
2001-02-01 04:59:18 +00:00
Barry Warsaw
30dbd1429a Document the two changes to the mailbox.py module:
- All constructors grow an optional argument `factory' which is a
  callable used when new message instances are created by the next()
  methods.  Defaults to the rfc822.Message class.

- A new subclass of UnixMailbox is added, called PortableUnixMailbox.
  It's identical to UnixMailbox, but uses a more portable test for
  From_ delimiter lines.  With PortableUnixMailbox, any line that
  starts with "From " is considered a delimiter (this should really
  check for two newlines before the F, but it doesn't.
2001-01-31 22:14:01 +00:00