diff options
author | Senthil Kumaran <senthil@uthcode.com> | 2012-06-03 08:16:39 (GMT) |
---|---|---|
committer | Senthil Kumaran <senthil@uthcode.com> | 2012-06-03 08:16:39 (GMT) |
commit | fe4dfd2b65850f0cddec700e2f747fec611b4be9 (patch) | |
tree | 37acd3c73a0a549f35235bb145c8a60a928b3071 | |
parent | 1251fafcc57091d952bb1cc9b1e1a77f39c59b7b (diff) | |
parent | 2168b31cac93aa36273dc5974db5fb446a6679eb (diff) | |
download | cpython-fe4dfd2b65850f0cddec700e2f747fec611b4be9.zip cpython-fe4dfd2b65850f0cddec700e2f747fec611b4be9.tar.gz cpython-fe4dfd2b65850f0cddec700e2f747fec611b4be9.tar.bz2 |
merge heads
-rw-r--r-- | Doc/c-api/code.rst | 6 | ||||
-rw-r--r-- | Doc/c-api/conversion.rst | 4 | ||||
-rw-r--r-- | Doc/c-api/init.rst | 2 | ||||
-rw-r--r-- | Doc/c-api/type.rst | 13 | ||||
-rw-r--r-- | Doc/c-api/unicode.rst | 2 | ||||
-rw-r--r-- | Doc/c-api/veryhigh.rst | 6 | ||||
-rw-r--r-- | Include/pythonrun.h | 7 | ||||
-rw-r--r-- | Lib/idlelib/CallTips.py | 32 | ||||
-rw-r--r-- | Misc/ACKS | 1 |
9 files changed, 37 insertions, 36 deletions
diff --git a/Doc/c-api/code.rst b/Doc/c-api/code.rst index 6932bb1..57e8072 100644 --- a/Doc/c-api/code.rst +++ b/Doc/c-api/code.rst @@ -31,11 +31,11 @@ bound into a function. Return true if *co* is a :class:`code` object -.. c:function:: int PyCode_GetNumFree(PyObject *co) +.. c:function:: int PyCode_GetNumFree(PyCodeObject *co) Return the number of free variables in *co*. -.. c:function:: PyCodeObject *PyCode_New(int argcount, int kwonlyargcount, int nlocals, int stacksize, int flags, PyObject *code, PyObject *consts, PyObject *names, PyObject *varnames, PyObject *freevars, PyObject *cellvars, PyObject *filename, PyObject *name, int firstlineno, PyObject *lnotab) +.. c:function:: PyCodeObject* PyCode_New(int argcount, int kwonlyargcount, int nlocals, int stacksize, int flags, PyObject *code, PyObject *consts, PyObject *names, PyObject *varnames, PyObject *freevars, PyObject *cellvars, PyObject *filename, PyObject *name, int firstlineno, PyObject *lnotab) Return a new code object. If you need a dummy code object to create a frame, use :c:func:`PyCode_NewEmpty` instead. Calling @@ -43,7 +43,7 @@ bound into a function. version since the definition of the bytecode changes often. -.. c:function:: int PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno) +.. c:function:: PyCodeObject* PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno) Return a new empty code object with the specified filename, function name, and first line number. It is illegal to diff --git a/Doc/c-api/conversion.rst b/Doc/c-api/conversion.rst index dfc0a3a..9578f98 100644 --- a/Doc/c-api/conversion.rst +++ b/Doc/c-api/conversion.rst @@ -119,13 +119,13 @@ The following functions provide locale-independent string to number conversions. .. versionadded:: 3.1 -.. c:function:: char* PyOS_stricmp(char *s1, char *s2) +.. c:function:: int PyOS_stricmp(char *s1, char *s2) Case insensitive comparison of strings. The function works almost identically to :c:func:`strcmp` except that it ignores the case. -.. c:function:: char* PyOS_strnicmp(char *s1, char *s2, Py_ssize_t size) +.. c:function:: int PyOS_strnicmp(char *s1, char *s2, Py_ssize_t size) Case insensitive comparison of strings. The function works almost identically to :c:func:`strncmp` except that it ignores the case. diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst index 7507e3b..95ff4ee 100644 --- a/Doc/c-api/init.rst +++ b/Doc/c-api/init.rst @@ -646,7 +646,7 @@ with sub-interpreters: :c:func:`PyGILState_Release` on the same thread. -.. c:function:: PyThreadState PyGILState_GetThisThreadState() +.. c:function:: PyThreadState* PyGILState_GetThisThreadState() Get the current thread state for this thread. May return ``NULL`` if no GILState API has been used on the current thread. Note that the main thread diff --git a/Doc/c-api/type.rst b/Doc/c-api/type.rst index cfd0d78..6f9c7a8 100644 --- a/Doc/c-api/type.rst +++ b/Doc/c-api/type.rst @@ -51,13 +51,13 @@ Type Objects modification of the attributes or base classes of the type. -.. c:function:: int PyType_HasFeature(PyObject *o, int feature) +.. c:function:: int PyType_HasFeature(PyTypeObject *o, int feature) Return true if the type object *o* sets the feature *feature*. Type features are denoted by single bit flags. -.. c:function:: int PyType_IS_GC(PyObject *o) +.. c:function:: int PyType_IS_GC(PyTypeObject *o) Return true if the type object includes support for the cycle detector; this tests the type flag :const:`Py_TPFLAGS_HAVE_GC`. @@ -70,13 +70,14 @@ Type Objects .. c:function:: PyObject* PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems) - XXX: Document. - + Generic handler for the :attr:`tp_alloc` slot of a type object. Use + Python's default memory allocation mechanism to allocate a new instance and + initialize all its contents to *NULL*. .. c:function:: PyObject* PyType_GenericNew(PyTypeObject *type, PyObject *args, PyObject *kwds) - Generic handler for the :attr:`tp_new` slot of a type object. Initialize - all instance variables to *NULL*. + Generic handler for the :attr:`tp_new` slot of a type object. Create a + new instance using the type's :attr:`tp_alloc` slot. .. c:function:: int PyType_Ready(PyTypeObject *type) diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst index a74a73d..fb7ba67 100644 --- a/Doc/c-api/unicode.rst +++ b/Doc/c-api/unicode.rst @@ -1615,7 +1615,7 @@ They all return *NULL* or ``-1`` if an exception occurs. ISO-8859-1 if it contains non-ASCII characters". -.. c:function:: int PyUnicode_RichCompare(PyObject *left, PyObject *right, int op) +.. c:function:: PyObject* PyUnicode_RichCompare(PyObject *left, PyObject *right, int op) Rich compare two unicode strings and return one of the following: diff --git a/Doc/c-api/veryhigh.rst b/Doc/c-api/veryhigh.rst index 41cdd6b..499eb3e 100644 --- a/Doc/c-api/veryhigh.rst +++ b/Doc/c-api/veryhigh.rst @@ -95,12 +95,6 @@ the same library that the Python runtime is using. leaving *closeit* set to ``0`` and *flags* set to *NULL*. -.. c:function:: int PyRun_SimpleFileFlags(FILE *fp, const char *filename, PyCompilerFlags *flags) - - This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, - leaving *closeit* set to ``0``. - - .. c:function:: int PyRun_SimpleFileEx(FILE *fp, const char *filename, int closeit) This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, diff --git a/Include/pythonrun.h b/Include/pythonrun.h index 48e39a4..e5620ee 100644 --- a/Include/pythonrun.h +++ b/Include/pythonrun.h @@ -82,9 +82,12 @@ PyAPI_FUNC(struct _mod *) PyParser_ASTFromFile( PyParser_SimpleParseFileFlags(FP, S, B, 0) #endif PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlags(const char *, int, - int); + int); +PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlagsFilename(const char *, + const char *, + int, int); PyAPI_FUNC(struct _node *) PyParser_SimpleParseFileFlags(FILE *, const char *, - int, int); + int, int); #ifndef Py_LIMITED_API PyAPI_FUNC(PyObject *) PyRun_StringFlags(const char *, int, PyObject *, diff --git a/Lib/idlelib/CallTips.py b/Lib/idlelib/CallTips.py index aa796cb..22a8a29 100644 --- a/Lib/idlelib/CallTips.py +++ b/Lib/idlelib/CallTips.py @@ -67,18 +67,18 @@ class CallTips: if not sur_paren: return hp.set_index(sur_paren[0]) - name = hp.get_expression() - if not name: + expression = hp.get_expression() + if not expression: return - if not evalfuncs and (name.find('(') != -1): + if not evalfuncs and (expression.find('(') != -1): return - argspec = self.fetch_tip(name) + argspec = self.fetch_tip(expression) if not argspec: return self.active_calltip = self._calltip_window() self.active_calltip.showtip(argspec, sur_paren[0], sur_paren[1]) - def fetch_tip(self, name): + def fetch_tip(self, expression): """Return the argument list and docstring of a function or class. If there is a Python subprocess, get the calltip there. Otherwise, @@ -94,25 +94,27 @@ class CallTips: """ try: rpcclt = self.editwin.flist.pyshell.interp.rpcclt - except: + except AttributeError: rpcclt = None if rpcclt: return rpcclt.remotecall("exec", "get_the_calltip", - (name,), {}) + (expression,), {}) else: - entity = self.get_entity(name) + entity = self.get_entity(expression) return get_argspec(entity) - def get_entity(self, name): - "Lookup name in a namespace spanning sys.modules and __main.dict__." - if name: + def get_entity(self, expression): + """Return the object corresponding to expression evaluated + in a namespace spanning sys.modules and __main.dict__. + """ + if expression: namespace = sys.modules.copy() namespace.update(__main__.__dict__) try: - return eval(name, namespace) - # any exception is possible if evalfuncs True in open_calltip - # at least Syntax, Name, Attribute, Index, and Key E. if not - except: + return eval(expression, namespace) + except BaseException: + # An uncaught exception closes idle, and eval can raise any + # exception, especially if user classes are involved. return None def _find_constructor(class_ob): @@ -989,6 +989,7 @@ Frank Stajano Joel Stanley Oliver Steele Greg Stein +Baruch Sterin Chris Stern Alex Stewart Victor Stinner |