Issue #20315: Removed support for backward compatibility with early 2.x versions.
This commit is contained in:
parent
6c01e38677
commit
7e52705ee3
|
@ -144,23 +144,6 @@ MAX_INTERPOLATION_DEPTH = 10
|
||||||
class Error(Exception):
|
class Error(Exception):
|
||||||
"""Base class for ConfigParser exceptions."""
|
"""Base class for ConfigParser exceptions."""
|
||||||
|
|
||||||
def _get_message(self):
|
|
||||||
"""Getter for 'message'; needed only to override deprecation in
|
|
||||||
BaseException.
|
|
||||||
"""
|
|
||||||
return self.__message
|
|
||||||
|
|
||||||
def _set_message(self, value):
|
|
||||||
"""Setter for 'message'; needed only to override deprecation in
|
|
||||||
BaseException.
|
|
||||||
"""
|
|
||||||
self.__message = value
|
|
||||||
|
|
||||||
# BaseException.message has been deprecated since Python 2.6. To prevent
|
|
||||||
# DeprecationWarning from popping up over this pre-existing attribute, use
|
|
||||||
# a new property that takes lookup precedence.
|
|
||||||
message = property(_get_message, _set_message)
|
|
||||||
|
|
||||||
def __init__(self, msg=''):
|
def __init__(self, msg=''):
|
||||||
self.message = msg
|
self.message = msg
|
||||||
Exception.__init__(self, msg)
|
Exception.__init__(self, msg)
|
||||||
|
|
|
@ -332,30 +332,6 @@ class ModuleFinder:
|
||||||
fullname = name + "." + sub
|
fullname = name + "." + sub
|
||||||
self._add_badmodule(fullname, caller)
|
self._add_badmodule(fullname, caller)
|
||||||
|
|
||||||
def scan_opcodes(self, co,
|
|
||||||
unpack = struct.unpack):
|
|
||||||
# Scan the code, and yield 'interesting' opcode combinations
|
|
||||||
# Version for Python 2.4 and older
|
|
||||||
code = co.co_code
|
|
||||||
names = co.co_names
|
|
||||||
consts = co.co_consts
|
|
||||||
while code:
|
|
||||||
c = code[0]
|
|
||||||
if c in STORE_OPS:
|
|
||||||
oparg, = unpack('<H', code[1:3])
|
|
||||||
yield "store", (names[oparg],)
|
|
||||||
code = code[3:]
|
|
||||||
continue
|
|
||||||
if c == LOAD_CONST and code[3] == IMPORT_NAME:
|
|
||||||
oparg_1, oparg_2 = unpack('<xHxH', code[:6])
|
|
||||||
yield "import", (consts[oparg_1], names[oparg_2])
|
|
||||||
code = code[6:]
|
|
||||||
continue
|
|
||||||
if c >= HAVE_ARGUMENT:
|
|
||||||
code = code[3:]
|
|
||||||
else:
|
|
||||||
code = code[1:]
|
|
||||||
|
|
||||||
def scan_opcodes_25(self, co,
|
def scan_opcodes_25(self, co,
|
||||||
unpack = struct.unpack):
|
unpack = struct.unpack):
|
||||||
# Scan the code, and yield 'interesting' opcode combinations
|
# Scan the code, and yield 'interesting' opcode combinations
|
||||||
|
@ -387,10 +363,7 @@ class ModuleFinder:
|
||||||
|
|
||||||
def scan_code(self, co, m):
|
def scan_code(self, co, m):
|
||||||
code = co.co_code
|
code = co.co_code
|
||||||
if sys.version_info >= (2, 5):
|
scanner = self.scan_opcodes_25
|
||||||
scanner = self.scan_opcodes_25
|
|
||||||
else:
|
|
||||||
scanner = self.scan_opcodes
|
|
||||||
for what, args in scanner(co):
|
for what, args in scanner(co):
|
||||||
if what == "store":
|
if what == "store":
|
||||||
name, = args
|
name, = args
|
||||||
|
|
|
@ -645,14 +645,8 @@ class Option:
|
||||||
self.type = "string"
|
self.type = "string"
|
||||||
else:
|
else:
|
||||||
# Allow type objects or builtin type conversion functions
|
# Allow type objects or builtin type conversion functions
|
||||||
# (int, str, etc.) as an alternative to their names. (The
|
# (int, str, etc.) as an alternative to their names.
|
||||||
# complicated check of builtins is only necessary for
|
if isinstance(self.type, type):
|
||||||
# Python 2.1 and earlier, and is short-circuited by the
|
|
||||||
# first check on modern Pythons.)
|
|
||||||
import builtins
|
|
||||||
if ( isinstance(self.type, type) or
|
|
||||||
(hasattr(self.type, "__name__") and
|
|
||||||
getattr(builtins, self.type.__name__, None) is self.type) ):
|
|
||||||
self.type = self.type.__name__
|
self.type = self.type.__name__
|
||||||
|
|
||||||
if self.type == "str":
|
if self.type == "str":
|
||||||
|
|
|
@ -455,7 +455,6 @@ profiler_callback(PyObject *self, PyFrameObject *frame, int what,
|
||||||
PyTrace_RETURN event will be generated, so we don't need to
|
PyTrace_RETURN event will be generated, so we don't need to
|
||||||
handle it. */
|
handle it. */
|
||||||
|
|
||||||
#ifdef PyTrace_C_CALL /* not defined in Python <= 2.3 */
|
|
||||||
/* the Python function 'frame' is issuing a call to the built-in
|
/* the Python function 'frame' is issuing a call to the built-in
|
||||||
function 'arg' */
|
function 'arg' */
|
||||||
case PyTrace_C_CALL:
|
case PyTrace_C_CALL:
|
||||||
|
@ -477,7 +476,6 @@ profiler_callback(PyObject *self, PyFrameObject *frame, int what,
|
||||||
((PyCFunctionObject *)arg)->m_ml);
|
((PyCFunctionObject *)arg)->m_ml);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -667,13 +665,7 @@ setBuiltins(ProfilerObject *pObj, int nvalue)
|
||||||
if (nvalue == 0)
|
if (nvalue == 0)
|
||||||
pObj->flags &= ~POF_BUILTINS;
|
pObj->flags &= ~POF_BUILTINS;
|
||||||
else if (nvalue > 0) {
|
else if (nvalue > 0) {
|
||||||
#ifndef PyTrace_C_CALL
|
|
||||||
PyErr_SetString(PyExc_ValueError,
|
|
||||||
"builtins=True requires Python >= 2.4");
|
|
||||||
return -1;
|
|
||||||
#else
|
|
||||||
pObj->flags |= POF_BUILTINS;
|
pObj->flags |= POF_BUILTINS;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -771,11 +763,7 @@ profiler_init(ProfilerObject *pObj, PyObject *args, PyObject *kw)
|
||||||
PyObject *timer = NULL;
|
PyObject *timer = NULL;
|
||||||
double timeunit = 0.0;
|
double timeunit = 0.0;
|
||||||
int subcalls = 1;
|
int subcalls = 1;
|
||||||
#ifdef PyTrace_C_CALL
|
|
||||||
int builtins = 1;
|
int builtins = 1;
|
||||||
#else
|
|
||||||
int builtins = 0;
|
|
||||||
#endif
|
|
||||||
static char *kwlist[] = {"timer", "timeunit",
|
static char *kwlist[] = {"timer", "timeunit",
|
||||||
"subcalls", "builtins", 0};
|
"subcalls", "builtins", 0};
|
||||||
|
|
||||||
|
|
|
@ -33,20 +33,6 @@ Copyright (C) 1994 Steen Lumholt.
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Allow using this code in Python 2.[12] */
|
|
||||||
#ifndef PyDoc_STRVAR
|
|
||||||
#define PyDoc_STRVAR(name,str) static char name[] = str
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef PyMODINIT_FUNC
|
|
||||||
#define PyMODINIT_FUNC void
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef PyBool_Check
|
|
||||||
#define PyBool_Check(o) 0
|
|
||||||
#define PyBool_FromLong PyLong_FromLong
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CHECK_SIZE(size, elemsize) \
|
#define CHECK_SIZE(size, elemsize) \
|
||||||
((size_t)(size) <= Py_MAX((size_t)INT_MAX, UINT_MAX / (size_t)(elemsize)))
|
((size_t)(size) <= Py_MAX((size_t)INT_MAX, UINT_MAX / (size_t)(elemsize)))
|
||||||
|
|
||||||
|
|
|
@ -1534,13 +1534,6 @@ PyObject_GC_Track(void *op)
|
||||||
_PyObject_GC_TRACK(op);
|
_PyObject_GC_TRACK(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* for binary compatibility with 2.2 */
|
|
||||||
void
|
|
||||||
_PyObject_GC_Track(PyObject *op)
|
|
||||||
{
|
|
||||||
PyObject_GC_Track(op);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PyObject_GC_UnTrack(void *op)
|
PyObject_GC_UnTrack(void *op)
|
||||||
{
|
{
|
||||||
|
@ -1551,13 +1544,6 @@ PyObject_GC_UnTrack(void *op)
|
||||||
_PyObject_GC_UNTRACK(op);
|
_PyObject_GC_UNTRACK(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* for binary compatibility with 2.2 */
|
|
||||||
void
|
|
||||||
_PyObject_GC_UnTrack(PyObject *op)
|
|
||||||
{
|
|
||||||
PyObject_GC_UnTrack(op);
|
|
||||||
}
|
|
||||||
|
|
||||||
PyObject *
|
PyObject *
|
||||||
_PyObject_GC_Malloc(size_t basicsize)
|
_PyObject_GC_Malloc(size_t basicsize)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue