Commit 1fa4b6a0 authored by scoder's avatar scoder

Merge pull request #319 from cython/dalcinl/no-old-python

Get rid of obsolete Python cruft
parents 2075746f 5fb94a34
...@@ -46,7 +46,6 @@ non_portable_builtins_map = { ...@@ -46,7 +46,6 @@ non_portable_builtins_map = {
'basestring' : ('PY_MAJOR_VERSION >= 3', 'str'), 'basestring' : ('PY_MAJOR_VERSION >= 3', 'str'),
'xrange' : ('PY_MAJOR_VERSION >= 3', 'range'), 'xrange' : ('PY_MAJOR_VERSION >= 3', 'range'),
'raw_input' : ('PY_MAJOR_VERSION >= 3', 'input'), 'raw_input' : ('PY_MAJOR_VERSION >= 3', 'input'),
'BaseException' : ('PY_VERSION_HEX < 0x02050000', 'Exception'),
} }
basicsize_builtins_map = { basicsize_builtins_map = {
...@@ -1920,7 +1919,7 @@ class CCodeWriter(object): ...@@ -1920,7 +1919,7 @@ class CCodeWriter(object):
if entry.is_special: if entry.is_special:
method_flags += [method_coexist] method_flags += [method_coexist]
self.putln( self.putln(
'{__Pyx_NAMESTR("%s"), (PyCFunction)%s, %s, __Pyx_DOCSTR(%s)}%s' % ( '{"%s", (PyCFunction)%s, %s, %s}%s' % (
entry.name, entry.name,
entry.func_cname, entry.func_cname,
"|".join(method_flags), "|".join(method_flags),
......
...@@ -1894,7 +1894,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -1894,7 +1894,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.putln( code.putln(
"PyVarObject_HEAD_INIT(0, 0)") "PyVarObject_HEAD_INIT(0, 0)")
code.putln( code.putln(
'__Pyx_NAMESTR("%s.%s"), /*tp_name*/' % ( '"%s.%s", /*tp_name*/' % (
self.full_module_name, scope.class_name)) self.full_module_name, scope.class_name))
if type.typedef_flag: if type.typedef_flag:
objstruct = type.objstruct_cname objstruct = type.objstruct_cname
...@@ -1933,7 +1933,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -1933,7 +1933,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
env.getset_table_cname) env.getset_table_cname)
for entry in env.property_entries: for entry in env.property_entries:
if entry.doc: if entry.doc:
doc_code = "__Pyx_DOCSTR(%s)" % code.get_string_const(entry.doc) doc_code = "%s" % code.get_string_const(entry.doc)
else: else:
doc_code = "0" doc_code = "0"
code.putln( code.putln(
...@@ -2079,7 +2079,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -2079,7 +2079,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
EncodedString("__main__"), identifier=True) EncodedString("__main__"), identifier=True)
code.putln("if (%s%s) {" % (Naming.module_is_main, self.full_module_name.replace('.', '__'))) code.putln("if (%s%s) {" % (Naming.module_is_main, self.full_module_name.replace('.', '__')))
code.putln( code.putln(
'if (__Pyx_SetAttrString(%s, "__name__", %s) < 0) %s;' % ( 'if (PyObject_SetAttrString(%s, "__name__", %s) < 0) %s;' % (
env.module_cname, env.module_cname,
__main__name.cname, __main__name.cname,
code.error_goto(self.pos))) code.error_goto(self.pos)))
...@@ -2170,7 +2170,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -2170,7 +2170,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
module_path = self.pos[0].filename module_path = self.pos[0].filename
if module_path: if module_path:
code.putln('if (__Pyx_SetAttrString(%s, "__file__", %s) < 0) %s;' % ( code.putln('if (PyObject_SetAttrString(%s, "__file__", %s) < 0) %s;' % (
env.module_cname, env.module_cname,
code.globalstate.get_py_string_const( code.globalstate.get_py_string_const(
EncodedString(decode_filename(module_path))).cname, EncodedString(decode_filename(module_path))).cname,
...@@ -2187,7 +2187,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -2187,7 +2187,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.error_goto_if_null(temp, self.pos))) code.error_goto_if_null(temp, self.pos)))
code.put_gotref(temp) code.put_gotref(temp)
code.putln( code.putln(
'if (__Pyx_SetAttrString(%s, "__path__", %s) < 0) %s;' % ( 'if (PyObject_SetAttrString(%s, "__path__", %s) < 0) %s;' % (
env.module_cname, temp, code.error_goto(self.pos))) env.module_cname, temp, code.error_goto(self.pos)))
code.put_decref_clear(temp, py_object_type) code.put_decref_clear(temp, py_object_type)
code.funcstate.release_temp(temp) code.funcstate.release_temp(temp)
...@@ -2308,7 +2308,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -2308,7 +2308,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
def generate_pymoduledef_struct(self, env, code): def generate_pymoduledef_struct(self, env, code):
if env.doc: if env.doc:
doc = "__Pyx_DOCSTR(%s)" % code.get_string_const(env.doc) doc = "%s" % code.get_string_const(env.doc)
else: else:
doc = "0" doc = "0"
if Options.generate_cleanup_code: if Options.generate_cleanup_code:
...@@ -2325,7 +2325,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -2325,7 +2325,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.putln("#else") code.putln("#else")
code.putln(" PyModuleDef_HEAD_INIT,") code.putln(" PyModuleDef_HEAD_INIT,")
code.putln("#endif") code.putln("#endif")
code.putln(' __Pyx_NAMESTR("%s"),' % env.module_name) code.putln(' "%s",' % env.module_name)
code.putln(" %s, /* m_doc */" % doc) code.putln(" %s, /* m_doc */" % doc)
code.putln(" -1, /* m_size */") code.putln(" -1, /* m_size */")
code.putln(" %s /* m_methods */," % env.method_table_cname) code.putln(" %s /* m_methods */," % env.method_table_cname)
...@@ -2340,12 +2340,12 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -2340,12 +2340,12 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
# Generate code to create the module object and # Generate code to create the module object and
# install the builtins. # install the builtins.
if env.doc: if env.doc:
doc = "__Pyx_DOCSTR(%s)" % code.get_string_const(env.doc) doc = "%s" % code.get_string_const(env.doc)
else: else:
doc = "0" doc = "0"
code.putln("#if PY_MAJOR_VERSION < 3") code.putln("#if PY_MAJOR_VERSION < 3")
code.putln( code.putln(
'%s = Py_InitModule4(__Pyx_NAMESTR("%s"), %s, %s, 0, PYTHON_API_VERSION); Py_XINCREF(%s);' % ( '%s = Py_InitModule4("%s", %s, %s, 0, PYTHON_API_VERSION); Py_XINCREF(%s);' % (
env.module_cname, env.module_cname,
env.module_name, env.module_name,
env.method_table_cname, env.method_table_cname,
...@@ -2365,20 +2365,20 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -2365,20 +2365,20 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.put_incref(env.module_dict_cname, py_object_type, nanny=False) code.put_incref(env.module_dict_cname, py_object_type, nanny=False)
code.putln( code.putln(
'%s = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); %s' % ( '%s = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); %s' % (
Naming.builtins_cname, Naming.builtins_cname,
code.error_goto_if_null(Naming.builtins_cname, self.pos))) code.error_goto_if_null(Naming.builtins_cname, self.pos)))
code.putln('#if CYTHON_COMPILING_IN_PYPY') code.putln('#if CYTHON_COMPILING_IN_PYPY')
code.putln('Py_INCREF(%s);' % Naming.builtins_cname) code.putln('Py_INCREF(%s);' % Naming.builtins_cname)
code.putln('#endif') code.putln('#endif')
code.putln( code.putln(
'if (__Pyx_SetAttrString(%s, "__builtins__", %s) < 0) %s;' % ( 'if (PyObject_SetAttrString(%s, "__builtins__", %s) < 0) %s;' % (
env.module_cname, env.module_cname,
Naming.builtins_cname, Naming.builtins_cname,
code.error_goto(self.pos))) code.error_goto(self.pos)))
if Options.pre_import is not None: if Options.pre_import is not None:
code.putln( code.putln(
'%s = PyImport_AddModule(__Pyx_NAMESTR("%s")); %s' % ( '%s = PyImport_AddModule("%s"); %s' % (
Naming.preimport_cname, Naming.preimport_cname,
Options.pre_import, Options.pre_import,
code.error_goto_if_null(Naming.preimport_cname, self.pos))) code.error_goto_if_null(Naming.preimport_cname, self.pos)))
...@@ -2404,7 +2404,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -2404,7 +2404,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
entry.cname)) entry.cname))
code.putln(code.error_goto_if_null("wrapped", entry.pos)) code.putln(code.error_goto_if_null("wrapped", entry.pos))
code.putln( code.putln(
'if (__Pyx_SetAttrString(%s, "%s", wrapped) < 0) %s;' % ( 'if (PyObject_SetAttrString(%s, "%s", wrapped) < 0) %s;' % (
env.module_cname, env.module_cname,
name, name,
code.error_goto(entry.pos))) code.error_goto(entry.pos)))
...@@ -2642,7 +2642,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -2642,7 +2642,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.putln('#if CYTHON_COMPILING_IN_CPYTHON') code.putln('#if CYTHON_COMPILING_IN_CPYTHON')
code.putln("{") code.putln("{")
code.putln( code.putln(
'PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&%s, "%s"); %s' % ( 'PyObject *wrapper = PyObject_GetAttrString((PyObject *)&%s, "%s"); %s' % (
typeobj_cname, typeobj_cname,
func.name, func.name,
code.error_goto_if_null('wrapper', entry.pos))) code.error_goto_if_null('wrapper', entry.pos)))
...@@ -2674,7 +2674,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -2674,7 +2674,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
# Cython (such as closures), the 'internal' # Cython (such as closures), the 'internal'
# directive is set by users # directive is set by users
code.putln( code.putln(
'if (__Pyx_SetAttrString(%s, "%s", (PyObject *)&%s) < 0) %s' % ( 'if (PyObject_SetAttrString(%s, "%s", (PyObject *)&%s) < 0) %s' % (
Naming.module_cname, Naming.module_cname,
scope.class_name, scope.class_name,
typeobj_cname, typeobj_cname,
...@@ -2790,7 +2790,7 @@ import_star_utility_code = """ ...@@ -2790,7 +2790,7 @@ import_star_utility_code = """
static int static int
__Pyx_import_all_from(PyObject *locals, PyObject *v) __Pyx_import_all_from(PyObject *locals, PyObject *v)
{ {
PyObject *all = __Pyx_GetAttrString(v, "__all__"); PyObject *all = PyObject_GetAttrString(v, "__all__");
PyObject *dict, *name, *value; PyObject *dict, *name, *value;
int skip_leading_underscores = 0; int skip_leading_underscores = 0;
int pos, err; int pos, err;
...@@ -2799,7 +2799,7 @@ __Pyx_import_all_from(PyObject *locals, PyObject *v) ...@@ -2799,7 +2799,7 @@ __Pyx_import_all_from(PyObject *locals, PyObject *v)
if (!PyErr_ExceptionMatches(PyExc_AttributeError)) if (!PyErr_ExceptionMatches(PyExc_AttributeError))
return -1; /* Unexpected error */ return -1; /* Unexpected error */
PyErr_Clear(); PyErr_Clear();
dict = __Pyx_GetAttrString(v, "__dict__"); dict = PyObject_GetAttrString(v, "__dict__");
if (dict == NULL) { if (dict == NULL) {
if (!PyErr_ExceptionMatches(PyExc_AttributeError)) if (!PyErr_ExceptionMatches(PyExc_AttributeError))
return -1; return -1;
......
...@@ -417,7 +417,7 @@ class DocStringSlot(SlotDescriptor): ...@@ -417,7 +417,7 @@ class DocStringSlot(SlotDescriptor):
doc = scope.doc.utf8encode() doc = scope.doc.utf8encode()
else: else:
doc = scope.doc.byteencode() doc = scope.doc.byteencode()
return '__Pyx_DOCSTR("%s")' % StringEncoding.escape_byte_string(doc) return '"%s"' % StringEncoding.escape_byte_string(doc)
else: else:
return "0" return "0"
...@@ -738,8 +738,8 @@ PyBufferProcs = ( ...@@ -738,8 +738,8 @@ PyBufferProcs = (
MethodSlot(segcountproc, "bf_getsegcount", "__getsegcount__", py3 = False), MethodSlot(segcountproc, "bf_getsegcount", "__getsegcount__", py3 = False),
MethodSlot(charbufferproc, "bf_getcharbuffer", "__getcharbuffer__", py3 = False), MethodSlot(charbufferproc, "bf_getcharbuffer", "__getcharbuffer__", py3 = False),
MethodSlot(getbufferproc, "bf_getbuffer", "__getbuffer__", ifdef = "PY_VERSION_HEX >= 0x02060000"), MethodSlot(getbufferproc, "bf_getbuffer", "__getbuffer__"),
MethodSlot(releasebufferproc, "bf_releasebuffer", "__releasebuffer__", ifdef = "PY_VERSION_HEX >= 0x02060000") MethodSlot(releasebufferproc, "bf_releasebuffer", "__releasebuffer__")
) )
#------------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------------
...@@ -809,7 +809,7 @@ slot_table = ( ...@@ -809,7 +809,7 @@ slot_table = (
EmptySlot("tp_subclasses"), EmptySlot("tp_subclasses"),
EmptySlot("tp_weaklist"), EmptySlot("tp_weaklist"),
EmptySlot("tp_del"), EmptySlot("tp_del"),
EmptySlot("tp_version_tag", ifdef="PY_VERSION_HEX >= 0x02060000"), EmptySlot("tp_version_tag"),
EmptySlot("tp_finalize", ifdef="PY_VERSION_HEX >= 0x030400a1"), EmptySlot("tp_finalize", ifdef="PY_VERSION_HEX >= 0x030400a1"),
) )
......
...@@ -246,6 +246,6 @@ cdef extern from "Python.h": ...@@ -246,6 +246,6 @@ cdef extern from "Python.h":
# and the value is clipped to PY_SSIZE_T_MIN for a negative # and the value is clipped to PY_SSIZE_T_MIN for a negative
# integer or PY_SSIZE_T_MAX for a positive integer. # integer or PY_SSIZE_T_MAX for a positive integer.
bint PyIndex_Check "__Pyx_PyIndex_Check" (object) bint PyIndex_Check(object)
# Returns True if o is an index integer (has the nb_index slot of # Returns True if o is an index integer (has the nb_index slot of
# the tp_as_number structure filled in). # the tp_as_number structure filled in).
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
# #
# if PY_MAJOR_VERSION >= 3: # if PY_MAJOR_VERSION >= 3:
# do_stuff_in_Py3_0_and_later() # do_stuff_in_Py3_0_and_later()
# if PY_VERSION_HEX >= 0x02050000: # if PY_VERSION_HEX >= 0x02070000:
# do_stuff_in_Py2_5_and_later() # do_stuff_in_Py2_7_and_later()
# #
# than using the IF/DEF statements, which are evaluated at Cython # than using the IF/DEF statements, which are evaluated at Cython
# compile time. This will keep your C code portable. # compile time. This will keep your C code portable.
......
...@@ -10,7 +10,7 @@ __pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig) ...@@ -10,7 +10,7 @@ __pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig)
{ {
PyObject *cobj; PyObject *cobj;
#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION == 0) #if PY_VERSION_HEX >= 0x02070000
cobj = PyCapsule_New(p, sig, NULL); cobj = PyCapsule_New(p, sig, NULL);
#else #else
cobj = PyCObject_FromVoidPtr(p, NULL); cobj = PyCObject_FromVoidPtr(p, NULL);
......
...@@ -423,7 +423,7 @@ __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args) ...@@ -423,7 +423,7 @@ __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
} }
static PyMethodDef __pyx_CyFunction_methods[] = { static PyMethodDef __pyx_CyFunction_methods[] = {
{__Pyx_NAMESTR("__reduce__"), (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
{0, 0, 0, 0} {0, 0, 0, 0}
}; };
...@@ -623,7 +623,7 @@ static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject ...@@ -623,7 +623,7 @@ static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject
static PyTypeObject __pyx_CyFunctionType_type = { static PyTypeObject __pyx_CyFunctionType_type = {
PyVarObject_HEAD_INIT(0, 0) PyVarObject_HEAD_INIT(0, 0)
__Pyx_NAMESTR("cython_function_or_method"), /*tp_name*/ "cython_function_or_method", /*tp_name*/
sizeof(__pyx_CyFunctionObject), /*tp_basicsize*/ sizeof(__pyx_CyFunctionObject), /*tp_basicsize*/
0, /*tp_itemsize*/ 0, /*tp_itemsize*/
(destructor) __Pyx_CyFunction_dealloc, /*tp_dealloc*/ (destructor) __Pyx_CyFunction_dealloc, /*tp_dealloc*/
...@@ -1063,7 +1063,7 @@ static PyMemberDef __pyx_FusedFunction_members[] = { ...@@ -1063,7 +1063,7 @@ static PyMemberDef __pyx_FusedFunction_members[] = {
T_OBJECT, T_OBJECT,
offsetof(__pyx_FusedFunctionObject, __signatures__), offsetof(__pyx_FusedFunctionObject, __signatures__),
READONLY, READONLY,
__Pyx_DOCSTR(0)}, 0},
{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0},
}; };
...@@ -1075,7 +1075,7 @@ static PyMappingMethods __pyx_FusedFunction_mapping_methods = { ...@@ -1075,7 +1075,7 @@ static PyMappingMethods __pyx_FusedFunction_mapping_methods = {
static PyTypeObject __pyx_FusedFunctionType_type = { static PyTypeObject __pyx_FusedFunctionType_type = {
PyVarObject_HEAD_INIT(0, 0) PyVarObject_HEAD_INIT(0, 0)
__Pyx_NAMESTR("fused_cython_function"), /*tp_name*/ "fused_cython_function", /*tp_name*/
sizeof(__pyx_FusedFunctionObject), /*tp_basicsize*/ sizeof(__pyx_FusedFunctionObject), /*tp_basicsize*/
0, /*tp_itemsize*/ 0, /*tp_itemsize*/
(destructor) __pyx_FusedFunction_dealloc, /*tp_dealloc*/ (destructor) __pyx_FusedFunction_dealloc, /*tp_dealloc*/
...@@ -1157,7 +1157,7 @@ static PyObject* __Pyx_Method_ClassMethod(PyObject *method) { ...@@ -1157,7 +1157,7 @@ static PyObject* __Pyx_Method_ClassMethod(PyObject *method) {
// It appears that PyMethodDescr_Type is not anywhere exposed in the Python/C API // It appears that PyMethodDescr_Type is not anywhere exposed in the Python/C API
static PyTypeObject *methoddescr_type = NULL; static PyTypeObject *methoddescr_type = NULL;
if (methoddescr_type == NULL) { if (methoddescr_type == NULL) {
PyObject *meth = __Pyx_GetAttrString((PyObject*)&PyList_Type, "append"); PyObject *meth = PyObject_GetAttrString((PyObject*)&PyList_Type, "append");
if (!meth) return NULL; if (!meth) return NULL;
methoddescr_type = Py_TYPE(meth); methoddescr_type = Py_TYPE(meth);
Py_DECREF(meth); Py_DECREF(meth);
......
...@@ -613,15 +613,15 @@ static PyMemberDef __pyx_Generator_memberlist[] = { ...@@ -613,15 +613,15 @@ static PyMemberDef __pyx_Generator_memberlist[] = {
}; };
static PyMethodDef __pyx_Generator_methods[] = { static PyMethodDef __pyx_Generator_methods[] = {
{__Pyx_NAMESTR("send"), (PyCFunction) __Pyx_Generator_Send, METH_O, 0}, {"send", (PyCFunction) __Pyx_Generator_Send, METH_O, 0},
{__Pyx_NAMESTR("throw"), (PyCFunction) __Pyx_Generator_Throw, METH_VARARGS, 0}, {"throw", (PyCFunction) __Pyx_Generator_Throw, METH_VARARGS, 0},
{__Pyx_NAMESTR("close"), (PyCFunction) __Pyx_Generator_Close, METH_NOARGS, 0}, {"close", (PyCFunction) __Pyx_Generator_Close, METH_NOARGS, 0},
{0, 0, 0, 0} {0, 0, 0, 0}
}; };
static PyTypeObject __pyx_GeneratorType_type = { static PyTypeObject __pyx_GeneratorType_type = {
PyVarObject_HEAD_INIT(0, 0) PyVarObject_HEAD_INIT(0, 0)
__Pyx_NAMESTR("generator"), /*tp_name*/ "generator", /*tp_name*/
sizeof(__pyx_GeneratorObject), /*tp_basicsize*/ sizeof(__pyx_GeneratorObject), /*tp_basicsize*/
0, /*tp_itemsize*/ 0, /*tp_itemsize*/
(destructor) __Pyx_Generator_dealloc,/*tp_dealloc*/ (destructor) __Pyx_Generator_dealloc,/*tp_dealloc*/
......
...@@ -181,7 +181,7 @@ static int __Pyx_SetPackagePathFromImportLib(const char* parent_package_name, Py ...@@ -181,7 +181,7 @@ static int __Pyx_SetPackagePathFromImportLib(const char* parent_package_name, Py
if (unlikely(!file_path)) if (unlikely(!file_path))
goto bad; goto bad;
if (unlikely(__Pyx_SetAttrString($module_cname, "__file__", file_path) < 0)) if (unlikely(PyObject_SetAttrString($module_cname, "__file__", file_path) < 0))
goto bad; goto bad;
osmod = PyImport_ImportModule("os"); osmod = PyImport_ImportModule("os");
...@@ -214,7 +214,7 @@ bad: ...@@ -214,7 +214,7 @@ bad:
return -1; return -1;
set_path: set_path:
result = __Pyx_SetAttrString($module_cname, "__path__", package_path); result = PyObject_SetAttrString($module_cname, "__path__", package_path);
Py_DECREF(package_path); Py_DECREF(package_path);
return result; return result;
} }
...@@ -321,7 +321,7 @@ static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (** ...@@ -321,7 +321,7 @@ static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**
PyModule_GetName(module), funcname); PyModule_GetName(module), funcname);
goto bad; goto bad;
} }
#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3 && PY_MINOR_VERSION==0) #if PY_VERSION_HEX >= 0x02070000
if (!PyCapsule_IsValid(cobj, sig)) { if (!PyCapsule_IsValid(cobj, sig)) {
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
...@@ -381,7 +381,7 @@ static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *s ...@@ -381,7 +381,7 @@ static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *s
goto bad; goto bad;
} }
tmp.fp = f; tmp.fp = f;
#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0) #if PY_VERSION_HEX >= 0x02070000
cobj = PyCapsule_New(tmp.p, sig, 0); cobj = PyCapsule_New(tmp.p, sig, 0);
#else #else
cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0); cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0);
...@@ -422,7 +422,7 @@ static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, con ...@@ -422,7 +422,7 @@ static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, con
PyModule_GetName(module), name); PyModule_GetName(module), name);
goto bad; goto bad;
} }
#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3 && PY_MINOR_VERSION==0) #if PY_VERSION_HEX >= 0x02070000
if (!PyCapsule_IsValid(cobj, sig)) { if (!PyCapsule_IsValid(cobj, sig)) {
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"C variable %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", "C variable %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
...@@ -476,7 +476,7 @@ static int __Pyx_ExportVoidPtr(PyObject *name, void *p, const char *sig) { ...@@ -476,7 +476,7 @@ static int __Pyx_ExportVoidPtr(PyObject *name, void *p, const char *sig) {
if (__Pyx_PyObject_SetAttrStr($module_cname, PYIDENT("$api_name"), d) < 0) if (__Pyx_PyObject_SetAttrStr($module_cname, PYIDENT("$api_name"), d) < 0)
goto bad; goto bad;
} }
#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3 && PY_MINOR_VERSION==0) #if PY_VERSION_HEX >= 0x02070000
cobj = PyCapsule_New(p, sig, 0); cobj = PyCapsule_New(p, sig, 0);
#else #else
cobj = PyCObject_FromVoidPtrAndDesc(p, (void *)sig, 0); cobj = PyCObject_FromVoidPtrAndDesc(p, (void *)sig, 0);
...@@ -502,7 +502,7 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/ ...@@ -502,7 +502,7 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
/////////////// SetVTable /////////////// /////////////// SetVTable ///////////////
static int __Pyx_SetVtable(PyObject *dict, void *vtable) { static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0) #if PY_VERSION_HEX >= 0x02070000
PyObject *ob = PyCapsule_New(vtable, 0, 0); PyObject *ob = PyCapsule_New(vtable, 0, 0);
#else #else
PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
...@@ -530,7 +530,7 @@ static void* __Pyx_GetVtable(PyObject *dict) { ...@@ -530,7 +530,7 @@ static void* __Pyx_GetVtable(PyObject *dict) {
PyObject *ob = PyObject_GetItem(dict, PYIDENT("__pyx_vtable__")); PyObject *ob = PyObject_GetItem(dict, PYIDENT("__pyx_vtable__"));
if (!ob) if (!ob)
goto bad; goto bad;
#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0) #if PY_VERSION_HEX >= 0x02070000
ptr = PyCapsule_GetPointer(ob, 0); ptr = PyCapsule_GetPointer(ob, 0);
#else #else
ptr = PyCObject_AsVoidPtr(ob); ptr = PyCObject_AsVoidPtr(ob);
......
...@@ -6,7 +6,7 @@ import cython ...@@ -6,7 +6,7 @@ import cython
# from cpython cimport ... # from cpython cimport ...
cdef extern from "Python.h": cdef extern from "Python.h":
int PyIndex_Check "__Pyx_PyIndex_Check" (object) int PyIndex_Check(object)
object PyLong_FromVoidPtr(void *) object PyLong_FromVoidPtr(void *)
cdef extern from "pythread.h": cdef extern from "pythread.h":
......
...@@ -46,7 +46,6 @@ ...@@ -46,7 +46,6 @@
#define __PYX_BUILD_PY_SSIZE_T "n" #define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z" #define CYTHON_FORMAT_SSIZE_T "z"
#define __Pyx_PyIndex_Check PyIndex_Check
#if PY_MAJOR_VERSION < 3 #if PY_MAJOR_VERSION < 3
#define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
...@@ -103,7 +102,7 @@ ...@@ -103,7 +102,7 @@
PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif #endif
#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3 #if PY_MAJOR_VERSION >= 3
...@@ -170,18 +169,6 @@ ...@@ -170,18 +169,6 @@
#define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
#endif #endif
#define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n))
#define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
#define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n))
#if PY_VERSION_HEX < 0x02050000
#define __Pyx_NAMESTR(n) ((char *)(n))
#define __Pyx_DOCSTR(n) ((char *)(n))
#else
#define __Pyx_NAMESTR(n) (n)
#define __Pyx_DOCSTR(n) (n)
#endif
/* inline attribute */ /* inline attribute */
#ifndef CYTHON_INLINE #ifndef CYTHON_INLINE
#if defined(__GNUC__) #if defined(__GNUC__)
...@@ -510,7 +497,7 @@ static int __Pyx_RegisterCleanup(void) { ...@@ -510,7 +497,7 @@ static int __Pyx_RegisterCleanup(void) {
// and cached objects that we are about to clean up. // and cached objects that we are about to clean up.
static PyMethodDef cleanup_def = { static PyMethodDef cleanup_def = {
__Pyx_NAMESTR("__cleanup"), (PyCFunction)${cleanup_cname}_atexit, METH_NOARGS, 0}; "__cleanup", (PyCFunction)${cleanup_cname}_atexit, METH_NOARGS, 0};
PyObject *cleanup_func = 0; PyObject *cleanup_func = 0;
PyObject *atexit = 0; PyObject *atexit = 0;
...@@ -526,7 +513,7 @@ static int __Pyx_RegisterCleanup(void) { ...@@ -526,7 +513,7 @@ static int __Pyx_RegisterCleanup(void) {
atexit = __Pyx_ImportModule("atexit"); atexit = __Pyx_ImportModule("atexit");
if (!atexit) if (!atexit)
goto bad; goto bad;
reg = __Pyx_GetAttrString(atexit, "_exithandlers"); reg = PyObject_GetAttrString(atexit, "_exithandlers");
if (reg && PyList_Check(reg)) { if (reg && PyList_Check(reg)) {
PyObject *a, *kw; PyObject *a, *kw;
a = PyTuple_New(0); a = PyTuple_New(0);
...@@ -546,7 +533,7 @@ static int __Pyx_RegisterCleanup(void) { ...@@ -546,7 +533,7 @@ static int __Pyx_RegisterCleanup(void) {
if (!reg) if (!reg)
PyErr_Clear(); PyErr_Clear();
Py_XDECREF(reg); Py_XDECREF(reg);
reg = __Pyx_GetAttrString(atexit, "register"); reg = PyObject_GetAttrString(atexit, "register");
if (!reg) if (!reg)
goto bad; goto bad;
args = PyTuple_Pack(1, cleanup_func); args = PyTuple_Pack(1, cleanup_func);
......
...@@ -11,9 +11,6 @@ cdef extern from *: ...@@ -11,9 +11,6 @@ cdef extern from *:
unsigned long tp_flags unsigned long tp_flags
SHOULD_HAVE_FLAG = PY_VERSION_HEX >= 0x02060000
def test_flag(t): def test_flag(t):
return ((<PyTypeObject*>t).tp_flags & Py_TPFLAGS_HAVE_VERSION_TAG) != 0 return ((<PyTypeObject*>t).tp_flags & Py_TPFLAGS_HAVE_VERSION_TAG) != 0
...@@ -21,8 +18,7 @@ def test_flag(t): ...@@ -21,8 +18,7 @@ def test_flag(t):
cdef class ImplicitAttrCache(object): cdef class ImplicitAttrCache(object):
""" """
>>> flag = test_flag(ImplicitAttrCache) >>> flag = test_flag(ImplicitAttrCache)
>>> if SHOULD_HAVE_FLAG: print(flag) >>> print(flag)
... else: print(True)
True True
""" """
cdef public int x cdef public int x
...@@ -33,8 +29,7 @@ cdef class ImplicitAttrCache(object): ...@@ -33,8 +29,7 @@ cdef class ImplicitAttrCache(object):
cdef class ExplicitAttrCache(object): cdef class ExplicitAttrCache(object):
""" """
>>> flag = test_flag(ImplicitAttrCache) >>> flag = test_flag(ImplicitAttrCache)
>>> if SHOULD_HAVE_FLAG: print(flag) >>> print(flag)
... else: print(True)
True True
""" """
cdef public int x cdef public int x
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment