Commit Graph

35959 Commits

Author SHA1 Message Date
Barry Warsaw 00decd7835 Patch #1520294: Support for getset and member descriptors in types.py,
inspect.py, and pydoc.py.  Specifically, this allows for querying the type of
an object against these built-in C types and more importantly, for getting
their docstrings printed in the interactive interpreter's help() function.

This patch includes a new built-in module called _types which provides
definitions of getset and member descriptors for use by the types.py module.
These types are exposed as types.GetSetDescriptorType and
types.MemberDescriptorType.  Query functions are provided as
inspect.isgetsetdescriptor() and inspect.ismemberdescriptor().  The
implementations of these are robust enough to work with Python implementations
other than CPython, which may not have these fundamental types.

The patch also includes documentation and test suite updates.

I commit these changes now under these guiding principles:

1. Silence is assent.  The release manager has not said "no", and of the few
   people that cared enough to respond to the thread, the worst vote was "0".

2. It's easier to ask for forgiveness than permission.

3. It's so dang easy to revert stuff in svn, that you could view this as a
   forcing function. :)

Windows build patches will follow.
2006-07-27 23:43:15 +00:00
Andrew M. Kuchling fc0e61d9b6 Add example 2006-07-27 22:49:54 +00:00
Andrew M. Kuchling 752e28ad9f Add example 2006-07-27 22:49:38 +00:00
Andrew M. Kuchling 4b6d53780d Reword paragraph 2006-07-27 22:40:05 +00:00
Tim Peters 08310d6cb7 check_node(): stop spraying mystery output to stderr.
When a node number disagrees, keep track of all sources & the
node numbers they reported, and stick all that in the error message.

Changed all callers to supply a non-empty "source" argument; made
the "source" argument non-optional.

On my box, test_uuid still fails, but with the less confusing output:

AssertionError: different sources disagree on node:
    from source 'getnode1', node was 00038a000015
    from source 'getnode2', node was 00038a000015
    from source 'ipconfig', node was 001111b2b7bf

Only the last one appears to be correct; e.g.,

C:\Code\python\PCbuild>getmac

Physical Address    Transport Name
=================== ==========================================================
00-11-11-B2-B7-BF   \Device\Tcpip_{190FB163-5AFD-4483-86A1-2FE16AC61FF1}
62-A1-AC-6C-FD-BE   \Device\Tcpip_{8F77DF5A-EA3D-4F1D-975E-D472CEE6438A}
E2-1F-01-C6-5D-88   \Device\Tcpip_{CD18F76B-2EF3-409F-9B8A-6481EE70A1E4}

I can't find anything on my box with MAC 00-03-8a-00-00-15, and am
not clear on where that comes from.
2006-07-27 20:47:24 +00:00
Andrew M. Kuchling cff784caa7 If binhex is higher-level than binascii, it should come first in the chapter 2006-07-27 19:12:49 +00:00
Andrew M. Kuchling 40b35aa5cc Mention base64 module; rewrite last sentence to be more positive 2006-07-27 19:11:07 +00:00
Andrew M. Kuchling cbe801697b Add punctuation mark; add some examples 2006-07-27 19:07:29 +00:00
Andrew M. Kuchling f60eeb1738 Update URL; add example 2006-07-27 18:53:33 +00:00
Andrew M. Kuchling 9ad7a60f62 Repair typos 2006-07-27 18:44:10 +00:00
Andrew M. Kuchling 623005e94a Add missing word 2006-07-27 18:42:41 +00:00
Andrew M. Kuchling 5ee6616528 Typo fix ('publically' is rare, poss. non-standard) 2006-07-27 18:41:21 +00:00
Thomas Heller 09a6f6aad2 Remove code that is no longer used (ctypes.com).
Fix the DllGetClassObject and DllCanUnloadNow so that they forward the
call to the comtypes.server.inprocserver module.

The latter was never documented, never used by published code, and
didn't work anyway, so I think it does not deserve a NEWS entry (but I
might be wrong).
2006-07-27 18:39:55 +00:00
Andrew M. Kuchling 9dd8dc3fee Add example 2006-07-27 18:37:33 +00:00
Georg Brandl 75a832d4e7 Make uuid test suite pass on this box by requesting output with LC_ALL=C. 2006-07-27 16:08:15 +00:00
Georg Brandl 6cea7d74ad Amend news entry. 2006-07-27 15:38:33 +00:00
Tim Peters daea035bac Whitespace normalization. 2006-07-27 15:11:00 +00:00
Tim Peters 3e246a811d News for patch #1529686. 2006-07-27 15:09:20 +00:00
Georg Brandl f102fc5f86 Add test_main() methods. These three tests were never run
by regrtest.py.

We really need a simpler testing framework.
2006-07-27 15:05:36 +00:00
Andrew M. Kuchling 9aed98feb2 Reformat docstring; fix typo 2006-07-27 12:18:20 +00:00
Martin v. Löwis 997ceffe07 Bump distutils version to 2.5, as several new features
have been introduced since 2.4.
2006-07-27 06:38:16 +00:00
Neal Norwitz 37f694f21b No functional change. Add comment and assert to describe why there cannot be overflow which was reported by Klocwork. Discussed on python-dev 2006-07-27 04:04:50 +00:00
Neal Norwitz 101bac205d Closure can't be NULL at this point since we know it's a tuple.
Reported by Klocwork # 74.
2006-07-27 03:55:39 +00:00
Neal Norwitz e4abc232d5 Don't kill a normal instance of python running on windows when checking
to kill a cygwin instance.  build\\python.exe was matching a normal windows
instance.  Prefix that with a \\ to ensure build is a directory and not
PCbuild.  As discussed on python-dev.
2006-07-27 03:51:58 +00:00
Tim Peters bc24eee333 Bug #1521947: possible bug in mystrtol.c with recent gcc.
In general, C doesn't define anything about what happens when
an operation on a signed integral type overflows, and PyOS_strtol()
did several formally undefined things of that nature on signed
longs.  Some version of gcc apparently tries to exploit that now,
and PyOS_strtol() could fail to detect overflow then.

