#ifndef __HAS_PYX_etree
#define __HAS_PYX_etree
#ifdef __cplusplus
#define __PYX_EXTERN_C extern "C"
#else
#define __PYX_EXTERN_C extern
#endif
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlDocumentType;
struct LxmlDocument {
PyObject_HEAD
struct __pyx_vtabstruct_5etree__Document *__pyx_vtab;
int _ns_counter;
xmlDoc (*_c_doc);
struct __pyx_obj_5etree__BaseParser *_parser;
};
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementType;
struct LxmlElement {
PyObject_HEAD
struct LxmlDocument *_doc;
xmlNode (*_c_node);
PyObject *_tag;
PyObject *_attrib;
};
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementTreeType;
struct LxmlElementTree {
PyObject_HEAD
struct __pyx_vtabstruct_5etree__ElementTree *__pyx_vtab;
struct LxmlDocument *_doc;
struct LxmlElement *_context_node;
};
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementTagMatcherType;
struct LxmlElementTagMatcher {
PyObject_HEAD
struct __pyx_vtabstruct_5etree__ElementTagMatcher *__pyx_vtab;
PyObject *_pystrings;
char (*_href);
char (*_name);
};
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementIteratorType;
struct LxmlElementIterator {
struct LxmlElementTagMatcher __pyx_base;
struct LxmlElement *_node;
xmlNode (*((*_next_element)(xmlNode (*))));
};
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementBaseType;
struct LxmlElementBase {
struct LxmlElement __pyx_base;
};
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementClassLookupType;
struct LxmlElementClassLookup {
PyObject_HEAD
PyObject *((*_lookup_function)(PyObject *,struct LxmlDocument *,xmlNode (*)));
};
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlFallbackElementClassLookupType;
struct LxmlFallbackElementClassLookup {
struct LxmlElementClassLookup __pyx_base;
struct __pyx_vtabstruct_5etree_FallbackElementClassLookup *__pyx_vtab;
struct LxmlElementClassLookup *fallback;
PyObject *((*_fallback_function)(PyObject *,struct LxmlDocument *,xmlNode (*)));
};
static void ((*appendChild)(struct LxmlElement *,struct LxmlElement *));
static PyObject *((*attributeValue)(xmlNode (*),xmlAttr (*)));
static PyObject *((*attributeValueFromNsName)(xmlNode (*),char (*),char (*)));
static PyObject *((*callLookupFallback)(struct LxmlFallbackElementClassLookup *,struct LxmlDocument *,xmlNode (*)));
static struct LxmlElement *((*deepcopyNodeToDocument)(struct LxmlDocument *,xmlNode (*)));
static int ((*delAttribute)(struct LxmlElement *,PyObject *));
static int ((*delAttributeFromNsName)(xmlNode (*),char (*),char (*)));
static struct LxmlDocument *((*documentOrRaise)(PyObject *));
static struct LxmlElement *((*elementFactory)(struct LxmlDocument *,xmlNode (*)));
static struct LxmlElementTree *((*elementTreeFactory)(struct LxmlElement *));
static xmlNode (*((*findChild)(xmlNode (*),Py_ssize_t )));
static xmlNode (*((*findChildBackwards)(xmlNode (*),Py_ssize_t )));
static xmlNode (*((*findChildForwards)(xmlNode (*),Py_ssize_t )));
static xmlNs (*((*findOrBuildNodeNs)(struct LxmlDocument *,xmlNode (*),char (*))));
static PyObject *((*getAttributeValue)(struct LxmlElement *,PyObject *,PyObject *));
static PyObject *((*getNsTag)(PyObject *));
static void ((*initTagMatch)(struct LxmlElementTagMatcher *,PyObject *));
static void ((*iteratorStoreNext)(struct LxmlElementIterator *,struct LxmlElement *));
static PyObject *((*iterattributes)(struct LxmlElement *,int ));
static PyObject *((*lookupDefaultElementClass)(PyObject *,PyObject *,xmlNode (*)));
static PyObject *((*lookupNamespaceElementClass)(PyObject *,PyObject *,xmlNode (*)));
static struct LxmlElement *((*makeElement)(PyObject *,struct LxmlDocument *,PyObject *,PyObject *,PyObject *,PyObject *,PyObject *));
static PyObject *((*namespacedName)(xmlNode (*)));
static PyObject *((*namespacedNameFromNsName)(char (*),char (*)));
static struct LxmlElementTree *((*newElementTree)(struct LxmlElement *,PyObject *));
static xmlNode (*((*nextElement)(xmlNode (*))));
static xmlNode (*((*previousElement)(xmlNode (*))));
static PyObject *((*pyunicode)(char (*)));
static struct LxmlElement *((*rootNodeOrRaise)(PyObject *));
static int ((*setAttributeValue)(struct LxmlElement *,PyObject *,PyObject *));
static void ((*setElementClassLookupFunction)(PyObject *((*)(PyObject *,struct LxmlDocument *,xmlNode (*))),PyObject *));
static int ((*setNodeText)(xmlNode (*),PyObject *));
static int ((*setTailText)(xmlNode (*),PyObject *));
static int ((*tagMatches)(xmlNode (*),char (*),char (*)));
static PyObject *((*tailOf)(xmlNode (*)));
static PyObject *((*textOf)(xmlNode (*)));
static PyObject *((*utf8)(PyObject *));
static struct {char *s; void **p;} _etree_API[] = {
{"appendChild", &appendChild},
{"attributeValue", &attributeValue},
{"attributeValueFromNsName", &attributeValueFromNsName},
{"callLookupFallback", &callLookupFallback},
{"deepcopyNodeToDocument", &deepcopyNodeToDocument},
{"delAttribute", &delAttribute},
{"delAttributeFromNsName", &delAttributeFromNsName},
{"documentOrRaise", &documentOrRaise},
{"elementFactory", &elementFactory},
{"elementTreeFactory", &elementTreeFactory},
{"findChild", &findChild},
{"findChildBackwards", &findChildBackwards},
{"findChildForwards", &findChildForwards},
{"findOrBuildNodeNs", &findOrBuildNodeNs},
{"getAttributeValue", &getAttributeValue},
{"getNsTag", &getNsTag},
{"initTagMatch", &initTagMatch},
{"iteratorStoreNext", &iteratorStoreNext},
{"iterattributes", &iterattributes},
{"lookupDefaultElementClass", &lookupDefaultElementClass},
{"lookupNamespaceElementClass", &lookupNamespaceElementClass},
{"makeElement", &makeElement},
{"namespacedName", &namespacedName},
{"namespacedNameFromNsName", &namespacedNameFromNsName},
{"newElementTree", &newElementTree},
{"nextElement", &nextElement},
{"previousElement", &previousElement},
{"pyunicode", &pyunicode},
{"rootNodeOrRaise", &rootNodeOrRaise},
{"setAttributeValue", &setAttributeValue},
{"setElementClassLookupFunction", &setElementClassLookupFunction},
{"setNodeText", &setNodeText},
{"setTailText", &setTailText},
{"tagMatches", &tagMatches},
{"tailOf", &tailOf},
{"textOf", &textOf},
{"utf8", &utf8},
{0, 0}
};
/* Return -1 and set exception on error, 0 on success. */
static int
import_etree(PyObject *module)
{
if (module != NULL)
{
int (*init)(struct {const char *s; const void **p;}*);
PyObject* c_api_init;
c_api_init = PyObject_GetAttrString(module,
"_import_c_api");
if (!c_api_init)
return -1;
if (!PyCObject_Check(c_api_init))
{
Py_DECREF(c_api_init);
PyErr_SetString(PyExc_RuntimeError,
"etree module provided an invalid C-API reference");
return -1;
}
init = PyCObject_AsVoidPtr(c_api_init);
Py_DECREF(c_api_init);
if (!init)
{
PyErr_SetString(PyExc_RuntimeError,
"etree module returned NULL pointer for C-API init function");
return -1;
}
if (init(_etree_API))
return -1;
}
return 0;
}
PyMODINIT_FUNC initetree(void);
#endif /* __HAS_PYX_etree */
syntax highlighted by Code2HTML, v. 0.9.1