=============== 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 * more testing on input/output of encoded filenames, including custom resolvers, relative XSLT imports, ... * always use '' 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() XML Parser ---------- * provide a way to let users pass in a custom DTD for validation HTML Parser ----------- * provide a parser wrapper that handles broken encodings in broken HTML better, e.g. using BeautifulSoup's "unicode dammit" analyser QName ----- * expose prefix support? 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 Maybe ----- * rewrite iterparse() to accept a parser as argument instead of being one (or maybe not: iterparse() can't deal with all parser options anyway).