mirror of
https://github.com/python/cpython.git
synced 2025-11-24 20:30:18 +00:00
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60878,60880-60892,60894-60898 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r60876 | georg.brandl | 2008-02-17 16:14:10 +0100 (Sun, 17 Feb 2008) | 2 lines Fix function name. ........ r60877 | facundo.batista | 2008-02-17 17:21:13 +0100 (Sun, 17 Feb 2008) | 4 lines Now we handle different the backup copy, because of security issues regarding user/group and permissions. Fixes 1050828. ........ r60878 | facundo.batista | 2008-02-17 19:59:29 +0100 (Sun, 17 Feb 2008) | 4 lines Issue 2112. mmap does not raises EnvironmentError no more, but a subclass of it. Thanks John Lenton. ........ r60882 | amaury.forgeotdarc | 2008-02-17 21:56:31 +0100 (Sun, 17 Feb 2008) | 5 lines Compilation was broken on Windows since the introduction of Advanced String Formatting. Only PCBuild (vs9) was really tested. Changes for older compilers were done manually. ........ r60883 | georg.brandl | 2008-02-17 22:18:55 +0100 (Sun, 17 Feb 2008) | 2 lines #2133: fix HTML color spec. ........ r60884 | facundo.batista | 2008-02-18 04:43:43 +0100 (Mon, 18 Feb 2008) | 5 lines Issue #1916. Added isgenerator() and isgeneratorfunction() to inspect.py. Thanks Javi Mansilla for patch review and corrections. ........ r60885 | facundo.batista | 2008-02-18 13:48:43 +0100 (Mon, 18 Feb 2008) | 4 lines Issue 1224. Now we support again the double slash in the URL. Thanks Anthony Lenton. ........ r60887 | eric.smith | 2008-02-18 15:25:02 +0100 (Mon, 18 Feb 2008) | 1 line Temporarily removed float tests. See issue 1600. ........ r60891 | kristjan.jonsson | 2008-02-18 18:40:47 +0100 (Mon, 18 Feb 2008) | 1 line Perform correct handling of stack overflow for windows: Catch the correct exception code and reset the overflow condition when handled. ........
This commit is contained in:
parent
5edc1c29ea
commit
7131fd957d
15 changed files with 1979 additions and 41 deletions
|
|
@ -7,8 +7,9 @@ It also provides some help for examining source code and class layout.
|
|||
|
||||
Here are some of the useful functions provided by this module:
|
||||
|
||||
ismodule(), isclass(), ismethod(), isfunction(), istraceback(),
|
||||
isframe(), iscode(), isbuiltin(), isroutine() - check object types
|
||||
ismodule(), isclass(), ismethod(), isfunction(), isgeneratorfunction(),
|
||||
isgenerator(), istraceback(), isframe(), iscode(), isbuiltin(),
|
||||
isroutine() - check object types
|
||||
getmembers() - get members of an object that satisfy a given condition
|
||||
|
||||
getfile(), getsourcefile(), getsource() - find an object's source code
|
||||
|
|
@ -29,9 +30,20 @@ Here are some of the useful functions provided by this module:
|
|||
__author__ = 'Ka-Ping Yee <ping@lfw.org>'
|
||||
__date__ = '1 Jan 2001'
|
||||
|
||||
import sys, os, types, re, dis, imp, tokenize, linecache
|
||||
import sys
|
||||
import os
|
||||
import types
|
||||
import string
|
||||
import re
|
||||
import dis
|
||||
import imp
|
||||
import tokenize
|
||||
import linecache
|
||||
from operator import attrgetter
|
||||
from collections import namedtuple
|
||||
# These constants are from Include/code.h.
|
||||
CO_OPTIMIZED, CO_NEWLOCALS, CO_VARARGS, CO_VARKEYWORDS = 0x1, 0x2, 0x4, 0x8
|
||||
CO_NESTED, CO_GENERATOR, CO_NOFREE = 0x10, 0x20, 0x40
|
||||
|
||||
# ----------------------------------------------------------- type-checking
|
||||
def ismodule(object):
|
||||
|
|
@ -137,6 +149,33 @@ def isfunction(object):
|
|||
__kwdefaults__ dict of keyword only parameters with defaults"""
|
||||
return isinstance(object, types.FunctionType)
|
||||
|
||||
def isgeneratorfunction(object):
|
||||
"""Return true if the object is a user-defined generator function.
|
||||
|
||||
Generator function objects provides same attributes as functions.
|
||||
|
||||
See isfunction.__doc__ for attributes listing."""
|
||||
if (isfunction(object) or ismethod(object)) and \
|
||||
object.__code__.co_flags & CO_GENERATOR:
|
||||
return True
|
||||
|
||||
def isgenerator(object):
|
||||
"""Return true if the object is a generator.
|
||||
|
||||
Generator objects provide these attributes:
|
||||
__iter__ defined to support interation over container
|
||||
close raises a new GeneratorExit exception inside the
|
||||
generator to terminate the iteration
|
||||
gi_code code object
|
||||
gi_frame frame object or possibly None once the generator has
|
||||
been exhausted
|
||||
gi_running set to 1 when generator is executing, 0 otherwise
|
||||
next return the next item from the container
|
||||
send resumes the generator and "sends" a value that becomes
|
||||
the result of the current yield-expression
|
||||
throw used to raise an exception inside the generator"""
|
||||
return isinstance(object, types.GeneratorType)
|
||||
|
||||
def istraceback(object):
|
||||
"""Return true if the object is a traceback.
|
||||
|
||||
|
|
@ -198,6 +237,10 @@ def isroutine(object):
|
|||
or ismethod(object)
|
||||
or ismethoddescriptor(object))
|
||||
|
||||
def isgenerator(object):
|
||||
"""Return true if the object is a generator object."""
|
||||
return isinstance(object, types.GeneratorType)
|
||||
|
||||
def getmembers(object, predicate=None):
|
||||
"""Return all members of an object as (name, value) pairs sorted by name.
|
||||
Optionally, only return members that satisfy a given predicate."""
|
||||
|
|
@ -670,9 +713,6 @@ def getclasstree(classes, unique=0):
|
|||
return walktree(roots, children, None)
|
||||
|
||||
# ------------------------------------------------ argument list extraction
|
||||
# These constants are from Python's compile.h.
|
||||
CO_OPTIMIZED, CO_NEWLOCALS, CO_VARARGS, CO_VARKEYWORDS = 1, 2, 4, 8
|
||||
|
||||
Arguments = namedtuple('Arguments', 'args, varargs, varkw')
|
||||
|
||||
def getargs(co):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue