Commit Graph

4303 Commits

Author SHA1 Message Date
Tim Peters c09cee4d92 SF bug 418615: regular expression bug in pipes.py.
Obviously bad regexps, spotted by Jeffery Collins.

HELP!  I can't run this on Windows, and the module test() function
probably doesn't work on anyone's box.  Could a Unixoid please write
an at least minimal working test and add it to the std test suite?
2001-04-25 03:43:14 +00:00
Andrew M. Kuchling b3ca303a4e Fix typo in docstring 2001-04-23 17:13:03 +00:00
Andrew M. Kuchling c42402fa19 Bump version # for final release 2001-04-23 16:01:06 +00:00
Guido van Rossum 8b48cf9016 Add test suite for iterators. 2001-04-21 13:33:54 +00:00
Tim Peters a3f98d6bac Give UserDict new __contains__ and __iter__ methods. 2001-04-21 09:13:15 +00:00
Guido van Rossum 59d1d2b434 Iterators phase 1. This comprises:
new slot tp_iter in type object, plus new flag Py_TPFLAGS_HAVE_ITER
new C API PyObject_GetIter(), calls tp_iter
new builtin iter(), with two forms: iter(obj), and iter(function, sentinel)
new internal object types iterobject and calliterobject
new exception StopIteration
new opcodes for "for" loops, GET_ITER and FOR_ITER (also supported by dis.py)
new magic number for .pyc files
new special method for instances: __iter__() returns an iterator
iteration over dictionaries: "for x in dict" iterates over the keys
iteration over files: "for x in file" iterates over lines

TODO:

documentation
test suite
decide whether to use a different way to spell iter(function, sentinal)
decide whether "for key in dict" is a good idea
use iterators in map/filter/reduce, min/max, and elsewhere (in/not in?)
speed tuning (make next() a slot tp_next???)
2001-04-20 19:13:02 +00:00
Jeremy Hylton 12e73bb2f0 dispatcher.__repr__() was unprepared to handle the address for a Unix
domain socket.  Fix that and make the error message for failures a
little more helpful by including the class name.
2001-04-20 19:04:55 +00:00
Guido van Rossum 0dbb4fba4c Implement, test and document "key in dict" and "key not in dict".
I know some people don't like this -- if it's really controversial,
I'll take it out again.  (If it's only Alex Martelli who doesn't like
it, that doesn't count as "real controversial" though. :-)

That's why this is a separate checkin from the iterators stuff I'm
about to check in next.
2001-04-20 16:50:40 +00:00
Fred Drake bd7f818c50 Weak*Dictionary: Added docstrings to the classes.
Weak*Dictionary.update():  No longer create a temporary list to hold the
    things that will be stuffed into the underlying dictionary.  This had
    been done so that if any of the objects used as the weakly-held value
    was not weakly-referencable, no updates would take place (TypeError
    would be raised).  With this change, TypeError will still be raised
    but a partial update could occur.  This is more like other .update()
    implementations.

Thoughout, use of the name "ref" as a local variable has been removed.  The
original use of the name occurred when the function to create a weak
reference was called "new"; the overloaded use of the name could be
confusing for someone reading the code.  "ref" used as a variable name
has been replaced with "wr" (for 'weak reference').
2001-04-19 16:26:06 +00:00
Jeremy Hylton 12b6457e24 Fix compileall.py so that it fails on SyntaxErrors
The changes cause compilation failures in any file in the Python
installation lib directory to cause the install to fail.  It looks
like compileall.py intended to behave this way, but a change to
py_compile.py and a separate bug defeated it.

Fixes SF bug #412436

This change affects the test suite, which contains several files that
contain intentional errors.  The solution is to extend compileall.py
with the ability to skip compilation of selected files.

NB compileall.py is changed so that compile_dir() returns success only
if all recursive calls to compile_dir() also check success.
2001-04-18 01:20:21 +00:00
Jeremy Hylton 3090694068 Fix compileall.py so that it fails on SyntaxErrors
The changes cause compilation failures in any file in the Python
installation lib directory to cause the install to fail.  It looks
like compileall.py intended to behave this way, but a change to
py_compile.py and a separate bug defeated it.

Fixes SF bug #412436

This change affects the test suite, which contains several files that
contain intentional errors.  The solution is to extend compileall.py
with the ability to skip compilation of selected files.

In the test suite, rename nocaret.py and test_future[3..7].py to start
with badsyntax_nocaret.py and badsyntax_future[3..7].py.  Update the
makefile to skip compilation of these files.  Update the tests to use
the name names for imports.

