]> granicus.if.org Git - python/log
python
22 years agoRearranged and added comments to object.h, to clarify many things
Tim Peters [Sun, 7 Jul 2002 19:59:50 +0000 (19:59 +0000)]
Rearranged and added comments to object.h, to clarify many things
that have taken me "too long" to reverse-engineer over the years.
Vastly reduced the nesting level and redundancy of #ifdef-ery.
Took a light stab at repairing comments that are no longer true.

sys_gettotalrefcount():  Changed to enable under Py_REF_DEBUG.
It was enabled under Py_TRACE_REFS, which was much heavier than
necessary.  sys.gettotalrefcount() is now available in a
Py_REF_DEBUG-only build.

22 years agoFix from SF patch #527518: proxy config with user+pass authentication.
Jeremy Hylton [Sun, 7 Jul 2002 16:57:35 +0000 (16:57 +0000)]
Fix from SF patch #527518: proxy config with user+pass authentication.

Bug fix candidate.

22 years agoRemoved 3 unlikely #includes that were only needed for the non-gc flavor
Tim Peters [Sun, 7 Jul 2002 16:52:50 +0000 (16:52 +0000)]
Removed 3 unlikely #includes that were only needed for the non-gc flavor
of the trashcan code.

22 years agoFix for SF bug #432621: httplib: multiple Set-Cookie headers
Jeremy Hylton [Sun, 7 Jul 2002 16:51:37 +0000 (16:51 +0000)]
Fix for SF bug #432621: httplib: multiple Set-Cookie headers

If multiple header fields with the same name occur, they are combined
according to the rules in RFC 2616 sec 4.2:

Appending each subsequent field-value to the first, each separated by
a comma. The order in which header fields with the same field-name are
received is significant to the interpretation of the combined field
value.

22 years agoTrashcan cleanup: Now that cyclic gc is always there, the trashcan
Tim Peters [Sun, 7 Jul 2002 05:13:56 +0000 (05:13 +0000)]
Trashcan cleanup:  Now that cyclic gc is always there, the trashcan
mechanism is no longer evil:  it no longer plays dangerous games with
the type pointer or refcounts, and objects in extension modules can play
along too without needing to edit the core first.

Rewrote all the comments to explain this, and (I hope) give clear
guidance to extension authors who do want to play along.  Documented
all the functions.  Added more asserts (it may no longer be evil, but
it's still dangerous <0.9 wink>).  Rearranged the generated code to
make it clearer, and to tolerate either the presence or absence of a
semicolon after the macros.  Rewrote _PyTrash_destroy_chain() to call
tp_dealloc directly; it was doing a Py_DECREF again, and that has all
sorts of obscure distorting effects in non-release builds (Py_DECREF
was already called on the object!).  Removed Christian's little "embedded
change log" comments -- that's what checkin messages are for, and since
it was impossible to correlate the comments with the code that changed,
I found them merely distracting.

22 years agoRemoved WITH_CYCLE_GC #ifdef-ery. Holes:
Tim Peters [Sun, 7 Jul 2002 03:59:34 +0000 (03:59 +0000)]
Removed WITH_CYCLE_GC #ifdef-ery.  Holes:

+ I'm not sure what to do about configure.in.  Left it alone.

+ Ditto pyexpat.c.  Fred or Martin will know what to do.

22 years agoFix SF bug #575360
Jeremy Hylton [Sat, 6 Jul 2002 18:55:01 +0000 (18:55 +0000)]
Fix SF bug #575360

Subclasses of Exception that define an __init__ must call
Exception.__init__ or define self.args.  Otherwise, str() will fail.

Bug fix candidate.

22 years agoHandle HTTP/0.9 responses.
Jeremy Hylton [Sat, 6 Jul 2002 18:48:07 +0000 (18:48 +0000)]
Handle HTTP/0.9 responses.

Section 19.6 of RFC 2616 (HTTP/1.1):

   It is beyond the scope of a protocol specification to mandate
   compliance with previous versions. HTTP/1.1 was deliberately
   designed, however, to make supporting previous versions easy....

   And we would expect HTTP/1.1 clients to:

      - recognize the format of the Status-Line for HTTP/1.0 and 1.1
        responses;

      - understand any valid response in the format of HTTP/0.9, 1.0, or
        1.1.

The changes to the code do handle response in the format of HTTP/0.9.
Some users may consider this a bug because all responses with a
sufficiently corrupted status line will look like an HTTP/0.9
response.  These users can pass strict=1 to the HTTP constructors to
get a BadStatusLine exception instead.

While this is a new feature of sorts, it enhances the robustness of
the code (be tolerant in what you accept).  Thus, I consider it a bug
fix candidate.

XXX strict needs to be documented.

22 years agoModifying EditorWindow causes breakpoints in that module to be removed
Kurt B. Kaiser [Sat, 6 Jul 2002 04:22:25 +0000 (04:22 +0000)]
Modifying EditorWindow causes breakpoints in that module to be removed
from both sides of the split debugger.
M Debugger.py
M EditorWindow.py

22 years agoDecent burial for venerated ancestor (urn in attic)
Kurt B. Kaiser [Sat, 6 Jul 2002 01:20:51 +0000 (01:20 +0000)]
Decent burial for venerated ancestor  (urn in attic)

22 years agoRemove dead code.
Kurt B. Kaiser [Sat, 6 Jul 2002 01:07:15 +0000 (01:07 +0000)]
Remove dead code.

22 years ago1. Test Sourceforge checkin, idle-dev posting
Kurt B. Kaiser [Sat, 6 Jul 2002 00:51:33 +0000 (00:51 +0000)]
1. Test Sourceforge checkin, idle-dev posting
2. Remove extraneous comment

22 years agoCombine OldStackViewer.py with Debugger.py, removing dead code.
unknown [Fri, 5 Jul 2002 22:05:24 +0000 (22:05 +0000)]
Combine OldStackViewer.py with Debugger.py, removing dead code.
M Debugger.py       : Incorporate StackViewer, NamespaceViewer classes
M StackViewer.py    : remove import OldStackViewer
U OldStackViewer.py : remove file

22 years agoprintlist(): Replaced the guts with a call to textwrap. Yay!
Tim Peters [Thu, 4 Jul 2002 19:45:06 +0000 (19:45 +0000)]
printlist():  Replaced the guts with a call to textwrap.  Yay!

22 years agogc_list_move defined but not used.
Michael W. Hudson [Thu, 4 Jul 2002 17:11:36 +0000 (17:11 +0000)]
gc_list_move defined but not used.

22 years agoDocstring improvements. In particular, added docstrings for the
Greg Ward [Thu, 4 Jul 2002 14:51:49 +0000 (14:51 +0000)]
Docstring improvements.  In particular, added docstrings for the
standalone wrap() and fill() functions.  This should address the
misunderstanding that led to SF bug 577106.

22 years agoFix a typo.
Thomas Heller [Thu, 4 Jul 2002 08:36:53 +0000 (08:36 +0000)]
Fix a typo.

22 years agoRevise asyncore documentation and document asynchat for the first time.
Steve Holden [Wed, 3 Jul 2002 18:36:39 +0000 (18:36 +0000)]
Revise asyncore documentation and document asynchat for the first time.

22 years agoNo need to be ambiguous about *how* extended slices and built-in types
Fred Drake [Wed, 3 Jul 2002 12:02:01 +0000 (12:02 +0000)]
No need to be ambiguous about *how* extended slices and built-in types
have changed.

Uncomment a heading so that PendingDeprecationWarning doesn't seem so
out of place.

22 years agoFix up a few more consistency nits and incorrectly applied markup.
Fred Drake [Wed, 3 Jul 2002 05:08:48 +0000 (05:08 +0000)]
Fix up a few more consistency nits and incorrectly applied markup.
Further clarify the English-centricity of fix_sentence_endings.

22 years agoappend(): Clarify the expected type of charset.
Barry Warsaw [Wed, 3 Jul 2002 05:04:04 +0000 (05:04 +0000)]
append(): Clarify the expected type of charset.

22 years agoDebugger Exception Info and GUI Stack Exception Traceback: finish
Kurt B. Kaiser [Wed, 3 Jul 2002 03:55:43 +0000 (03:55 +0000)]
Debugger Exception Info and GUI Stack Exception Traceback: finish
implementation.

22 years agoStop trying to cater to platforms with a broken HUGE_VAL definition. It
Tim Peters [Wed, 3 Jul 2002 03:31:20 +0000 (03:31 +0000)]
Stop trying to cater to platforms with a broken HUGE_VAL definition.  It
breaks other platforms (in this case, the hack for broken Cray systems in
turn caused failure on a Mac system broken in a different way).

22 years agoUpdate freeze to use zlib 1.1.4.
Mark Hammond [Wed, 3 Jul 2002 02:40:25 +0000 (02:40 +0000)]
Update freeze to use zlib 1.1.4.

From patch: [ 574532 ] Update freeze to use zlib 1.1.4

22 years agoAdd annotations that describe the change in the "errors" and "failures"
Fred Drake [Tue, 2 Jul 2002 22:46:42 +0000 (22:46 +0000)]
Add annotations that describe the change in the "errors" and "failures"
attributes of the TestResult.

22 years agoUpdate the documentation of the errors and failures attributes of the
Fred Drake [Tue, 2 Jul 2002 22:34:44 +0000 (22:34 +0000)]
Update the documentation of the errors and failures attributes of the
TestResult object.  Add an example of how to get even more information for
apps that can use it.
Closes SF bug #558278.

22 years agoAnother stab at SF 576327: zipfile when sizeof(long) == 8
Tim Peters [Tue, 2 Jul 2002 22:24:50 +0000 (22:24 +0000)]
Another stab at SF 576327: zipfile when sizeof(long) == 8
binascii_crc32():  The previous patch forced this to return the same
result across platforms.  This patch deals with that, on a 64-bit box,
the *entry* value may have "unexpected" bits in the high four bytes.

Bugfix candidate.

22 years agovisit_decref(): Added another assert.
Tim Peters [Tue, 2 Jul 2002 22:15:28 +0000 (22:15 +0000)]
visit_decref():  Added another assert.

22 years agoDon't list all the keyword args to the TextWrapper constructor in the
Greg Ward [Tue, 2 Jul 2002 21:48:12 +0000 (21:48 +0000)]
Don't list all the keyword args to the TextWrapper constructor in the
classdesc -- just use "..." with prose explaining the correspondence
between keyword args and instance attributes.

Document 'width' along with the other instance attributes.

Describe default values consistently.

Typo fixes.

22 years agoBe consistent with the functions in the posix/nt module: docstrings
Fred Drake [Tue, 2 Jul 2002 21:28:04 +0000 (21:28 +0000)]
Be consistent with the functions in the posix/nt module:  docstrings
don't include a " -> None" for functions that have no return value.

22 years agoAttempt to clarify removedirs().
Fred Drake [Tue, 2 Jul 2002 21:03:49 +0000 (21:03 +0000)]
Attempt to clarify removedirs().
Based on SF bug #574773.

22 years agoDeal with & remove the XXX comments.
Fred Drake [Tue, 2 Jul 2002 20:37:12 +0000 (20:37 +0000)]
Deal with & remove the XXX comments.
Change the markup to be more like the rest of the documentation.

22 years agoAbstract the creation of signature lines for callable things; the new
Fred Drake [Tue, 2 Jul 2002 20:32:50 +0000 (20:32 +0000)]
Abstract the creation of signature lines for callable things; the new
\py@sigline macro will wrap the argument list so it will not extend into
the right margin.
Substantially based on a contribution from Dave Cole.
This addresses one of the comments in SF bug #574742.

22 years agoFix for SF bug #576327: zipfile when sizeof(long) == 8
Tim Peters [Tue, 2 Jul 2002 20:20:08 +0000 (20:20 +0000)]
Fix for SF bug #576327: zipfile when sizeof(long) == 8
binascii_crc32():  Make this return a signed 4-byte result across
platforms.  The other way to make this platform-independent would be to
make it return an unsigned unbounded int, but the evidence suggests
other code out there treats it like a signed 4-byte int (e.g., existing
code writing the result with struct.pack "l" format).

Bugfix candidate.

22 years agoConvert raise to call exception class. Add whitespace.
Jeremy Hylton [Tue, 2 Jul 2002 20:19:08 +0000 (20:19 +0000)]
Convert raise to call exception class.  Add whitespace.

22 years agoRepair badly formatted code.
Jeremy Hylton [Tue, 2 Jul 2002 18:25:00 +0000 (18:25 +0000)]
Repair badly formatted code.

22 years agoFinished transitioning to using gc_refs to track gc objects' states.
Tim Peters [Tue, 2 Jul 2002 18:12:35 +0000 (18:12 +0000)]
Finished transitioning to using gc_refs to track gc objects' states.
This was mostly a matter of adding comments and light code rearrangement.
Upon untracking, gc_next is still set to NULL.  It's a cheap way to
provoke memory faults if calling code is insane.  It's also used in some
way by the trashcan mechanism.

22 years agoRemove bogus assignment to self.length in NamedNodeMap.__delitem__().
Fred Drake [Tue, 2 Jul 2002 17:27:06 +0000 (17:27 +0000)]
Remove bogus assignment to self.length in NamedNodeMap.__delitem__().

22 years agoMinor markup adjustments, consistency changes, and shorten a long
Fred Drake [Tue, 2 Jul 2002 16:17:58 +0000 (16:17 +0000)]
Minor markup adjustments, consistency changes, and shorten a long
line.

22 years agoAdd refcount info for PyErr_SetFromWindowsErr() and
Fred Drake [Tue, 2 Jul 2002 16:16:18 +0000 (16:16 +0000)]
Add refcount info for PyErr_SetFromWindowsErr() and
PyErr_SetFromWindowsErrWithFilename().

22 years agoDocs for PyErr_SetFromWindowsErrWithFilename() and
Thomas Heller [Tue, 2 Jul 2002 15:47:03 +0000 (15:47 +0000)]
Docs for PyErr_SetFromWindowsErrWithFilename() and
PyErr_SetFromWindowsErr().
Fixes SF# 576016, with additional markup.

22 years agoDo not depend on pymemcompat.h (was only used for PyXML); Martin likes
Fred Drake [Tue, 2 Jul 2002 15:44:36 +0000 (15:44 +0000)]
Do not depend on pymemcompat.h (was only used for PyXML); Martin likes
it all inline.

22 years agoMac OS X Jaguar (developer preview) seems to have a working getaddrinfo().
Jack Jansen [Tue, 2 Jul 2002 14:40:42 +0000 (14:40 +0000)]
Mac OS X Jaguar (developer preview) seems to have a working getaddrinfo().

22 years agoReserved another gc_refs value for untracked objects. Every live gc
Tim Peters [Tue, 2 Jul 2002 00:52:30 +0000 (00:52 +0000)]
Reserved another gc_refs value for untracked objects.  Every live gc
object should now have a well-defined gc_refs value, with clear transitions
among gc_refs states.  As a result, none of the visit_XYZ traversal
callbacks need to check IS_TRACKED() anymore, and those tests were removed.
(They were already looking for objects with specific gc_refs states, and
the gc_refs state of an untracked object can no longer match any other
gc_refs state by accident.)
Added more asserts.
I expect that the gc_next == NULL indicator for an untracked object is
now redundant and can also be removed, but I ran out of time for this.

22 years agoBring this back into sync with PyXML revision 1.58.
Fred Drake [Mon, 1 Jul 2002 14:02:31 +0000 (14:02 +0000)]
Bring this back into sync with PyXML revision 1.58.

22 years agoOK, I couldn't stand it <0.5 wink>: removed all uncertainty about what's
Tim Peters [Mon, 1 Jul 2002 03:52:19 +0000 (03:52 +0000)]
OK, I couldn't stand it <0.5 wink>:  removed all uncertainty about what's
in gc_refs, even at the cost of putting back a test+branch in
visit_decref.

The good news:  since gc_refs became utterly tame then, it became
clear that another special value could be useful.  The move_roots() and
move_root_reachable() passes have now been replaced by a single
move_unreachable() pass.  Besides saving a pass over the generation, this
has a better effect:  most of the time everything turns out to be
reachable, so we were breaking the generation list apart and moving it
into into the reachable list, one element at a time.  Now the reachable
stuff stays in the generation list, and the unreachable stuff is moved
instead.  This isn't quite as good as it sounds, since sometimes we
guess wrongly that a thing is unreachable, and have to move it back again.

Still, overall, it yields a significant (but not dramatic) boost in
collection speed.

22 years agovisit_decref(): Two optimizations.
Tim Peters [Sun, 30 Jun 2002 21:31:03 +0000 (21:31 +0000)]
visit_decref():  Two optimizations.

1. You're not supposed to call this with a NULL argument, although the
   docs could be clearer about that.  The other visit_XYZ() functions
   don't bother to check.  This doesn't either now, although it does
   assert non-NULL-ness now.

2. It doesn't matter whether the object is currently tracked, so don't
   bother checking that either (if it isn't currently tracked, it may
   have some nonsense value in gc_refs, but it doesn't hurt to
   decrement gibberish, and it's cheaper to do so than to make everyone
   test for trackedness).

It would be nice to get rid of the other tests on IS_TRACKED.  Perhaps
trackedness should not be a matter of not being in any gc list, but
should be a matter of being in a new "untracked" gc list.  This list
simply wouldn't be involved in the collection mechanism.  A newly
created object would be put in the untracked list.  Tracking would
simply unlink it and move it into the gen0 list.  Untracking would do
the reverse.  No test+branch needed then.  visit_move() may be vulnerable
then, though, and I don't know how this would work with the trashcan.

22 years agoSF bug #574132: Major GC related performance regression
Tim Peters [Sun, 30 Jun 2002 17:56:40 +0000 (17:56 +0000)]
SF bug #574132:  Major GC related performance regression
"The regression" is actually due to that 2.2.1 had a bug that prevented
the regression (which isn't a regression at all) from showing up.  "The
regression" is actually a glitch in cyclic gc that's been there forever.

As the generation being collected is analyzed, objects that can't be
collected (because, e.g., we find they're externally referenced, or
are in an unreachable cycle but have a __del__ method) are moved out
of the list of candidates.  A tricksy scheme uses negative values of
gc_refs to mark such objects as being moved.  However, the exact
negative value set at the start may become "more negative" over time
for objects not in the generation being collected, and the scheme was
checking for an exact match on the negative value originally assigned.
As a result, objects in generations older than the one being collected
could get scanned too, and yanked back into a younger generation.  Doing
so doesn't lead to an error, but doesn't do any good, and can burn an
unbounded amount of time doing useless work.

A test case is simple (thanks to Kevin Jacobs for finding it!):

x = []
for i in xrange(200000):
    x.append((1,))

Without the patch, this ends up scanning all of x on every gen0 collection,
scans all of x twice on every gen1 collection, and x gets yanked back into
gen1 on every gen0 collection.  With the patch, once x gets to gen2, it's
never scanned again until another gen2 collection, and stays in gen2.

Bugfix candidate, although the code has changed enough that I think I'll
need to port it by hand.  2.2.1 also has a different bug that causes
bound method objects not to get tracked at all (so the test case doesn't
burn absurd amounts of time in 2.2.1, but *should* <wink>).

22 years agoPatch #569753: Remove support for WIN16.
Martin v. Löwis [Sun, 30 Jun 2002 15:26:10 +0000 (15:26 +0000)]
Patch #569753: Remove support for WIN16.
Rename all occurrences of MS_WIN32 to MS_WINDOWS.

22 years agoBump required PyXML version to 0.6.5.
Martin v. Löwis [Sun, 30 Jun 2002 15:08:22 +0000 (15:08 +0000)]
Bump required PyXML version to 0.6.5.

22 years agoImplement the encoding argument for toxml and toprettyxml.
Martin v. Löwis [Sun, 30 Jun 2002 15:05:00 +0000 (15:05 +0000)]
Implement the encoding argument for toxml and toprettyxml.
Document toprettyxml.

22 years agoMerge from PyXML:
Martin v. Löwis [Sun, 30 Jun 2002 07:38:50 +0000 (07:38 +0000)]
Merge from PyXML:
[1.3] Added documentation of the namespace URI for elements with no namespace.
[1.4] New property http://www.python.org/sax/properties/encoding.
[1.5] Support optional string interning in pyexpat.

22 years agoAdd xml namespace initially (PyXML 1.19).
Martin v. Löwis [Sun, 30 Jun 2002 07:32:56 +0000 (07:32 +0000)]
Add xml namespace initially (PyXML 1.19).

22 years agoFix spacing.
Martin v. Löwis [Sun, 30 Jun 2002 07:27:30 +0000 (07:27 +0000)]
Fix spacing.

22 years agoMerge changes from PyXML:
Martin v. Löwis [Sun, 30 Jun 2002 07:21:24 +0000 (07:21 +0000)]
Merge changes from PyXML:
[1.15]
Added understanding of the feature_validation, feature_external_pes,
and feature_string_interning features.
Added support for the feature_external_ges feature.
Added support for the property_xml_string property.
[1.16]
Made it recognize the namespace prefixes feature.
[1.17]
removed erroneous first line
[1.19]
Support optional string interning in pyexpat.
[1.21]
Restore compatibility with versions of Python that did not support weak
references.  These do not get the cyclic reference fix, but they will
continue to work as they did before.
[1.22]
Activate entity processing unless standalone.

22 years agoDefine PyDoc_STRVAR if it is not available (PyXML 1.54).
Martin v. Löwis [Sun, 30 Jun 2002 06:40:55 +0000 (06:40 +0000)]
Define PyDoc_STRVAR if it is not available (PyXML 1.54).
Remove support for Python 1.5 (PyXML 1.55).

22 years agoUndo usage of PyOS_snprintf (rev. 1.51 of PyXML).
Martin v. Löwis [Sun, 30 Jun 2002 06:03:35 +0000 (06:03 +0000)]
Undo usage of PyOS_snprintf (rev. 1.51 of PyXML).

22 years agoFixed bug 574978 shutil example out of sync with source code
Raymond Hettinger [Sun, 30 Jun 2002 04:43:20 +0000 (04:43 +0000)]
Fixed bug 574978 shutil example out of sync with source code

22 years agoFix bug 575221 referred to dictionary type instead of dict.
Raymond Hettinger [Sun, 30 Jun 2002 04:32:38 +0000 (04:32 +0000)]
Fix bug 575221 referred to dictionary type instead of dict.

22 years agoCode modernization. Replace v=s[i]; del s[i] with single lookup v=s.pop(i)
Raymond Hettinger [Sun, 30 Jun 2002 03:39:14 +0000 (03:39 +0000)]
Code modernization.  Replace v=s[i]; del s[i] with single lookup v=s.pop(i)

22 years agoClarify the version information for the unicode() built-in.
Fred Drake [Sat, 29 Jun 2002 16:06:47 +0000 (16:06 +0000)]
Clarify the version information for the unicode() built-in.
Closes SF bug #575272.

22 years agoAnother test of long headers.
Barry Warsaw [Sat, 29 Jun 2002 15:23:39 +0000 (15:23 +0000)]
Another test of long headers.

22 years agoOleg Broytmann's support for RFC 2231 encoded parameters, SF patch #549133
Barry Warsaw [Sat, 29 Jun 2002 05:58:45 +0000 (05:58 +0000)]
Oleg Broytmann's support for RFC 2231 encoded parameters, SF patch #549133

New test cases.

22 years agoOleg Broytmann's support for RFC 2231 encoded parameters, SF patch #549133
Barry Warsaw [Sat, 29 Jun 2002 05:58:04 +0000 (05:58 +0000)]
Oleg Broytmann's support for RFC 2231 encoded parameters, SF patch #549133

Specifically,

decode_rfc2231(), encode_rfc2231(): Functions to encode and decode RFC
2231 style parameters.

decode_params(): Function to decode a list of parameters.

22 years agoOleg Broytmann's support for RFC 2231 encoded parameters, SF patch #549133
Barry Warsaw [Sat, 29 Jun 2002 05:56:15 +0000 (05:56 +0000)]
Oleg Broytmann's support for RFC 2231 encoded parameters, SF patch #549133

Specifically,

_formatparam(): Teach this about encoded `param' arguments, which are
a 3-tuple of items (charset, language, value).  language is ignored.

_unquotevalue(): Handle both 3-tuple RFC 2231 values and unencoded
values.

_get_params_preserve(): Decode the parameters before returning them.

get_params(), get_param(): Use _unquotevalue().

get_filename(), get_boundary(): Teach these about encoded (3-tuple)
parameters.

22 years agotest_multilingual(): Test for Header.__unicode__().
Barry Warsaw [Sat, 29 Jun 2002 03:27:27 +0000 (03:27 +0000)]
test_multilingual(): Test for Header.__unicode__().

22 years ago__unicode__(): Patch # 541263 by Mikhail Zabaluev, implementation
Barry Warsaw [Sat, 29 Jun 2002 03:26:58 +0000 (03:26 +0000)]
__unicode__(): Patch # 541263 by Mikhail Zabaluev, implementation
modified by Barry.

22 years agoAdd documentation for new textwrap module.
Greg Ward [Sat, 29 Jun 2002 02:38:50 +0000 (02:38 +0000)]
Add documentation for new textwrap module.

22 years agoTypo fix.
Greg Ward [Sat, 29 Jun 2002 01:23:45 +0000 (01:23 +0000)]
Typo fix.

22 years agoTrack change of begin() to _begin().
Jeremy Hylton [Fri, 28 Jun 2002 23:54:30 +0000 (23:54 +0000)]
Track change of begin() to _begin().

22 years agoLots of new and updated tests to check for proper ascii header
Barry Warsaw [Fri, 28 Jun 2002 23:49:33 +0000 (23:49 +0000)]
Lots of new and updated tests to check for proper ascii header
folding.  Note that some of the Japanese tests have changed, but I
don't really know if they are correct or not. :(

Someone with Japanese and RFC 2047 expertise, please take a look!

22 years ago_max_append(): When adding the string `s' to its own line, it should
Barry Warsaw [Fri, 28 Jun 2002 23:48:23 +0000 (23:48 +0000)]
_max_append(): When adding the string `s' to its own line, it should
be lstrip'd so that old continuation whitespace is replaced by that
specified in Header's continuation_ws parameter.

22 years agoTeach this class about "highest-level syntactic breaks" but only for
Barry Warsaw [Fri, 28 Jun 2002 23:46:53 +0000 (23:46 +0000)]
Teach this class about "highest-level syntactic breaks" but only for
headers with no charset or 'us-ascii' charsets.  Actually this is only
partially true: we know about semicolons (but not true parameters) and
we know about whitespace (but not technically folding whitespace).
Still it should be good enough for all practical purposes.

Other changes include:

__init__(): Add a continuation_ws argument, which defaults to a single
space.  Set this to change the whitespace used for continuation lines
when a header must be split.  Also, changed the way header line
lengths are calculated, so that they take into account continuation_ws
(when tabs-expanded) and any provided header_name parameter.  This
should do much better on returning split headers for which the first
and subsequent lines must fit into a specified width.

guess_maxlinelen(): Removed.  I don't think we need this method as
part of the public API.

encode_chunks() -> _encode_chunks(): I don't think we need this one as
part of the public API either.

22 years ago_split_header(): The code here was terminally broken because it didn't
Barry Warsaw [Fri, 28 Jun 2002 23:41:42 +0000 (23:41 +0000)]
_split_header(): The code here was terminally broken because it didn't
know anything about RFC 2047 encoded headers.  Fortunately we have a
perfectly good header splitter in Header.encode().  So we just call
that to give us a properly formatted and split header.
Header.encode() didn't know about "highest-level syntactic breaks" but
that's been fixed now too.

22 years agoSimplify HTTPSConnection constructor.
Jeremy Hylton [Fri, 28 Jun 2002 23:38:14 +0000 (23:38 +0000)]
Simplify HTTPSConnection constructor.

See discussion in SF bug 458463.

22 years agoClose SF patch 523944: importing modules with foreign newlines.
Jeremy Hylton [Fri, 28 Jun 2002 23:32:51 +0000 (23:32 +0000)]
Close SF patch 523944: importing modules with foreign newlines.

Didn't use the patch, because universal newlines support made it easy.
It might be worth fixing the actual problem in the 2.2 maintenance
branch, in which case the patch is still needed.

22 years agoAdded character data buffering to pyexpat parser objects.
Fred Drake [Fri, 28 Jun 2002 22:56:48 +0000 (22:56 +0000)]
Added character data buffering to pyexpat parser objects.

Setting the buffer_text attribute to true causes the parser to collect
character data, waiting as long as possible to report it to the Python
callback.  This can save an enormous number of callbacks from C to
Python, which can be a substantial performance improvement.

buffer_text defaults to false.

22 years agoAdd Bob Kline of HTTP 100 fame.
Jeremy Hylton [Fri, 28 Jun 2002 22:39:56 +0000 (22:39 +0000)]
Add Bob Kline of HTTP 100 fame.

22 years agoFixes for two separate HTTP/1.1 bugs: 100 responses and HTTPS connections.
Jeremy Hylton [Fri, 28 Jun 2002 22:38:01 +0000 (22:38 +0000)]
Fixes for two separate HTTP/1.1 bugs: 100 responses and HTTPS connections.

The HTTPResponse class now handles 100 continue responses, instead of
choking on them.  It detects them internally in the _begin() method
and ignores them.  Based on a patch by Bob Kline.

This closes SF bugs 498149 and 551273.

The FakeSocket class (for SSL) is now usable with HTTP/1.1
connections.  The old version of the code could not work with
persistent connections, because the makefile() implementation read
until EOF before returning.  If the connection is persistent, the
server sends a response and leaves the connection open.  A client that
reads until EOF will block until the server gives up on the connection
-- more than a minute in my test case.

The problem was fixed by implementing a reasonable makefile().  It
reads data only when it is needed by the layers above it.  It's
implementation uses an internal buffer with a default size of 8192.

Also, rename begin() method of HTTPResponse to _begin() because it
should only be called by the HTTPConnection.

22 years agopyexpat code cleanup and minor refactorings:
Fred Drake [Fri, 28 Jun 2002 22:29:01 +0000 (22:29 +0000)]
pyexpat code cleanup and minor refactorings:

The handlers array on each parser now has the invariant that None will
never be set as a handler; it will always be NULL or a Python-level
value passed in for the specific handler.

have_handler():  Return true if there is a Python handler for a
    particular event.

get_handler_name():  Return a string object giving the name of a
    particular handler.  This caches the string object so it doesn't
    need to be created more than once.

get_parse_result():  Helper to allow the Parse() and ParseFile()
    methods to share the same logic for determining the return value
    or exception state.

PyUnknownEncodingHandler(), PyModule_AddIntConstant():
    Made these helpers static.  (The later is only defined for older
    versions of Python.)

pyxml_UpdatePairedHandlers(), pyxml_SetStartElementHandler(),
pyxml_SetEndElementHandler(), pyxml_SetStartNamespaceDeclHandler(),
pyxml_SetEndNamespaceDeclHandler(), pyxml_SetStartCdataSection(),
pyxml_SetEndCdataSection(), pyxml_SetStartDoctypeDeclHandler(),
pyxml_SetEndDoctypeDeclHandler():
    Removed.  These are no longer needed with Expat 1.95.x.

handler_info:
    Use the setter functions provided by Expat 1.95.x instead of the
    pyxml_Set*Handler() functions which have been removed.

Minor code formatting changes for consistency.
Trailing whitespace removed.

22 years agoFix small bug. The count of objects in all generations younger then the
Neil Schemenauer [Fri, 28 Jun 2002 19:16:04 +0000 (19:16 +0000)]
Fix small bug.  The count of objects in all generations younger then the
collected one should be zeroed.

22 years agoPatch 574531/Bug 574570 - allow freeze on windows to use the _winreg
Mark Hammond [Fri, 28 Jun 2002 01:13:02 +0000 (01:13 +0000)]
Patch 574531/Bug 574570 - allow freeze on windows to use the _winreg
extension.

22 years agoThe standard definition file is now called mwerks_shcarbon_plugin.h.
Jack Jansen [Thu, 27 Jun 2002 22:10:19 +0000 (22:10 +0000)]
The standard definition file is now called mwerks_shcarbon_plugin.h.

22 years agoStarted on support for using standard setup.py to build at least
Jack Jansen [Thu, 27 Jun 2002 22:09:19 +0000 (22:09 +0000)]
Started on support for using standard setup.py to build at least
the "standard" modules. Unfinished, but shouldn't harm anything.

22 years agoMore fixes for building MacPython extension modules. It now actually succeeds
Jack Jansen [Thu, 27 Jun 2002 22:06:49 +0000 (22:06 +0000)]
More fixes for building MacPython extension modules. It now actually succeeds
in building various modules.

22 years agomerged with SLAB codebase (version 1.0.1)
Fredrik Lundh [Thu, 27 Jun 2002 21:36:21 +0000 (21:36 +0000)]
merged with SLAB codebase (version 1.0.1)

22 years agomade the code match the comments (1.5.2 compatibility)
Fredrik Lundh [Thu, 27 Jun 2002 20:08:25 +0000 (20:08 +0000)]
made the code match the comments (1.5.2 compatibility)

22 years agoFix bug #570057: Broken pre.subn() (and pre.sub())
Fredrik Lundh [Thu, 27 Jun 2002 19:59:27 +0000 (19:59 +0000)]
Fix bug #570057: Broken pre.subn() (and pre.sub())

This should be backported to the 2.2.X series (how
do I do that?)

22 years agoIntegrate the tests for name interning from PyXML (test_pyexpat.py
Fred Drake [Thu, 27 Jun 2002 19:41:51 +0000 (19:41 +0000)]
Integrate the tests for name interning from PyXML (test_pyexpat.py
revision 1.12 in PyXML).

22 years agoIntegrate the changes from PyXML's version of pyexpat.c revisions
Fred Drake [Thu, 27 Jun 2002 19:40:48 +0000 (19:40 +0000)]
Integrate the changes from PyXML's version of pyexpat.c revisions
1.47, 1.48, 1.49 (name interning support).

22 years agoAdded support for some of the more recently defined macros and
Fred Drake [Thu, 27 Jun 2002 18:38:06 +0000 (18:38 +0000)]
Added support for some of the more recently defined macros and
environments.

22 years agoClean up some markup.
Fred Drake [Thu, 27 Jun 2002 18:30:34 +0000 (18:30 +0000)]
Clean up some markup.

22 years agodis.dis() also supports modules
Neal Norwitz [Wed, 26 Jun 2002 22:32:47 +0000 (22:32 +0000)]
dis.dis() also supports modules

22 years agoDisabled non-carbon builds (for the moment still optional) and made
Jack Jansen [Wed, 26 Jun 2002 22:06:08 +0000 (22:06 +0000)]
Disabled non-carbon builds (for the moment still optional) and made
these scripts work with the new precompiled headers.

22 years agoWhitespace normalization (remove tabs)
Neal Norwitz [Wed, 26 Jun 2002 22:05:33 +0000 (22:05 +0000)]
Whitespace normalization (remove tabs)

22 years agoFix various typos reported to python-docs.
Fred Drake [Wed, 26 Jun 2002 21:52:26 +0000 (21:52 +0000)]
Fix various typos reported to python-docs.

22 years agoFix typo reported to python-docs.
Fred Drake [Wed, 26 Jun 2002 21:25:15 +0000 (21:25 +0000)]
Fix typo reported to python-docs.

22 years agoMake the prototype match the declaration in the GUSI header files.
Jack Jansen [Wed, 26 Jun 2002 20:43:24 +0000 (20:43 +0000)]
Make the prototype match the declaration in the GUSI header files.

22 years agoUndefine DPRINTF before defining it, there was a conflict with some other
Jack Jansen [Wed, 26 Jun 2002 20:41:30 +0000 (20:41 +0000)]
Undefine DPRINTF before defining it, there was a conflict with some other
definition.

22 years agoUndefine TRUE and FALSE before redefining them.
Jack Jansen [Wed, 26 Jun 2002 20:40:42 +0000 (20:40 +0000)]
Undefine TRUE and FALSE before redefining them.