| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
__init__.py module to raise errors which can be catched as LookupErrors
as well as SystemErrors.
Modified the error messages to include more information about the
failing module.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
float (compare the recent checkin to complex). Added tests for these.
|
|
|
|
|
|
|
|
|
| |
instance.
Split a string comparison test in two halves, replacing "a==b==a" with
separate tests for a==b and b==a. (Reason: while experimenting, this
test failed, and I wanted to know if it was the first or the second ==
operator that failed.)
|
|
|
|
|
|
|
|
| |
complex_coerce() would never be called with a complex argument,
because PyNumber_Coerce[Ex] doesn't bother calling the type's coercion
method if the values already have the same type. But now, of course,
it's possible to pass an instance of a complex *subtype*, and those
must be accepted.
|
|
|
|
| |
with subsclasses of complex and string.
|
| |
|
|
|
|
|
|
| |
\g<x> group reference followed by a character escape
(also restructured a few things on the way to fixing #449000)
|
|
|
|
|
|
|
|
| |
hack, and it's even more disgusting than a PyInstance_Check() call.
If the tp_compare slot is the slot used for overrides in Python,
it's always called.
Add some tests that show what should work too.
|
|
|
|
| |
skipped test -- the print command already supplies a space.
|
|
|
|
| |
can be found.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
only safely call a type's tp_compare slot if the second argument is
also an instance of the same type. I hate to think what
e.g. int_compare() would do with a second argument that's a float!
|
|
|
|
|
|
|
| |
#462270: sub-tle difference between pre.sub and sre.sub. PRE ignored
an empty match at the previous location, SRE didn't.
also synced with Secret Labs "sreopen" codebase.
|
| |
|
|
|
|
| |
(Went through the logs looking for nuggets. This is what I found.)
|
|
|
|
|
|
|
|
|
| |
boundary.
Fixed by keeping a readahead buffer containing the next line.
XXX We have no test suite for this. Maybe the new email package will
help?
|
|
|
|
| |
upon attempted attribute assignment. Caught by MWH, SF bug #462522.
|
|
|
|
|
|
|
| |
on file.__methods__. Since the docs say "This module will become obsolete
in a future release", this is just a quick hack to stop it from blowing
up. If you care about this module, test it! It doesn't make much sense
on Windows.
|
|
|
|
| |
(AttributeError, TypeError) -- the leniency wasn't needed everywhere.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
descriptors for each attribute. The getattr() implementation is
similar to PyObject_GenericGetAttr(), but delegates to im_self instead
of looking in __dict__; I couldn't do this as a wrapper around
PyObject_GenericGetAttr().
XXX A problem here is that this is a case of *delegation*. dir()
doesn't see exactly the same attributes that are actually defined;
e.g. if the delegate is a Python function object, it supports
attributes like func_code etc., but these are not visible to dir(); on
the other hand, dynamic function attributes (stored in the function's
__dict__) *are* visible to dir(). Maybe we need a mechanism to tell
dir() about the delegation mechanism? I vaguely recall seeing a
request in the newsgroup for a more formal definition of attribute
delegation too. Sigh, time for a new PEP.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to raise TypeError. In practice, a disallowed attribute assignment
can raise either TypeError or AttributeError (and it's unclear which
is better). So allow either. (Yes, this is in anticipation of a
code change that switches the exception raised. :-)
- Add a utility function, cantset(), which verifies that setting a
particular attribute to a given value is disallowed, and also that
deleting that same attribute is disallowed. Use this in the
test_func_*() tests.
- Add a new set of tests that test conformance of various instance
method attributes. (Also in anticipation of code that changes their
implementation.)
|
|
|
|
|
|
| |
structmember.h, which was missing (and caused me a snide comment by
Tim when he fixed something I missed because of the missed dependency
:-).
|
| |
|
|
|
|
| |
Add it back to the list of tests we expect to skip on Windows.
|
| |
|
|
|
|
| |
definition. Guido, what else did you forget to check in <wink>?
|
|
|
|
|
| |
Also raise TestSkipped (intead of appearing to fail) if the import lock
is held.
|
|
|
|
|
| |
This uses the new "restricted" feature of structmember, and getset
descriptors for some of the type checks.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compile() becomes replacement for builtin compile()
compileFile() generates a .pyc from a .py
both are exported in __init__
compiler.parse() gets optional second argument to specify compilation
mode, e.g. single, eval, exec
Add AbstractCompileMode as parent class and Module, Expression, and
Interactive as concrete subclasses. Each corresponds to a compilation
mode.
THe AbstractCompileMode instances in turn delegate to CodeGeneration
subclasses specialized for their particular functions --
ModuleCodeGenerator, ExpressionCodeGeneration,
InteractiveCodeGenerator.
|
| |
|
|
|
|
|
|
|
|
|
| |
The argument properties are ordered from easiest to hardest. The
harder the arg, the more complicated that code that must be generated
to return it from getChildren() and/or getChildNodes(). The old
calculation routine was bogus, because it always set hardest_arg to
the hardness of the last argument. Now use max() to always set it to
the hardness of the hardest argument.
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the only test in the syntax module. It ends up that the
transformer must handle this error case.
In the transformer, check for a list compression in com_assign_list()
by looking for a list_for node where a comma is expected.
In pycodegen.compile() re-raise the SyntaxError rather than catching
it and exiting
|
|
|
|
|
|
| |
Renamed the 'readonly' field to 'flags' and defined some new flag
bits: READ_RESTRICTED and WRITE_RESTRICTED, as well as a shortcut
RESTRICTED that means both.
|
| |
|
|
|
|
|
| |
If passed a .py file as an argument, try to find its accompanying
.pyc.
|
|
|
|
|
|
|
|
| |
Invoke compiler.syntax.check() after building AST. If a SyntaxError
occurs, print the error and exit without generating a .pyc file.
Refactor code to use compiler.misc.set_filename() rather than passing
filename argument around to each CodeGenerator instance.
|
| |
|
| |
|
| |
|
|
|
|
| |
module on the Cygwin platform.
|