NB compileall.py is changed so that compile_dir() returns success only
if all recursive calls to compile_dir() also check success.
2001-04-18 01:19:28 +00:00
Eric S. Raymond bc41957d2b Unused variable (caught by PyChecker) removed. 2001-04-17 17:20:19 +00:00
Jeremy Hylton 5030cf1c2d Fix three PyChecker-detected gotchas.
Import OPT_ symbols from _symtable.
Define has_exec() and has_import_star().
2001-04-16 18:43:18 +00:00
Guido van Rossum a490d5856d In walk(), don't die when os.lstat() raises os.error, e.g. because a
file was deleted by a previous call to the visitor function.

This used to be the behavior in 1.5.2 and before, but a patch to avoid
making two stat() calls accidentally broke this in 2.0.

Moshe, this would be a good one for 2.0.1 too!
2001-04-16 18:12:04 +00:00
Fred Drake a0a4ab1772 Add a test case for Weak*Dictionary.update() that would have caught a
recently reported bug; also exposed some other bugs in the implementation.
2001-04-16 17:37:27 +00:00
Fred Drake 1d9e4b7de3 Weak*Dictionary.update(): Fix calls to [].append() to only have one
parameter.

Weak*Dictionary.get():  Make the second parameter optional.

WeakKeyDictionary.has_key(), .keys():  Make these actually work!
2001-04-16 17:34:48 +00:00
Guido van Rossum 67addfe2a8 Implement Mark Favas's suggestion. There's a clear bug in _group():
its first return statement returns a single value while its caller
always expects it to return a tuple of two items.  Fix this by
returning (s, 0) instead.