Tried to repair all that, although it seems at least as likely to me
that we'll get screwed by bad platform definitions for LONG_MIN
and/or LONG_MAX now.  For that reason, I don't recommend backporting
this.

Note that I have no box on which this makes a lick of difference --
can't really test it, except to note that it didn't break anything
on my boxes.

Silent change:  PyOS_strtol() used to return the hard-coded 0x7fffffff
in case of overflow.  Now it returns LONG_MAX.  They're the same only on
32-bit boxes (although C doesn't guarantee that either ...).
2006-07-27 01:14:53 +00:00
Tim Peters 95621b25dc Whitespace normalization. 2006-07-26 23:23:15 +00:00
Phillip J. Eby eb26ea3f83 Allow the 'onerror' argument to walk_packages() to catch any Exception, not
just ImportError.  This allows documentation tools to better skip unimportable
packages.
2006-07-26 19:48:27 +00:00
Andrew M. Kuchling ab26004923 Use sys.exc_info() 2006-07-26 18:15:45 +00:00
Andrew M. Kuchling 44c668d15e Use sys.exc_info() 2006-07-26 18:03:12 +00:00
Andrew M. Kuchling 10c2b55057 Put news item in right section 2006-07-26 17:22:21 +00:00
Andrew M. Kuchling 93c928ebca Minor grammar fix 2006-07-26 17:19:39 +00:00
Andrew M. Kuchling a1da20472f Correct error message 2006-07-26 17:18:01 +00:00
Andrew M. Kuchling 55b0a0eb0d [Bug #1471938] Fix build problem on Solaris 8 by conditionalizing the use of mvwgetnstr(); it was conditionalized a few lines below. Fix from Paul Eggert. I also tried out the STRICT_SYSV_CURSES case and am therefore removing the 'untested' comment. 2006-07-26 17:16:52 +00:00
Martin v. Löwis 9298eff5f9 Bug #978833: Really close underlying socket in _socketobject.close.
Fix httplib.HTTPConnection.getresponse to not close the
socket if it is still needed for the response.
2006-07-26 12:12:56 +00:00
Georg Brandl 5f135787ec Part of bug #1523610: fix miscalculation of buffer length.
Also add a guard against NULL in converttuple and add a test case
(that previously would have crashed).
2006-07-26 08:03:10 +00:00
Georg Brandl 0619a329e8 Bug #1459963: properly capitalize HTTP header names. 2006-07-26 07:40:17 +00:00
Georg Brandl cf0c1729dc NEWS entry for #1525766. 2006-07-26 07:23:32 +00:00
Barry Warsaw d92ae78bdb Forward port some fixes that were in email 2.5 but for some reason didn't make
it into email 4.0.  Specifically, in Message.get_content_charset(), handle RFC
2231 headers that contain an encoding not known to Python, or a character in
the data that isn't in the charset encoding.  Also forward port the
appropriate unit tests.
2006-07-26 05:54:46 +00:00
Neal Norwitz 9815f8b252 Hmm, only python2.x is installed, not plain python. Did that change recently? 2006-07-26 04:00:18 +00:00
Tim Peters 91343075dc Whitespace normalization. 2006-07-25 22:30:24 +00:00
Ronald Oussoren 3075e16c51 Fix bug #1517990: IDLE keybindings on OSX
This adds a new key definition for OSX, which is slightly different from the
classic mac definition.

Also add NEWS item for a couple of bugfixes I added recently.
2006-07-25 20:28:55 +00:00
Ronald Oussoren bfbfe1f8b9 Fix for bug #1525447 (renaming to MacOSmodule.c would also work, but not
without causing problems for anyone that is on a case-insensitive filesystem).

Setup.py tries to compile the MacOS extension from MacOSmodule.c, while the
actual file is named macosmodule.c. This is no problem on the (default)
case-insensitive filesystem, but doesn't work on case-sensitive filesystems.
2006-07-25 19:20:54 +00:00
Ronald Oussoren 518b95c376 Install the compatibility symlink to libpython.a on OSX using 'ln -sf' instead
of 'ln -s', this avoid problems when reinstalling python.
2006-07-25 19:13:35 +00:00
Armin Rigo b62efad943 Document the crashers that will not go away soon as "won't fix",
and explain why.
2006-07-25 18:38:39 +00:00
Armin Rigo 5a9a2a3fe1 Added another crasher, which hit me today (I was not intentionally
writing such code, of course, but it took some gdb time to figure out
what my bug was).
2006-07-25 18:11:07 +00:00
Armin Rigo 4df7c0a55b Document why is and is not a good way to fix the gc_inspection crasher. 2006-07-25 18:09:57 +00:00
Brett Cannon 813669f911 Fix a bug in the messages for an assert failure where not enough arguments to a string
were being converted in the format.
2006-07-25 17:34:36 +00:00
Brett Cannon f23ad3d65e Add comment for changes to test_ossaudiodev. 2006-07-25 17:32:20 +00:00
Georg Brandl 69b9b677b0 Patch #1525766: correctly pass onerror arg to recursive calls
of pkg.walk_packages. Also improve the docstrings.
2006-07-25 10:22:34 +00:00
Martin v. Löwis 2b2d2974e7 Revert incomplete checkin. 2006-07-25 10:11:14 +00:00