You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

233 lines
17 KiB

4 years ago
  1. /* Generated by Cython 0.28.5 */
  2. #ifndef __PYX_HAVE_API__lxml__etree
  3. #define __PYX_HAVE_API__lxml__etree
  4. #include "Python.h"
  5. #include "lxml.etree.h"
  6. static struct LxmlElement *(*__pyx_api_f_4lxml_5etree_deepcopyNodeToDocument)(struct LxmlDocument *, xmlNode *) = 0;
  7. #define deepcopyNodeToDocument __pyx_api_f_4lxml_5etree_deepcopyNodeToDocument
  8. static struct LxmlElementTree *(*__pyx_api_f_4lxml_5etree_elementTreeFactory)(struct LxmlElement *) = 0;
  9. #define elementTreeFactory __pyx_api_f_4lxml_5etree_elementTreeFactory
  10. static struct LxmlElementTree *(*__pyx_api_f_4lxml_5etree_newElementTree)(struct LxmlElement *, PyObject *) = 0;
  11. #define newElementTree __pyx_api_f_4lxml_5etree_newElementTree
  12. static struct LxmlElementTree *(*__pyx_api_f_4lxml_5etree_adoptExternalDocument)(xmlDoc *, PyObject *, int) = 0;
  13. #define adoptExternalDocument __pyx_api_f_4lxml_5etree_adoptExternalDocument
  14. static struct LxmlElement *(*__pyx_api_f_4lxml_5etree_elementFactory)(struct LxmlDocument *, xmlNode *) = 0;
  15. #define elementFactory __pyx_api_f_4lxml_5etree_elementFactory
  16. static struct LxmlElement *(*__pyx_api_f_4lxml_5etree_makeElement)(PyObject *, struct LxmlDocument *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *) = 0;
  17. #define makeElement __pyx_api_f_4lxml_5etree_makeElement
  18. static struct LxmlElement *(*__pyx_api_f_4lxml_5etree_makeSubElement)(struct LxmlElement *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *) = 0;
  19. #define makeSubElement __pyx_api_f_4lxml_5etree_makeSubElement
  20. static void (*__pyx_api_f_4lxml_5etree_setElementClassLookupFunction)(_element_class_lookup_function, PyObject *) = 0;
  21. #define setElementClassLookupFunction __pyx_api_f_4lxml_5etree_setElementClassLookupFunction
  22. static PyObject *(*__pyx_api_f_4lxml_5etree_lookupDefaultElementClass)(PyObject *, PyObject *, xmlNode *) = 0;
  23. #define lookupDefaultElementClass __pyx_api_f_4lxml_5etree_lookupDefaultElementClass
  24. static PyObject *(*__pyx_api_f_4lxml_5etree_lookupNamespaceElementClass)(PyObject *, PyObject *, xmlNode *) = 0;
  25. #define lookupNamespaceElementClass __pyx_api_f_4lxml_5etree_lookupNamespaceElementClass
  26. static PyObject *(*__pyx_api_f_4lxml_5etree_callLookupFallback)(struct LxmlFallbackElementClassLookup *, struct LxmlDocument *, xmlNode *) = 0;
  27. #define callLookupFallback __pyx_api_f_4lxml_5etree_callLookupFallback
  28. static int (*__pyx_api_f_4lxml_5etree_tagMatches)(xmlNode *, const xmlChar *, const xmlChar *) = 0;
  29. #define tagMatches __pyx_api_f_4lxml_5etree_tagMatches
  30. static struct LxmlDocument *(*__pyx_api_f_4lxml_5etree_documentOrRaise)(PyObject *) = 0;
  31. #define documentOrRaise __pyx_api_f_4lxml_5etree_documentOrRaise
  32. static struct LxmlElement *(*__pyx_api_f_4lxml_5etree_rootNodeOrRaise)(PyObject *) = 0;
  33. #define rootNodeOrRaise __pyx_api_f_4lxml_5etree_rootNodeOrRaise
  34. static int (*__pyx_api_f_4lxml_5etree_hasText)(xmlNode *) = 0;
  35. #define hasText __pyx_api_f_4lxml_5etree_hasText
  36. static int (*__pyx_api_f_4lxml_5etree_hasTail)(xmlNode *) = 0;
  37. #define hasTail __pyx_api_f_4lxml_5etree_hasTail
  38. static PyObject *(*__pyx_api_f_4lxml_5etree_textOf)(xmlNode *) = 0;
  39. #define textOf __pyx_api_f_4lxml_5etree_textOf
  40. static PyObject *(*__pyx_api_f_4lxml_5etree_tailOf)(xmlNode *) = 0;
  41. #define tailOf __pyx_api_f_4lxml_5etree_tailOf
  42. static int (*__pyx_api_f_4lxml_5etree_setNodeText)(xmlNode *, PyObject *) = 0;
  43. #define setNodeText __pyx_api_f_4lxml_5etree_setNodeText
  44. static int (*__pyx_api_f_4lxml_5etree_setTailText)(xmlNode *, PyObject *) = 0;
  45. #define setTailText __pyx_api_f_4lxml_5etree_setTailText
  46. static PyObject *(*__pyx_api_f_4lxml_5etree_attributeValue)(xmlNode *, xmlAttr *) = 0;
  47. #define attributeValue __pyx_api_f_4lxml_5etree_attributeValue
  48. static PyObject *(*__pyx_api_f_4lxml_5etree_attributeValueFromNsName)(xmlNode *, const xmlChar *, const xmlChar *) = 0;
  49. #define attributeValueFromNsName __pyx_api_f_4lxml_5etree_attributeValueFromNsName
  50. static PyObject *(*__pyx_api_f_4lxml_5etree_getAttributeValue)(struct LxmlElement *, PyObject *, PyObject *) = 0;
  51. #define getAttributeValue __pyx_api_f_4lxml_5etree_getAttributeValue
  52. static PyObject *(*__pyx_api_f_4lxml_5etree_iterattributes)(struct LxmlElement *, int) = 0;
  53. #define iterattributes __pyx_api_f_4lxml_5etree_iterattributes
  54. static PyObject *(*__pyx_api_f_4lxml_5etree_collectAttributes)(xmlNode *, int) = 0;
  55. #define collectAttributes __pyx_api_f_4lxml_5etree_collectAttributes
  56. static int (*__pyx_api_f_4lxml_5etree_setAttributeValue)(struct LxmlElement *, PyObject *, PyObject *) = 0;
  57. #define setAttributeValue __pyx_api_f_4lxml_5etree_setAttributeValue
  58. static int (*__pyx_api_f_4lxml_5etree_delAttribute)(struct LxmlElement *, PyObject *) = 0;
  59. #define delAttribute __pyx_api_f_4lxml_5etree_delAttribute
  60. static int (*__pyx_api_f_4lxml_5etree_delAttributeFromNsName)(xmlNode *, const xmlChar *, const xmlChar *) = 0;
  61. #define delAttributeFromNsName __pyx_api_f_4lxml_5etree_delAttributeFromNsName
  62. static int (*__pyx_api_f_4lxml_5etree_hasChild)(xmlNode *) = 0;
  63. #define hasChild __pyx_api_f_4lxml_5etree_hasChild
  64. static xmlNode *(*__pyx_api_f_4lxml_5etree_findChild)(xmlNode *, Py_ssize_t) = 0;
  65. #define findChild __pyx_api_f_4lxml_5etree_findChild
  66. static xmlNode *(*__pyx_api_f_4lxml_5etree_findChildForwards)(xmlNode *, Py_ssize_t) = 0;
  67. #define findChildForwards __pyx_api_f_4lxml_5etree_findChildForwards
  68. static xmlNode *(*__pyx_api_f_4lxml_5etree_findChildBackwards)(xmlNode *, Py_ssize_t) = 0;
  69. #define findChildBackwards __pyx_api_f_4lxml_5etree_findChildBackwards
  70. static xmlNode *(*__pyx_api_f_4lxml_5etree_nextElement)(xmlNode *) = 0;
  71. #define nextElement __pyx_api_f_4lxml_5etree_nextElement
  72. static xmlNode *(*__pyx_api_f_4lxml_5etree_previousElement)(xmlNode *) = 0;
  73. #define previousElement __pyx_api_f_4lxml_5etree_previousElement
  74. static void (*__pyx_api_f_4lxml_5etree_appendChild)(struct LxmlElement *, struct LxmlElement *) = 0;
  75. #define appendChild __pyx_api_f_4lxml_5etree_appendChild
  76. static int (*__pyx_api_f_4lxml_5etree_appendChildToElement)(struct LxmlElement *, struct LxmlElement *) = 0;
  77. #define appendChildToElement __pyx_api_f_4lxml_5etree_appendChildToElement
  78. static PyObject *(*__pyx_api_f_4lxml_5etree_pyunicode)(const xmlChar *) = 0;
  79. #define pyunicode __pyx_api_f_4lxml_5etree_pyunicode
  80. static PyObject *(*__pyx_api_f_4lxml_5etree_utf8)(PyObject *) = 0;
  81. #define utf8 __pyx_api_f_4lxml_5etree_utf8
  82. static PyObject *(*__pyx_api_f_4lxml_5etree_getNsTag)(PyObject *) = 0;
  83. #define getNsTag __pyx_api_f_4lxml_5etree_getNsTag
  84. static PyObject *(*__pyx_api_f_4lxml_5etree_getNsTagWithEmptyNs)(PyObject *) = 0;
  85. #define getNsTagWithEmptyNs __pyx_api_f_4lxml_5etree_getNsTagWithEmptyNs
  86. static PyObject *(*__pyx_api_f_4lxml_5etree_namespacedName)(xmlNode *) = 0;
  87. #define namespacedName __pyx_api_f_4lxml_5etree_namespacedName
  88. static PyObject *(*__pyx_api_f_4lxml_5etree_namespacedNameFromNsName)(const xmlChar *, const xmlChar *) = 0;
  89. #define namespacedNameFromNsName __pyx_api_f_4lxml_5etree_namespacedNameFromNsName
  90. static void (*__pyx_api_f_4lxml_5etree_iteratorStoreNext)(struct LxmlElementIterator *, struct LxmlElement *) = 0;
  91. #define iteratorStoreNext __pyx_api_f_4lxml_5etree_iteratorStoreNext
  92. static void (*__pyx_api_f_4lxml_5etree_initTagMatch)(struct LxmlElementTagMatcher *, PyObject *) = 0;
  93. #define initTagMatch __pyx_api_f_4lxml_5etree_initTagMatch
  94. static xmlNs *(*__pyx_api_f_4lxml_5etree_findOrBuildNodeNsPrefix)(struct LxmlDocument *, xmlNode *, const xmlChar *, const xmlChar *) = 0;
  95. #define findOrBuildNodeNsPrefix __pyx_api_f_4lxml_5etree_findOrBuildNodeNsPrefix
  96. #if !defined(__Pyx_PyIdentifier_FromString)
  97. #if PY_MAJOR_VERSION < 3
  98. #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
  99. #else
  100. #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
  101. #endif
  102. #endif
  103. #ifndef __PYX_HAVE_RT_ImportModule
  104. #define __PYX_HAVE_RT_ImportModule
  105. static PyObject *__Pyx_ImportModule(const char *name) {
  106. PyObject *py_name = 0;
  107. PyObject *py_module = 0;
  108. py_name = __Pyx_PyIdentifier_FromString(name);
  109. if (!py_name)
  110. goto bad;
  111. py_module = PyImport_Import(py_name);
  112. Py_DECREF(py_name);
  113. return py_module;
  114. bad:
  115. Py_XDECREF(py_name);
  116. return 0;
  117. }
  118. #endif
  119. #ifndef __PYX_HAVE_RT_ImportFunction
  120. #define __PYX_HAVE_RT_ImportFunction
  121. static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
  122. PyObject *d = 0;
  123. PyObject *cobj = 0;
  124. union {
  125. void (*fp)(void);
  126. void *p;
  127. } tmp;
  128. d = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
  129. if (!d)
  130. goto bad;
  131. cobj = PyDict_GetItemString(d, funcname);
  132. if (!cobj) {
  133. PyErr_Format(PyExc_ImportError,
  134. "%.200s does not export expected C function %.200s",
  135. PyModule_GetName(module), funcname);
  136. goto bad;
  137. }
  138. #if PY_VERSION_HEX >= 0x02070000
  139. if (!PyCapsule_IsValid(cobj, sig)) {
  140. PyErr_Format(PyExc_TypeError,
  141. "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
  142. PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj));
  143. goto bad;
  144. }
  145. tmp.p = PyCapsule_GetPointer(cobj, sig);
  146. #else
  147. {const char *desc, *s1, *s2;
  148. desc = (const char *)PyCObject_GetDesc(cobj);
  149. if (!desc)
  150. goto bad;
  151. s1 = desc; s2 = sig;
  152. while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
  153. if (*s1 != *s2) {
  154. PyErr_Format(PyExc_TypeError,
  155. "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
  156. PyModule_GetName(module), funcname, sig, desc);
  157. goto bad;
  158. }
  159. tmp.p = PyCObject_AsVoidPtr(cobj);}
  160. #endif
  161. *f = tmp.fp;
  162. if (!(*f))
  163. goto bad;
  164. Py_DECREF(d);
  165. return 0;
  166. bad:
  167. Py_XDECREF(d);
  168. return -1;
  169. }
  170. #endif
  171. static int import_lxml__etree(void) {
  172. PyObject *module = 0;
  173. module = __Pyx_ImportModule("lxml.etree");
  174. if (!module) goto bad;
  175. if (__Pyx_ImportFunction(module, "deepcopyNodeToDocument", (void (**)(void))&__pyx_api_f_4lxml_5etree_deepcopyNodeToDocument, "struct LxmlElement *(struct LxmlDocument *, xmlNode *)") < 0) goto bad;
  176. if (__Pyx_ImportFunction(module, "elementTreeFactory", (void (**)(void))&__pyx_api_f_4lxml_5etree_elementTreeFactory, "struct LxmlElementTree *(struct LxmlElement *)") < 0) goto bad;
  177. if (__Pyx_ImportFunction(module, "newElementTree", (void (**)(void))&__pyx_api_f_4lxml_5etree_newElementTree, "struct LxmlElementTree *(struct LxmlElement *, PyObject *)") < 0) goto bad;
  178. if (__Pyx_ImportFunction(module, "adoptExternalDocument", (void (**)(void))&__pyx_api_f_4lxml_5etree_adoptExternalDocument, "struct LxmlElementTree *(xmlDoc *, PyObject *, int)") < 0) goto bad;
  179. if (__Pyx_ImportFunction(module, "elementFactory", (void (**)(void))&__pyx_api_f_4lxml_5etree_elementFactory, "struct LxmlElement *(struct LxmlDocument *, xmlNode *)") < 0) goto bad;
  180. if (__Pyx_ImportFunction(module, "makeElement", (void (**)(void))&__pyx_api_f_4lxml_5etree_makeElement, "struct LxmlElement *(PyObject *, struct LxmlDocument *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *)") < 0) goto bad;
  181. if (__Pyx_ImportFunction(module, "makeSubElement", (void (**)(void))&__pyx_api_f_4lxml_5etree_makeSubElement, "struct LxmlElement *(struct LxmlElement *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *)") < 0) goto bad;
  182. if (__Pyx_ImportFunction(module, "setElementClassLookupFunction", (void (**)(void))&__pyx_api_f_4lxml_5etree_setElementClassLookupFunction, "void (_element_class_lookup_function, PyObject *)") < 0) goto bad;
  183. if (__Pyx_ImportFunction(module, "lookupDefaultElementClass", (void (**)(void))&__pyx_api_f_4lxml_5etree_lookupDefaultElementClass, "PyObject *(PyObject *, PyObject *, xmlNode *)") < 0) goto bad;
  184. if (__Pyx_ImportFunction(module, "lookupNamespaceElementClass", (void (**)(void))&__pyx_api_f_4lxml_5etree_lookupNamespaceElementClass, "PyObject *(PyObject *, PyObject *, xmlNode *)") < 0) goto bad;
  185. if (__Pyx_ImportFunction(module, "callLookupFallback", (void (**)(void))&__pyx_api_f_4lxml_5etree_callLookupFallback, "PyObject *(struct LxmlFallbackElementClassLookup *, struct LxmlDocument *, xmlNode *)") < 0) goto bad;
  186. if (__Pyx_ImportFunction(module, "tagMatches", (void (**)(void))&__pyx_api_f_4lxml_5etree_tagMatches, "int (xmlNode *, const xmlChar *, const xmlChar *)") < 0) goto bad;
  187. if (__Pyx_ImportFunction(module, "documentOrRaise", (void (**)(void))&__pyx_api_f_4lxml_5etree_documentOrRaise, "struct LxmlDocument *(PyObject *)") < 0) goto bad;
  188. if (__Pyx_ImportFunction(module, "rootNodeOrRaise", (void (**)(void))&__pyx_api_f_4lxml_5etree_rootNodeOrRaise, "struct LxmlElement *(PyObject *)") < 0) goto bad;
  189. if (__Pyx_ImportFunction(module, "hasText", (void (**)(void))&__pyx_api_f_4lxml_5etree_hasText, "int (xmlNode *)") < 0) goto bad;
  190. if (__Pyx_ImportFunction(module, "hasTail", (void (**)(void))&__pyx_api_f_4lxml_5etree_hasTail, "int (xmlNode *)") < 0) goto bad;
  191. if (__Pyx_ImportFunction(module, "textOf", (void (**)(void))&__pyx_api_f_4lxml_5etree_textOf, "PyObject *(xmlNode *)") < 0) goto bad;
  192. if (__Pyx_ImportFunction(module, "tailOf", (void (**)(void))&__pyx_api_f_4lxml_5etree_tailOf, "PyObject *(xmlNode *)") < 0) goto bad;
  193. if (__Pyx_ImportFunction(module, "setNodeText", (void (**)(void))&__pyx_api_f_4lxml_5etree_setNodeText, "int (xmlNode *, PyObject *)") < 0) goto bad;
  194. if (__Pyx_ImportFunction(module, "setTailText", (void (**)(void))&__pyx_api_f_4lxml_5etree_setTailText, "int (xmlNode *, PyObject *)") < 0) goto bad;
  195. if (__Pyx_ImportFunction(module, "attributeValue", (void (**)(void))&__pyx_api_f_4lxml_5etree_attributeValue, "PyObject *(xmlNode *, xmlAttr *)") < 0) goto bad;
  196. if (__Pyx_ImportFunction(module, "attributeValueFromNsName", (void (**)(void))&__pyx_api_f_4lxml_5etree_attributeValueFromNsName, "PyObject *(xmlNode *, const xmlChar *, const xmlChar *)") < 0) goto bad;
  197. if (__Pyx_ImportFunction(module, "getAttributeValue", (void (**)(void))&__pyx_api_f_4lxml_5etree_getAttributeValue, "PyObject *(struct LxmlElement *, PyObject *, PyObject *)") < 0) goto bad;
  198. if (__Pyx_ImportFunction(module, "iterattributes", (void (**)(void))&__pyx_api_f_4lxml_5etree_iterattributes, "PyObject *(struct LxmlElement *, int)") < 0) goto bad;
  199. if (__Pyx_ImportFunction(module, "collectAttributes", (void (**)(void))&__pyx_api_f_4lxml_5etree_collectAttributes, "PyObject *(xmlNode *, int)") < 0) goto bad;
  200. if (__Pyx_ImportFunction(module, "setAttributeValue", (void (**)(void))&__pyx_api_f_4lxml_5etree_setAttributeValue, "int (struct LxmlElement *, PyObject *, PyObject *)") < 0) goto bad;
  201. if (__Pyx_ImportFunction(module, "delAttribute", (void (**)(void))&__pyx_api_f_4lxml_5etree_delAttribute, "int (struct LxmlElement *, PyObject *)") < 0) goto bad;
  202. if (__Pyx_ImportFunction(module, "delAttributeFromNsName", (void (**)(void))&__pyx_api_f_4lxml_5etree_delAttributeFromNsName, "int (xmlNode *, const xmlChar *, const xmlChar *)") < 0) goto bad;
  203. if (__Pyx_ImportFunction(module, "hasChild", (void (**)(void))&__pyx_api_f_4lxml_5etree_hasChild, "int (xmlNode *)") < 0) goto bad;
  204. if (__Pyx_ImportFunction(module, "findChild", (void (**)(void))&__pyx_api_f_4lxml_5etree_findChild, "xmlNode *(xmlNode *, Py_ssize_t)") < 0) goto bad;
  205. if (__Pyx_ImportFunction(module, "findChildForwards", (void (**)(void))&__pyx_api_f_4lxml_5etree_findChildForwards, "xmlNode *(xmlNode *, Py_ssize_t)") < 0) goto bad;
  206. if (__Pyx_ImportFunction(module, "findChildBackwards", (void (**)(void))&__pyx_api_f_4lxml_5etree_findChildBackwards, "xmlNode *(xmlNode *, Py_ssize_t)") < 0) goto bad;
  207. if (__Pyx_ImportFunction(module, "nextElement", (void (**)(void))&__pyx_api_f_4lxml_5etree_nextElement, "xmlNode *(xmlNode *)") < 0) goto bad;
  208. if (__Pyx_ImportFunction(module, "previousElement", (void (**)(void))&__pyx_api_f_4lxml_5etree_previousElement, "xmlNode *(xmlNode *)") < 0) goto bad;
  209. if (__Pyx_ImportFunction(module, "appendChild", (void (**)(void))&__pyx_api_f_4lxml_5etree_appendChild, "void (struct LxmlElement *, struct LxmlElement *)") < 0) goto bad;
  210. if (__Pyx_ImportFunction(module, "appendChildToElement", (void (**)(void))&__pyx_api_f_4lxml_5etree_appendChildToElement, "int (struct LxmlElement *, struct LxmlElement *)") < 0) goto bad;
  211. if (__Pyx_ImportFunction(module, "pyunicode", (void (**)(void))&__pyx_api_f_4lxml_5etree_pyunicode, "PyObject *(const xmlChar *)") < 0) goto bad;
  212. if (__Pyx_ImportFunction(module, "utf8", (void (**)(void))&__pyx_api_f_4lxml_5etree_utf8, "PyObject *(PyObject *)") < 0) goto bad;
  213. if (__Pyx_ImportFunction(module, "getNsTag", (void (**)(void))&__pyx_api_f_4lxml_5etree_getNsTag, "PyObject *(PyObject *)") < 0) goto bad;
  214. if (__Pyx_ImportFunction(module, "getNsTagWithEmptyNs", (void (**)(void))&__pyx_api_f_4lxml_5etree_getNsTagWithEmptyNs, "PyObject *(PyObject *)") < 0) goto bad;
  215. if (__Pyx_ImportFunction(module, "namespacedName", (void (**)(void))&__pyx_api_f_4lxml_5etree_namespacedName, "PyObject *(xmlNode *)") < 0) goto bad;
  216. if (__Pyx_ImportFunction(module, "namespacedNameFromNsName", (void (**)(void))&__pyx_api_f_4lxml_5etree_namespacedNameFromNsName, "PyObject *(const xmlChar *, const xmlChar *)") < 0) goto bad;
  217. if (__Pyx_ImportFunction(module, "iteratorStoreNext", (void (**)(void))&__pyx_api_f_4lxml_5etree_iteratorStoreNext, "void (struct LxmlElementIterator *, struct LxmlElement *)") < 0) goto bad;
  218. if (__Pyx_ImportFunction(module, "initTagMatch", (void (**)(void))&__pyx_api_f_4lxml_5etree_initTagMatch, "void (struct LxmlElementTagMatcher *, PyObject *)") < 0) goto bad;
  219. if (__Pyx_ImportFunction(module, "findOrBuildNodeNsPrefix", (void (**)(void))&__pyx_api_f_4lxml_5etree_findOrBuildNodeNsPrefix, "xmlNs *(struct LxmlDocument *, xmlNode *, const xmlChar *, const xmlChar *)") < 0) goto bad;
  220. Py_DECREF(module); module = 0;
  221. return 0;
  222. bad:
  223. Py_XDECREF(module);
  224. return -1;
  225. }
  226. #endif /* !__PYX_HAVE_API__lxml__etree */