summaryrefslogtreecommitdiff
path: root/TODO.txt
blob: d51ef6964423cf7f3c5eddd25ee4287918651386 (plain)
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