if (!py_funcname) goto bad;
py_globals = PyModule_GetDict(%(GLOBALS)s);
if (!py_globals) goto bad;
+ #if PY_VERSION_MAJOR < 3
empty_string = PyString_FromStringAndSize("", 0);
+ #else
+ empty_string = PyBytes_FromStringAndSize("", 0);
+ #endif
if (!empty_string) goto bad;
py_code = PyCode_New(
0, /*int argcount,*/
*t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
} else if (t->intern) {
*t->p = PyString_InternFromString(t->s);
+ } else {
+ *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
}
#else /* Python 3+ has unicode identifiers */
if (t->is_identifier || (t->is_unicode && t->intern)) {
*t->p = PyUnicode_InternFromString(t->s);
} else if (t->is_unicode) {
*t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
+ } else {
+ *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
}
#endif
- else {
- *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
- }
if (!*t->p)
return -1;
++t;
is_string = 1
is_unicode = 0
- to_py_function = "PyString_FromString"
- from_py_function = "PyString_AsString"
+ to_py_function = "__Pyx_PyBytes_FromString"
+ from_py_function = "__Pyx_PyBytes_AsString"
exception_value = "NULL"
def literal_code(self, value):
type_conversion_predeclarations = """
/* Type Conversion Predeclarations */
+#if PY_VERSION_MAJOR < 3
+#define __Pyx_PyBytes_FromString PyString_FromString
+#define __Pyx_PyBytes_AsString PyString_AsString
+#else
+#define __Pyx_PyBytes_FromString PyBytes_FromString
+#define __Pyx_PyBytes_AsString PyBytes_AsString
+#endif
+
#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
static INLINE int __Pyx_PyObject_IsTrue(PyObject* x);
static INLINE PY_LONG_LONG __pyx_PyInt_AsLongLong(PyObject* x);