This won't make the locale test on Irix succeed, but now it will fail
because of a bug in the platform's en_US locale rather than because of
a bug in the locale module.
2001-04-16 16:04:10 +00:00
Guido van Rossum 42f92da307 Change the test data to ask for class C from module __main__ rather
than from module pickletester.  Using the latter turned out to cause
the test to break when invoked as "import test.test_pickle" or "import
test.autotest".
2001-04-16 00:28:21 +00:00
Guido van Rossum b8bf3bece2 Fix SF bug [ #416231 ] urllib.basejoin fails to apply some ../.
Reported by Juan M. Bello Rivas.
2001-04-15 20:47:33 +00:00
Guido van Rossum 2b5ff073ab Get rid of the seek() method on the _Mailbox class. This was a
cut-and-paste copy of the seek() method on the _Subfile class, but it
didn't make one bit of sense: it sets self.pos, which is not used in
this class or its subclasses, and it uses self.start and self.stop,
which aren't defined on this class or its subclasses.  This is purely
my own fault -- I added this in rev 1.4 and apparently never tried to
use it.  Since it's not documented, and of very questionable use given
that there's no tell(), I'm ripping it out.

This resolves SF bug 416199 by Andrew Dalke: mailbox.py seek problems.
2001-04-15 13:32:27 +00:00
Guido van Rossum fc349862d4 In order to make this test work on Windows, the test locale has to be
set to 'en' there -- Windows does not understand the 'en_US' locale.
The test succeeds there.
2001-04-15 13:15:56 +00:00
Guido van Rossum 2d996c0704 Fix typo (missing "req." prefix on error_302_dict) found by Neil
Norwitz's PyChecker.
2001-04-15 13:08:01 +00:00
Guido van Rossum b8b45eac71 Fix typo in exception name (UnimplementedError should be
NotImplementedError) found by Neil Norwitz's PyChecker.
2001-04-15 13:06:04 +00:00
Guido van Rossum 74cde5bb3e Fix typo in exception name (SGMLParserError should be SGMLParseError)
found by Neil Norwitz's PyChecker.
2001-04-15 13:01:41 +00:00
Guido van Rossum 815bee4cf4 Fix typo in attribute name (file should be filename) found by
Neil Norwitz's PyChecker.
2001-04-15 12:51:42 +00:00
Guido van Rossum 0d1b7ea365 Fix typo in attribute name (chunk_size should be chunksize) found by
Neil Norwitz's PyChecker.
2001-04-15 12:40:13 +00:00
Steve Purcell ab0648ffc0 - Typo in message for TestCase.failIfEqual()
- Removed unused variable 'opts' in TestProgram.__init__ (thanks to PyChecker)
2001-04-15 09:18:32 +00:00
Guido van Rossum f3ee46b82a Set the SO_REUSEADDR socket option in the server thread -- this seems
needed on some platforms (e.g. Solaris 8) when the test is run twice
in quick succession.
2001-04-15 00:42:13 +00:00
Guido van Rossum f85af612f8 Mark Favas points out that there's an 'self.fp.flush()' call in the
ZipFile.close() method that should be part of the preceding 'if'
block.  On some platforms (Mark noticed this on FreeBSD 4.2) doing a
flush() on a file open for reading is not allowed.
2001-04-14 16:45:14 +00:00
Guido van Rossum b61914dd5b Pete Shinners discovered that zipfile.ZipFile() is called with mode
argument "wb", while the only valid modes are "r", "w" or "a".  Fix
this by changing the mode to "w".
2001-04-14 16:17:00 +00:00
Eric S. Raymond 3c1858a589 Should resolve [ #416039 ] pstats browser crashes. 2001-04-14 15:16:05 +00:00
Guido van Rossum 9df3eabd6e Add "import thread" at the top of the module; this prevents us from
failing later when Python is compiled without threading but a failing
'threading' module can be imported due to an earlier (caught) attempt.
2001-04-14 14:35:43 +00:00
Fred Drake b891891d00 If the sunaudiodev module is available but we cannot find an audio
device to use, skip this test instead of allowing an error to occur
when we attempt to play sound on the absent device.

Verified by Mark Favas.
2001-04-14 03:10:12 +00:00
Eric S. Raymond 9cb98572af Import readline when possible to make the commaninterpreter UI nicer. 2001-04-14 01:48:41 +00:00
Fred Drake 705088e65f Added regression test for SF bug #415660 (failure to invalidate all
references to an object before calling registered callbacks).

Change last uses of verify() to self.assert_().
2001-04-13 17:18:15 +00:00
Guido van Rossum 361c535863 Fix typo in comment (the module is now called _testcapi, not _test). 2001-04-13 17:03:04 +00:00
Jeremy Hylton c76770c68c Change error message raised when free variable is not yet bound. It
now raises NameError instead of UnboundLocalError, because the var in
question is definitely not local.  (This affects test_scope.py)

Also update the recent fix by Ping using get_func_name().  Replace
tests of get_func_name() return value with call to get_func_desc() to
match all the other uses.
2001-04-13 16:51:46 +00:00
Ka-Ping Yee d03f8fe95e One-character style change to appease Netscape stylesheets. 2001-04-13 15:04:32 +00:00
Ka-Ping Yee 6191a23537 Use nturl2path to generate a file: URL to source files in Windows. 2001-04-13 15:00:27 +00:00
Jeremy Hylton 79fa2b6073 Add test for SF bug #405427 2001-04-13 14:57:44 +00:00
Jeremy Hylton 23d4047790 SF patch #405845 by Martin von Löwis
Fixes SF bug #405427.
If an http response has a bogus return code, e.g. 400.100, raise
BadStatusLine.
2001-04-13 14:57:08 +00:00
Jeremy Hylton 3bee2f6011 Update to reflect new tokenize_test.py 2001-04-13 14:55:18 +00:00
Jeremy Hylton a4553c04fd There's no need for the tokenize tests to include a SyntaxError. 2001-04-13 14:36:51 +00:00
Ka-Ping Yee 022171fa21 Clean up isroutine(). 2001-04-13 14:04:02 +00:00
Ka-Ping Yee 9bc576b7f6 Use inspect.stack()[1][3] to tell if Helper.__repr__ is called interactively. 2001-04-13 13:57:31 +00:00
Ka-Ping Yee eca15c1fb1 Add inode checks to detect circular symbolic links (so that the
Tools/idle/idlelib link doesn't cause an infinite loop -- aack!)
2001-04-13 13:53:07 +00:00
Ka-Ping Yee 59685c5193 Small style change to accommodate Netscape. 2001-04-13 12:11:19 +00:00
Ka-Ping Yee c99e0f1862 Robustify getfile() against classes that lie about their __module__s
(such as the exceptions in _weakref and _locale!)
2001-04-13 12:10:40 +00:00
Ka-Ping Yee da79389f10 Word-wrap the list of cross-references. 2001-04-13 11:02:51 +00:00
Ka-Ping Yee 79c009d767 Another pass through the topic table to fill in cross references.
Restore Helper.__repr__ for now.
2001-04-13 10:53:25 +00:00