Kurt B. Kaiser [Wed, 19 Jan 2005 00:22:59 +0000 (00:22 +0000)]
1. Polish tabbing code.
2. Restore use of set_indentation_params(), was dead code since
Autoindent.py was merged into EditorWindow.py.
3. Make usetabs, indentwidth, tabwidth, context_use_ps1 instance vars
and set in EditorWindow.__init__()
4. In PyShell.__init__() set usetabs, indentwidth and context_use_ps1
explicitly (config() is eliminated).
5. Add Tabnanny check when Module is Run/F5, not just when Checked.
6. Discourage using an indent width other than 8 when using tabs to
indent Python code.
M EditorWindow.py
M NEWS.txt
M PyShell.py
M ScriptBinding.py
Andrew McNamara [Thu, 13 Jan 2005 11:30:54 +0000 (11:30 +0000)]
Moved reader \r and \n processing from the iterator to the state machine -
this allows for better handling of newline characters in quoted fields (and
hopefully resolves Bug 967934).
Andrew McNamara [Wed, 12 Jan 2005 11:17:16 +0000 (11:17 +0000)]
Add counting of source iterator lines to the reader object - handy for
user error messages (otherwise difficult to do without instrumenting
the source).
Andrew McNamara [Wed, 12 Jan 2005 07:44:42 +0000 (07:44 +0000)]
When using QUOTE_NONNUMERIC, we now test for "numericness" with
PyNumber_Check, rather than trying to convert to a float. Reimplemented
writer - now raises exceptions when it sees a quotechar but neither
doublequote or escapechar are set. Doublequote results are now more
consistent (eg, single quote should generate """", rather than "",
which is ambiguous).
Andrew McNamara [Tue, 11 Jan 2005 07:32:02 +0000 (07:32 +0000)]
Set an upper limit on the size of the field buffer, raise an exception
when this limit is reached. Limit defaults to 128k, and is changed
by module set_field_limit() method. Previously, an unmatched quote
character could result in the entire file being read into the field
buffer, potentially exhausting virtual memory.
Andrew McNamara [Tue, 11 Jan 2005 04:49:53 +0000 (04:49 +0000)]
Now that internal dialect type is immutable, and the dialect registry
only contains instances of the dialect type, we can refer directly to the
dialect instances rather than creating new ones. In other words, if the
dialect comes from the registry, and we apply no further modifications,
the reader/writer can use the dialect object directly.
Andrew McNamara [Tue, 11 Jan 2005 02:18:36 +0000 (02:18 +0000)]
No longer attempt to instantiate python classes describing dialects. This
was done because we were previously performing validation of the dialect
from python, but this is now down within the C module. Also, the method
we were using to detect classes did not work with new-style classes.
Andrew McNamara [Tue, 11 Jan 2005 01:28:33 +0000 (01:28 +0000)]
Allow dialect-describing keywords to be supplied to register_dialect,
record objects of internal dialect type, rather than instances of
python objects.
Patch #712317: In URLs such as http://www.example.com?query=spam, treat '?' as
a delimiter. Previously, the 'network location' (<authority> in RFC 2396) would
become 'www.example.com?query=spam', while RFC 2396 does not allow a '?' in
<authority>. See bug #548176 for further discussion.
* In the documentation for createDocument(), it is now stated that the Python
DOM API allows implementations to forego creation of the document element
child node, if no namespace and local name arguments are given. (This
possibility is left open and unaddressed in the W3C spec).
* Addition by me: use 'name' rather than 'attname', for consistency with the
DOM specification and the Python DOM API implementation.
Skip Montanaro [Sat, 8 Jan 2005 21:56:43 +0000 (21:56 +0000)]
Add definitions for "up" and "down" commands that print/display the current
Python file/line when the current C execution frame is inside
PyEval_EvalFrame. These are commented out by default because GDB sometimes
crashes as a result (seems like a GDB bug).
Add a pyframe command that displays the current Python stack frame. If the
marked lines are uncommented, it will also cause Emacs/XEmacs to display the
current file/line.
Patch #936774: unify the display of data descriptors, including slots,
properties, and custom descriptors.
* removed special handling of properties
* added special handling of data descriptors - All data descriptors are grouped
together in a section. For each item, the attribute name and doc string, if
present, is displayed.
* disabled display of __slots__ attribute - since slots are descriptors, they
are listed in the section described above
`glob.glob()` currently calls itself recursively to build a list of matches of
the dirname part of the pattern and then filters by the basename part. This is
effectively BFS. ``glob.glob('*/*/*/*/*/foo')`` will build a huge list of all
directories 5 levels deep even if only a handful of them contain a ``foo``
entry. A generator-based recusion would never have to store these list at once
by implementing DFS. This patch converts the `glob` function to an `iglob`
recursive generator . `glob()` now just returns ``list(iglob(pattern))``.
I also cleaned up the code a bit (reduced duplicate `has_magic()` checks and
created a second `glob0` helper func so that the main loop need not be
duplicated).
Tim Peters [Sat, 8 Jan 2005 07:30:42 +0000 (07:30 +0000)]
threading._DummyThread.__init__(): document obscure new code.
test_threading.test_foreign_thread(): new test does a basic check that
"foreign" threads can using the threading module, and that they create
a _DummyThread instance in at least one use case. This isn't a very
good test, since a thread created by thread.start_new_thread() isn't
particularly "foreign".
Brett Cannon [Sat, 8 Jan 2005 02:43:53 +0000 (02:43 +0000)]
In _DummyThread objects the lock stored in __block (allocated thanks to
_Thread.__init__) was never used. This is a waste since locks use OS
primitives that are in limited supply. So the lock is deleted in
_DummyThread.__init__ .
Armin Rigo [Fri, 7 Jan 2005 18:10:51 +0000 (18:10 +0000)]
Re-running python with/without the -Qnew flag uses incorrectly optimized
bytecodes from the previously saved .pyc files. Fixed by disabling the static
optimization of BINARY_DIVIDE between two constants.
Jack Jansen [Fri, 7 Jan 2005 13:08:22 +0000 (13:08 +0000)]
Patch #1097739 by Bob Ippolito:
MacOSX: if we cannot use -undefined dynamic_lookup (such as on 10.2 or earlier)
we link extension directly against the dynamic library in the framework in
stead of against the framework. This will fix building extensions for 2.3
after 2.4 has been installed too.
Andrew McNamara [Fri, 7 Jan 2005 04:42:45 +0000 (04:42 +0000)]
Improved the implementation of the internal "dialect" type. The new
implementation features better error reporting, and better compliance
with the PEP.
Jack Jansen [Mon, 3 Jan 2005 15:44:18 +0000 (15:44 +0000)]
- Added an "installer" flavor, which uses the "open" command to install
something (overridable through Install-command entry)
- Hidden status is now determined by flavor == hidden, not by
missing Download-URL. Hidden packages behave like installer packages.
- Made some error messages a bit more understandable.
Because there's new functionality the version has been upped to 0.5.
Brett Cannon [Sun, 2 Jan 2005 21:54:07 +0000 (21:54 +0000)]
Since it is a possibility that LDFLAGS or CPPFLAGS were set with options that
in no way affect library or include directories the code must take that into
account and not assume some options were found.