1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
===============
ToDo's for lxml
===============
lxml
====
In general
----------
* more testing on multi-threading
* better exception messages for XPath and schemas based on error log,
e.g. missing namespace mappings in XPath
* when building statically, compile everything into one shared library
instead of one for lxml.etree and one for lxml.objectify to prevent
the redundant static linking of the library dependencies.
* more testing on input/output of encoded filenames, including custom
resolvers, relative XSLT imports, ...
* always use '<string>' as URL when tree was parsed from string? (can libxml2
handle this?)
* follow PEP 8 in API naming (avoidCamelCase in_favour_of_underscores)
* use per-call or per-thread error logs in XSLT/XPath/etc. to keep the
messages separate, especially in exceptions
* add 'nsmap' parameter to cleanup_namespaces()
* fix tail text handling in addnext()/addprevious()
* make Element nsmap editable to allow defining new namespaces (LP#555602)
Entities
--------
* clean support for entities (is the Entity element class enough?)
Objectify
---------
* emulate setting special __attributes__ on ObjectifiedElement's as Python
attributes, not XML children
Incremental parsing
-------------------
* create all iterparse events only on start events and
store the end events in the stack
* rewrite SAX event creation in a more C-ish way to avoid having to
acquire the GIL on each event
|