static PyObject* _setup_module(PyObject* module) { if (module) { NotFound = PyErr_NewException("_cheetah.NotFound", PyExc_LookupError, NULL); PyModule_AddObject(module, "NotFound", NotFound); _builtins_module = PyImport_ImportModule(IF_PY3("builtins", "__builtin__")); if (!_builtins_module) { Py_DECREF(module); module = NULL; } } return module; }
static inline PyObject* _ns_lookup(char* key, PyObject* ns) { PyObject* ret = NULL; if ((ret = PyMapping_GetItemString(ns, key))) { return ret; } PyErr_Clear(); { PyObject* fmt = PyUnicode_FromString("Cannot find '{}'"); PyObject* fmted = PyObject_CallMethod( fmt, "format", IF_PY3("y", "s"), key ); PyErr_SetObject(NotFound, fmted); Py_XDECREF(fmted); Py_XDECREF(fmt); } return NULL; }
static PyObject* _vfsl(char* key, PyObject* selfobj, PyObject* ns) { PyObject* ret; PyObject* fmt; PyObject* fmted; if ((ret = PyObject_GetAttrString(selfobj, key))) { return ret; } PyErr_Clear(); if ((ret = PyMapping_GetItemString(ns, key))) { return ret; } PyErr_Clear(); fmt = PyUnicode_FromString("Cannot find '{0}'"); fmted = PyObject_CallMethod(fmt, "format", IF_PY3("y", "s"), key); PyErr_SetObject(NotFound, fmted); Py_XDECREF(fmted); Py_XDECREF(fmt); return NULL; }