forked from python/cpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,6050…
…1-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://[email protected]/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 python#2133: fix HTML color spec. ........ r60884 | facundo.batista | 2008-02-18 04:43:43 +0100 (Mon, 18 Feb 2008) | 5 lines Issue python#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. ........
- Loading branch information
Showing
15 changed files
with
1,979 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,8 +7,9 @@ | |
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 @@ | |
__author__ = 'Ka-Ping Yee <[email protected]>' | ||
__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): | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
""" | ||
These tests only check url parsing for now. | ||
We don't want to require the 'network' resource. | ||
""" | ||
|
||
import os, unittest | ||
from SimpleHTTPServer import SimpleHTTPRequestHandler | ||
from test import test_support | ||
|
||
|
||
class SocketlessRequestHandler (SimpleHTTPRequestHandler): | ||
def __init__(self): | ||
pass | ||
|
||
class SimpleHTTPRequestHandlerTestCase(unittest.TestCase): | ||
""" Test url parsing """ | ||
def setUp (self): | ||
self.translated = os.getcwd() | ||
self.translated = os.path.join(self.translated, 'filename') | ||
self.handler = SocketlessRequestHandler () | ||
|
||
def test_queryArguments (self): | ||
path = self.handler.translate_path ('/filename') | ||
self.assertEquals (path, self.translated) | ||
path = self.handler.translate_path ('/filename?foo=bar') | ||
self.assertEquals (path, self.translated) | ||
path = self.handler.translate_path ('/filename?a=b&spam=eggs#zot') | ||
self.assertEquals (path, self.translated) | ||
|
||
def test_startWithDoubleSlash (self): | ||
path = self.handler.translate_path ('//filename') | ||
self.assertEquals (path, self.translated) | ||
path = self.handler.translate_path ('//filename?foo=bar') | ||
self.assertEquals (path, self.translated) | ||
|
||
|
||
def test_main(): | ||
test_support.run_unittest(SimpleHTTPRequestHandlerTestCase) | ||
|
||
if __name__ == "__main__": | ||
test_main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.