class Error(Exception):
"""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=''):
self.message = msg
Exception.__init__(self, msg)
fullname = name + "." + sub
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,
unpack = struct.unpack):
# Scan the code, and yield 'interesting' opcode combinations
def scan_code(self, co, m):
code = co.co_code
- if sys.version_info >= (2, 5):
- scanner = self.scan_opcodes_25
- else:
- scanner = self.scan_opcodes
+ scanner = self.scan_opcodes_25
for what, args in scanner(co):
if what == "store":
name, = args
self.type = "string"
else:
# Allow type objects or builtin type conversion functions
- # (int, str, etc.) as an alternative to their names. (The
- # complicated check of builtins is only necessary for
- # 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) ):
+ # (int, str, etc.) as an alternative to their names.
+ if isinstance(self.type, type):
self.type = self.type.__name__
if self.type == "str":
PyTrace_RETURN event will be generated, so we don't need to
handle it. */
-#ifdef PyTrace_C_CALL /* not defined in Python <= 2.3 */
/* the Python function 'frame' is issuing a call to the built-in
function 'arg' */
case PyTrace_C_CALL:
((PyCFunctionObject *)arg)->m_ml);
}
break;
-#endif
default:
break;
if (nvalue == 0)
pObj->flags &= ~POF_BUILTINS;
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;
-#endif
}
return 0;
}
PyObject *timer = NULL;
double timeunit = 0.0;
int subcalls = 1;
-#ifdef PyTrace_C_CALL
int builtins = 1;
-#else
- int builtins = 0;
-#endif
static char *kwlist[] = {"timer", "timeunit",
"subcalls", "builtins", 0};
#include <windows.h>
#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) \
((size_t)(size) <= Py_MAX((size_t)INT_MAX, UINT_MAX / (size_t)(elemsize)))
_PyObject_GC_TRACK(op);
}
-/* for binary compatibility with 2.2 */
-void
-_PyObject_GC_Track(PyObject *op)
-{
- PyObject_GC_Track(op);
-}
-
void
PyObject_GC_UnTrack(void *op)
{
_PyObject_GC_UNTRACK(op);
}
-/* for binary compatibility with 2.2 */
-void
-_PyObject_GC_UnTrack(PyObject *op)
-{
- PyObject_GC_UnTrack(op);
-}
-
PyObject *
_PyObject_GC_Malloc(size_t basicsize)
{