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.
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.
Jack Jansen [Wed, 26 Jun 2002 20:37:40 +0000 (20:37 +0000)]
Changed some prototypes to match the exact definition in some faraway Apple
header files. If we're building with precompiled headers these are in scope.
Jack Jansen [Wed, 26 Jun 2002 15:44:30 +0000 (15:44 +0000)]
Fixed a few showstoppers in the process of making MacPython use setup.py to build it's exension modules (in stead of relying on a private mechanism). It definitely doesn't work yet, but it looks promising.
Jack Jansen [Wed, 26 Jun 2002 15:00:29 +0000 (15:00 +0000)]
This module broke on the Mac (where it can't work, but distutils seems to import it anyway) because it imported pwd and grp. Moved the import to inside the routine where they're used.
Kurt B. Kaiser [Wed, 26 Jun 2002 02:32:09 +0000 (02:32 +0000)]
Shutdown subprocess debugger and associated Proxies/Adapters when closing
the Idle debugger.
M PyShell.py : Call RemoteDebugger.close_remote_debugger()
M RemoteDebugger.py: Add close_remote_debugger(); further polish code used
to start the debugger sections.
M rpc.py : Add comments on Idlefork methods register(), unregister()
comment out unused methods
M run.py : Add stop_the_debugger(); polish code
Fred Drake [Tue, 25 Jun 2002 17:10:50 +0000 (17:10 +0000)]
Talk about interfaces rather than implementation classes where appropriate.
Add hyperlinks to make the documentation on the Attributes and AttributesNS
interfaces more discoverable.
Closes SF bug #484603.
Skip Montanaro [Tue, 25 Jun 2002 05:53:48 +0000 (05:53 +0000)]
Not sure how I forgot to check these in - thought I did all the files in one
fell swoop. Anyway, this just deletes a couple checks for dbm-type header
files that are now performed in setup.py. See patch 553108 for details.
Barry Warsaw [Mon, 24 Jun 2002 20:27:33 +0000 (20:27 +0000)]
In the Extension() call, add runtime_library_dirs so that a useful
-R/--rpath flag gets passed to the linker. Source builds of
BerkeleyDB do their default installs in locations not normally on
ld.so's search path.
Kurt B. Kaiser [Mon, 24 Jun 2002 17:03:37 +0000 (17:03 +0000)]
Clear associated breakpoints when closing an edit window.
M Debugger.py : Added clear_file_breaks()
M EditorWindow.py : Clear breaks when closed, commments->docstrings,
comment out some debugging print statements
M PyShell.py : comments->docstrings ; clarify extending EditorWindow
methods.
M RemoteDebugger.py: Add clear_all_file_breaks() functionality,
clarify some comments.
Jack Jansen [Fri, 21 Jun 2002 14:48:38 +0000 (14:48 +0000)]
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
OSX framework build process. Things fixed/modified:
- the filesystem case-sensitivity test now works for builds outside
the source directory
- various other fixes for building outside the source directory
- python.app now has a target in the main Makefile
- WASTE and AquaTk are found more automatically
Jack Jansen [Thu, 20 Jun 2002 21:34:35 +0000 (21:34 +0000)]
Disable the test for importing very long lists for MacPython: it triggers
an out-of-memory condition (and a hang on OSX). Filed a bug report
(#571845) to make sure this is eventually fixed.
Fred Drake [Thu, 20 Jun 2002 18:31:21 +0000 (18:31 +0000)]
Clean up docstrings:
- Include a blank line between the signature line and the description
(Guido sez).
- Don't include "-> None" for API functions that always return None
because they don't have a meaningful return value.
Fred Drake [Thu, 20 Jun 2002 14:23:15 +0000 (14:23 +0000)]
Simplify the production for argument list, making sure that it
actually allows all the legal syntax, and nothing else. Previously,
it did not allow a call like func(arg, **dictionary).
This closes (again!) SF bug #493243.
Guido van Rossum [Thu, 20 Jun 2002 03:40:16 +0000 (03:40 +0000)]
I get failures half of the time that I run this, so I'll disable
running this as part of the regular test suite again, until I have
time to figure out why.
Jeremy Hylton [Tue, 18 Jun 2002 18:42:41 +0000 (18:42 +0000)]
Add a default implementation of compile() to the base class.
The default implementation calls _compile() to compile individual
files. This method must be implemented by the subclass. This change
factors out most of the remaining common code in all the compilers
except mwerks.
Fred Drake [Tue, 18 Jun 2002 18:42:01 +0000 (18:42 +0000)]
Played contortionist games with the argument_list production so it
might be easier to understand.
This relates to SF bug #493243, which will be closed.