Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 2759 lines (1764 sloc) 79.345 kb
517a412 [svn r1588] removed reference to 1.0.beta version from CHANGES.txt - alp...
scoder authored
1 ==============
0597071 [svn r275] Prepare for 0.5.1 bugfix release.
faassen authored
2 lxml changelog
3 ==============
4
0f6c788 @scoder changelog
scoder authored
5 Under development
6 =====================
7
8 Features added
9 --------------
10
11 Bugs fixed
12 ----------
13
14 * End-of-file handling was incorrect in iterparse() when reading from
15 a low-level C file stream and failed in libxml2 2.9.0 due to its
16 improved consistency checks.
17
18 Other changes
19 -------------
20
21
26358d2 @scoder prepare release of lxml 3.0beta1
scoder authored
22 3.0beta1 (2012-09-26)
690704d @scoder prepare release of lxml 3.0b1
scoder authored
23 =====================
89a058c @scoder changelog
scoder authored
24
25 Features added
26 --------------
27
878b6be @scoder initial Python API for libxml2 memory debugging features
scoder authored
28 * Python level access to (optional) libxml2 memory debugging features
29 to simplify debugging of memory leaks etc.
30
89a058c @scoder changelog
scoder authored
31 Bugs fixed
32 ----------
33
1286086 @scoder changelog
scoder authored
34 * Fix a memory leak in XPath by switching to Cython 0.17.1.
35
690704d @scoder prepare release of lxml 3.0b1
scoder authored
36 * Some tests were adapted to work with PyPy.
37
89a058c @scoder changelog
scoder authored
38 Other changes
39 -------------
40
41 * The code was adapted to work with the upcoming libxml2 2.9.0 release.
42
43
ff1ba90 @scoder prepare release of 3.0alpha2
scoder authored
44 3.0alpha2 (2012-08-23)
095468b @scoder fix parsing when long Unicode strings are passed into the feed() method:...
scoder authored
45 ======================
46
47 Features added
48 --------------
49
4e1e685 @SimonSapin Add support for tag="{*}name" in _Element.iter() and friends.
authored
50 * The ``.iter()`` method of elements now accepts ``tag`` arguments like
51 ``"{*}name"`` to search for elements with a given local name in any
52 namespace. With this addition, all combinations of wildcards now work
53 as expected:
54 ``"{ns}name"``, ``"{}name"``, ``"{*}name"``, ``"{ns}*"``, ``"{}*"``
55 and ``"{*}*"``. Note that ``"name"`` is equivalent to ``"{}name"``,
56 but ``"*"`` is ``"{*}*"``.
57 The same change applies to the ``.getiterator()``, ``.itersiblings()``,
58 ``.iterancestors()``, ``.iterdescendants()``, ``.iterchildren()``
87d6821 @SimonSapin Mention iterparse in the changelog for tag="{*}e"
authored
59 and ``.itertext()`` methods;the ``strip_attributes()``,
60 ``strip_elements()`` and ``strip_tags()`` functions as well as the
61 ``iterparse()`` class.
4e1e685 @SimonSapin Add support for tag="{*}name" in _Element.iter() and friends.
authored
62
4a7c63c @scoder changelog
scoder authored
63 * C14N allows specifying the inclusive prefixes to be promoted
64 to top-level during exclusive serialisation.
65
095468b @scoder fix parsing when long Unicode strings are passed into the feed() method:...
scoder authored
66 Bugs fixed
67 ----------
68
69 * Passing long Unicode strings into the ``feed()`` parser interface
70 failed to read the entire string.
71
72 Other changes
73 -------------
74
75
bf47a97 @scoder prepare release of 3.0alpha1
scoder authored
76 3.0alpha1 (2012-07-31)
77 ======================
6d66091 reexport etree.SubElement as objectify.SubElement, increase minor versio...
Stefan Behnel authored
78
79 Features added
80 --------------
81
bf47a97 @scoder prepare release of 3.0alpha1
scoder authored
82 * Initial support for building in PyPy (through cpyext).
83
3beae9c @scoder changelog
scoder authored
84 * DTD objects gained an API that allows read access to their
85 declarations.
86
cbf8b8f @scoder changelog
scoder authored
87 * ``xpathgrep.py`` gained support for parsing line-by-line (e.g.
88 from grep output) and for surrounding the output with a new root
89 tag.
90
53e7c49 @scoder changelog
scoder authored
91 * ``E-factory`` in ``lxml.builder`` accepts subtypes of known data
92 types (such as string subtypes) when building elements around them.
93
b75c93c @scoder implement multi-tag selection for iterparse()
scoder authored
94 * Tree iteration and ``iterparse()`` with a selective ``tag``
95 argument supports passing a set of tags. Tree nodes will be
96 returned by the iterators if they match any of the tags.
bdbfebb @scoder partial rewrite of element iterators to support multiple tags for the ta...
scoder authored
97
6d66091 reexport etree.SubElement as objectify.SubElement, increase minor versio...
Stefan Behnel authored
98 Bugs fixed
99 ----------
100
41b83a8 @scoder remove special implementations of the .find*() methods from lxml.objecti...
scoder authored
101 * The ``.find*()`` methods in ``lxml.objectify`` no longer use XPath
102 internally, which makes them faster in many cases (especially when
103 short circuiting after a single or couple of elements) and fixes
104 some behavioural differences compared to ``lxml.etree``. Note that
105 this means that they no longer support arbitrary XPath expressions
106 but only the subset that the ``ElementPath`` language supports.
107 The previous implementation was also redundant with the normal
108 XPath support, which can be used as a replacement.
109
a678b15 @scoder prevent el.find('*') from returning PIs and comments
scoder authored
110 * ``el.find('*')`` could accidentally return a comment or processing
111 instruction that happened to be in the wrong spot. (Same for the
112 other ``.find*()`` methods.)
113
fd07480 @scoder changelog
scoder authored
114 * The error logging is less intrusive and avoids a global setup where
115 possible.
116
44bcba0 @scoder changelog
scoder authored
117 * Fixed undefined names in html5lib parser.
118
cbf8b8f @scoder changelog
scoder authored
119 * ``xpathgrep.py`` did not work in Python 3.
120
124faa5 @scoder implement support for element.attrib.update(el.attrib)
scoder authored
121 * ``Element.attrib.update()`` did not accept an ``attrib`` of
122 another Element as parameter.
123
f1959a6 @scoder make sure the E-Factory feature of the ElementBase constructor can alway...
scoder authored
124 * For subtypes of ``ElementBase`` that make the ``.text`` or ``.tail``
125 properties immutable (as in objectify, for example), inserting text
126 when creating Elements through the E-Factory feature of the class
127 constructor would fail with an exception, stating that the text
128 cannot be modified.
129
6d66091 reexport etree.SubElement as objectify.SubElement, increase minor versio...
Stefan Behnel authored
130 Other changes
131 --------------
132
1b8cea8 @scoder changelog
scoder authored
133 * The code base was overhauled to properly use 'const' where the API
bf47a97 @scoder prepare release of 3.0alpha1
scoder authored
134 of libxml2 and libxslt requests it. This also has an impact on the
1b8cea8 @scoder changelog
scoder authored
135 public C-API of lxml itself, as defined in ``etreepublic.pxd``, as
136 well as the provided declarations in the ``lxml/includes/`` directory.
137 Code that uses these declarations may have to be adapted. On the
138 plus side, this fixes several C compiler warnings, also for user
139 code, thus making it easier to spot real problems again.
140
544f1b4 @scoder changelog
scoder authored
141 * The functionality of "lxml.cssselect" was moved into a separate PyPI
142 package called "cssselect". To continue using it, you must install
143 that package separately. The "lxml.cssselect" module is still
144 available and provides the same interface, provided the "cssselect"
145 package can be imported at runtime.
146
e5d7aa3 @scoder sort attributes at Element creation time to make their creation order pr...
scoder authored
147 * Element attributes passed in as an ``attrib`` dict or as keyword
148 arguments are now sorted by (namespaced) name before being created
149 to make their order predictable for serialisation and iteration.
150 Note that adding or deleting attributes afterwards does not take
151 that order into account, i.e. setting a new attribute appends it
152 after the existing ones.
153
b5b0120 @scoder changelog
scoder authored
154 * Several classes that are for internal use only were removed
155 from the ``lxml.etree`` module dict:
6f69f98 @scoder changelog formatting
scoder authored
156 ``_InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext,
b5b0120 @scoder changelog
scoder authored
157 _ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext,
158 __ContentOnlyElement, _AttribIterator, _NamespaceRegistry,
159 _ClassNamespaceRegistry, _FunctionNamespaceRegistry,
160 _XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
161 _FileReaderContext, _ParserContext, _PythonSaxParserTarget,
162 _TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy,
163 _ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper,
164 _OpaqueDocumentWrapper, _ModifyContentOnlyProxy,
165 _ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
166 _AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter,
167 _ParserSchemaValidationContext, _XPathContext,
6f69f98 @scoder changelog formatting
scoder authored
168 _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam``
b5b0120 @scoder changelog
scoder authored
169
170 * Several internal classes can no longer be inherited from:
6f69f98 @scoder changelog formatting
scoder authored
171 ``_InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult,
b5b0120 @scoder changelog
scoder authored
172 _IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry,
173 _XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
174 _FileReaderContext, _PythonSaxParserTarget, _TargetParserContext,
175 _ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper,
176 _ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
177 _AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext,
178 _XPathContext, _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam,
6f69f98 @scoder changelog formatting
scoder authored
179 _XSLTResultTree, _XSLTProcessingInstruction``
b5b0120 @scoder changelog
scoder authored
180
181
1f44374 @scoder prepare release of 2.3.6
scoder authored
182 2.3.6 (2012-09-28)
b03634c @scoder fix parsing when long Unicode strings are passed into the feed() method:...
scoder authored
183 ==================
184
185 Features added
186 --------------
187
188 Bugs fixed
189 ----------
190
191 * Passing long Unicode strings into the ``feed()`` parser interface
192 failed to read the entire string.
193
194 Other changes
195 --------------
196
197
6b80a87 @scoder prepare release of 2.3.5
scoder authored
198 2.3.5 (2012-07-31)
901c891 @scoder changelog
scoder authored
199 ==================
200
201 Features added
202 --------------
203
204 Bugs fixed
205 ----------
206
d7c216d @scoder fix crash in tail text handling utility functions
scoder authored
207 * Crash when merging text nodes in ``element.remove()``.
208
901c891 @scoder changelog
scoder authored
209 * Crash in sax/target parser when reporting empty doctype.
210
211 Other changes
212 --------------
213
214
c8cde5d @scoder prepare release of 2.3.4
scoder authored
215 2.3.4 (2012-03-26)
ec5a50e @scoder fix compile error reporting for XSLT stylesheet compilation
scoder authored
216 ==================
217
218 Features added
219 --------------
220
221 Bugs fixed
222 ----------
223
5330b26 @scoder changelog
scoder authored
224 * Crash when building an nsmap (Element property) with empty
225 namespace URIs.
226
f26e2e8 @scoder changelog
scoder authored
227 * Crash due to race condition when errors (or user messages) occur
228 during threaded XSLT processing.
229
ec5a50e @scoder fix compile error reporting for XSLT stylesheet compilation
scoder authored
230 * XSLT stylesheet compilation could ignore compilation errors.
231
232 Other changes
233 --------------
234
235
f8ee4fb @scoder prepare release of lxml 2.3.3
scoder authored
236 2.3.3 (2012-01-04)
237 ==================
238
239 Features added
240 --------------
241
242 * ``lxml.html.tostring()`` gained new serialisation options
243 ``with_tail`` and ``doctype``.
244
245 Bugs fixed
246 ----------
247
248 * Fixed a crash when using ``iterparse()`` for HTML parsing and
249 requesting start events.
250
251 * Fixed parsing of more selectors in cssselect. Whitespace before
252 pseudo-elements and pseudo-classes is significant as it is a
253 descendant combinator.
254 "E :pseudo" should parse the same as "E \*:pseudo", not "E:pseudo".
255 Patch by Simon Sapin.
256
257 * lxml.html.diff no longer raises an exception when hitting
258 'img' tags without 'src' attribute.
259
260 Other changes
261 --------------
262
263
4c325e1 @scoder prepare release of lxml 2.3.2
scoder authored
264 2.3.2 (2011-11-11)
265 ==================
6d66091 reexport etree.SubElement as objectify.SubElement, increase minor versio...
Stefan Behnel authored
266
267 Features added
268 --------------
269
c4e4fdb @scoder new option 'cleanup_namespaces' in objectify.deannotate()
scoder authored
270 * ``lxml.objectify.deannotate()`` has a new boolean option
271 ``cleanup_namespaces`` to remove the objectify namespace
272 declarations (and generally clean up the namespace declarations)
273 after removing the type annotations.
274
6d66091 reexport etree.SubElement as objectify.SubElement, increase minor versio...
Stefan Behnel authored
275 * ``lxml.objectify`` gained its own ``SubElement()`` function as a
276 copy of ``etree.SubElement`` to avoid an otherwise redundant import
277 of ``lxml.etree`` on the user side.
278
279 Bugs fixed
280 ----------
281
5fc9eac @scoder another fix for the 'descendant' problem in cssselect to undo a serious ...
scoder authored
282 * Fixed the "descendant" bug in cssselect a second time (after a first
283 fix in lxml 2.3.1). The previous change resulted in a serious
284 performance regression for the XPath based evaluation of the
285 translated expression. Note that this breaks the usage of some of
286 the generated XPath expressions as XSLT location paths that
287 previously worked in 2.3.1.
a2b966b @scoder formatting fix in CHANGES.txt
scoder authored
288
c3b80b7 @SimonSapin More tests and change log for the parsing bug in cssselect.
authored
289 * Fixed parsing of some selectors in cssselect. Whitespace after combinators
290 ">", "+" and "~" is now correctly ignored. Previously is was parsed as
291 a descendant combinator. For example, "div> .foo" was parsed the same as
ee15911 @scoder changelog
scoder authored
292 "div>* .foo" instead of "div>.foo". Patch by Simon Sapin.
5fc9eac @scoder another fix for the 'descendant' problem in cssselect to undo a serious ...
scoder authored
293
6d66091 reexport etree.SubElement as objectify.SubElement, increase minor versio...
Stefan Behnel authored
294 Other changes
295 --------------
296
297
e80ecaa prepare release of 2.3.1
Stefan Behnel authored
298 2.3.1 (2011-09-25)
299 ==================
57f49ee patch by Craig Dennis for bug 576775/718430: fix selection behaviour of ...
Stefan Behnel authored
300
301 Features added
302 --------------
303
b2f8c56 docs
Stefan Behnel authored
304 * New option ``kill_tags`` in ``lxml.html.clean`` to remove specific
305 tags and their content (i.e. their whole subtree).
306
b9bc13f support pi.get() and pi.attrib by parsing the text context for pseudo-at...
Stefan Behnel authored
307 * ``pi.get()`` and ``pi.attrib`` on processing instructions to parse
308 pseudo-attributes from the text content of processing instructions.
309
bdf88fa rename lxml.get_includes() to lxml.get_include() - sounds wrong, but the...
Stefan Behnel authored
310 * ``lxml.get_include()`` returns a list of include paths that can be
311 used to compile external C code against lxml.etree. This is
312 specifically required for statically linked lxml builds when code
313 needs to compile against the exact same header file versions as lxml
314 itself.
cddba93 comment, changelog
Stefan Behnel authored
315
48f115f let parse() and iterparse() only close files they opened themselves, pro...
Stefan Behnel authored
316 * ``Resolver.resolve_file()`` takes an additional option
317 ``close_file`` that configures if the file(-like) object will be
318 closed after reading or not. By default, the file will be closed,
319 as the user is not expected to keep a reference to it.
320
57f49ee patch by Craig Dennis for bug 576775/718430: fix selection behaviour of ...
Stefan Behnel authored
321 Bugs fixed
322 ----------
323
443e5b3 let cleaner drop 'data:' links just like it does for 'javascript:' links
Stefan Behnel authored
324 * HTML cleaning didn't remove 'data:' links.
325
21eb9ec replace html5lib integration with an import of the official lxml support...
Stefan Behnel authored
326 * The html5lib parser integration now uses the 'official'
327 implementation in html5lib itself, which makes it work with newer
328 releases of the library.
329
31f2a49 sax.py: use the same tag name building mechanism for endElementNS() as f...
Stefan Behnel authored
330 * In ``lxml.sax``, ``endElementNS()`` could incorrectly reject a plain
331 tag name when the corresponding start event inferred the same plain
332 tag name to be in the default namespace.
333
48f115f let parse() and iterparse() only close files they opened themselves, pro...
Stefan Behnel authored
334 * When an open file-like object is passed into ``parse()`` or
335 ``iterparse()``, the parser will no longer close it after use. This
336 reverts a change in lxml 2.3 where all files would be closed. It is
337 the users responsibility to properly close the file(-like) object,
338 also in error cases.
339
b767c28 changelog
Stefan Behnel authored
340 * Assertion error in lxml.html.cleaner when discarding top-level elements.
341
503d276 @lrowe In lxml.cssselect, use the xpath 'A//B' (short for
lrowe authored
342 * In lxml.cssselect, use the xpath 'A//B' (short for
5fc9eac @scoder another fix for the 'descendant' problem in cssselect to undo a serious ...
scoder authored
343 'A/descendant-or-self::node()/B') instead of 'A/descendant::B' for
344 the css descendant selector ('A B'). This makes a few edge cases
345 like ``"div *:last-child"`` consistent with the selector behavior in
346 WebKit and Firefox, and makes more css expressions valid location
347 paths (for use in xsl:template match).
503d276 @lrowe In lxml.cssselect, use the xpath 'A//B' (short for
lrowe authored
348
57f49ee patch by Craig Dennis for bug 576775/718430: fix selection behaviour of ...
Stefan Behnel authored
349 * In lxml.html, non-selected ``<option>`` tags no longer show up in the
350 collected form values.
351
352 * Adding/removing ``<option>`` values to/from a multiple select form
353 field properly selects them and unselects them.
354
355 Other changes
356 --------------
357
e80ecaa prepare release of 2.3.1
Stefan Behnel authored
358 * Static builds can specify the download directory with the
359 ``--download-dir`` option.
360
57f49ee patch by Craig Dennis for bug 576775/718430: fix selection behaviour of ...
Stefan Behnel authored
361
3c1bdaf [svn r4522] prepare release of 2.3 final
scoder authored
362 2.3 (2011-02-06)
363 ================
bcafea2 [svn r4477] fix 'marque' HTML tag name into 'marquee'
scoder authored
364
88706da [svn r4491] support '{}tag' in lxml.objectify child search as meaning ex...
scoder authored
365 Features added
366 --------------
367
368 * When looking for children, ``lxml.objectify`` takes '{}tag' as
369 meaning an empty namespace, as opposed to the parent namespace.
370
bcafea2 [svn r4477] fix 'marque' HTML tag name into 'marquee'
scoder authored
371 Bugs fixed
372 ----------
373
d0cf24b [svn r4512] immediately close files after parsing from them
scoder authored
374 * When finished reading from a file-like object, the parser
375 immediately calls its ``.close()`` method.
376
377 * When finished parsing, ``iterparse()`` immediately closes the input
29da054 [svn r4515] always close input file from iterparse(), not only when we o...
scoder authored
378 file.
7bf39a4 [svn r4510] make iterparse() close files immediately after parsing if it...
scoder authored
379
7d05582 [svn r4481] changelog
scoder authored
380 * Work-around for libxml2 bug that can leave the HTML parser in a
301bd0a [svn r4513] changelog
scoder authored
381 non-functional state after parsing a severly broken document (fixed
382 in libxml2 2.7.8).
7d05582 [svn r4481] changelog
scoder authored
383
bcafea2 [svn r4477] fix 'marque' HTML tag name into 'marquee'
scoder authored
384 * ``marque`` tag in HTML cleanup code is correctly named ``marquee``.
385
45a079d [svn r4490] changelog
scoder authored
386 Other changes
387 --------------
388
389 * Some public functions in the Cython-level C-API have more explicit
390 return types.
391
bcafea2 [svn r4477] fix 'marque' HTML tag name into 'marquee'
scoder authored
392
5347a88 [svn r4470] prepare release of 2.3beta1
scoder authored
393 2.3beta1 (2010-09-06)
394 =====================
3aa22f5 [svn r4444] r5647@lenny: sbehnel | 2010-07-26 21:42:46 +0200
scoder authored
395
396 Features added
397 --------------
398
399 Bugs fixed
400 ----------
401
266e519 [svn r4464] changelog
scoder authored
402 * Crash in newer libxml2 versions when moving elements between
403 documents that had attributes on replaced XInclude nodes.
404
2c94a4f [svn r4458] add missing 'parser' and 'base_url' parameters to XMLID()
scoder authored
405 * ``XMLID()`` function was missing the optional ``parser`` and
406 ``base_url`` parameters.
407
a34a017 [svn r4457] fix searching for wildcard tags in Py3
scoder authored
408 * Searching for wildcard tags in ``iterparse()`` was broken in Py3.
409
3aa22f5 [svn r4444] r5647@lenny: sbehnel | 2010-07-26 21:42:46 +0200
scoder authored
410 * ``lxml.html.open_in_browser()`` didn't work in Python 3 due to the
411 use of os.tempnam. It now takes an optional 'encoding' parameter.
412
413 Other changes
414 --------------
415
416
f891317 [svn r4441] r5643@lenny: sbehnel | 2010-07-24 21:58:03 +0200
scoder authored
417 2.3alpha2 (2010-07-24)
4a845c8 [svn r4434] r5631@lenny: sbehnel | 2010-07-14 19:21:04 +0200
scoder authored
418 ======================
419
dfa234b [svn r4440] r5638@lenny: sbehnel | 2010-07-24 20:36:20 +0200
scoder authored
420 Features added
421 --------------
422
423 Bugs fixed
424 ----------
425
426 * Crash in XSLT when generating text-only result documents with a
427 stylesheet created in a different thread.
428
4a845c8 [svn r4434] r5631@lenny: sbehnel | 2010-07-14 19:21:04 +0200
scoder authored
429 Other changes
430 --------------
431
432 * ``repr()`` of Element objects shows the hex ID with leading 0x
433 (following ElementTree 1.3).
434
435
38acd43 [svn r4420] r5605@lenny: sbehnel | 2010-06-19 10:53:40 +0200
scoder authored
436 2.3alpha1 (2010-06-19)
437 ======================
fb943cb [svn r4180] r5180@delle: sbehnel | 2009-07-11 21:43:07 +0200
scoder authored
438
439 Features added
440 --------------
441
91a6b5f [svn r4400] r5565@lenny: sbehnel | 2010-04-11 19:34:52 +0200
scoder authored
442 * Keyword argument ``namespaces`` in ``lxml.cssselect.CSSSelector()``
443 to pass a prefix-to-namespace mapping for the selector.
444
102f4d3 [svn r4392] r5550@lenny: sbehnel | 2010-04-01 23:09:19 +0200
scoder authored
445 * New function ``lxml.etree.register_namespace(prefix, uri)`` that
446 globally registers a namespace prefix for a namespace that newly
447 created Elements in that namespace will use automatically. Follows
448 ElementTree 1.3.
449
1e9951f [svn r4390] r5546@lenny: sbehnel | 2010-04-01 22:28:22 +0200
scoder authored
450 * Support 'unicode' string name as encoding parameter in
451 ``tostring()``, following ElementTree 1.3.
452
453 * Support 'c14n' serialisation method in ``ElementTree.write()`` and
454 ``tostring()``, following ElementTree 1.3.
455
9558997 [svn r4391] r5548@lenny: sbehnel | 2010-04-01 22:29:57 +0200
scoder authored
456 * The ElementPath expression syntax (``el.find*()``) was extended to
457 match the upcoming ElementTree 1.3 that will ship in the standard
458 library of Python 3.2/2.7. This includes extended support for
459 predicates as well as namespace prefixes (as known from XPath).
460
b534298 [svn r4357] r5486@lenny: sbehnel | 2010-02-28 13:45:43 +0100
scoder authored
461 * During regular XPath evaluation, various ESXLT functions are
462 available within their namespace when using libxslt 1.1.26 or later.
463
8b238ff [svn r4332] r5441@lenny: sbehnel | 2010-01-30 21:18:09 +0100
scoder authored
464 * Support passing a readily configured logger instance into
465 ``PyErrorLog``, instead of a logger name.
466
2c0f04d [svn r4324] r5430@lenny: sbehnel | 2010-01-29 16:15:53 +0100
scoder authored
467 * On serialisation, the new ``doctype`` parameter can be used to
468 override the DOCTYPE (internal subset) of the document.
469
fe4cbb7 [svn r4313] r5411@lenny: sbehnel | 2010-01-24 19:32:39 +0100
scoder authored
470 * New parameter ``output_parent`` to ``XSLTExtension.apply_templates()``
471 to append the resulting content directly to an output element.
472
473 * ``XSLTExtension.process_children()`` to process the content of the
474 XSLT extension element itself.
475
a00ce1f [svn r4314] r5413@lenny: sbehnel | 2010-01-25 10:15:10 +0100
scoder authored
476 * ISO-Schematron support based on the de-facto Schematron reference
477 'skeleton implementation'.
478
479 * XSLT objects now take XPath object as ``__call__`` stylesheet
480 parameters.
481
812653b [svn r4300] r5391@lenny: sbehnel | 2009-12-30 12:48:32 +0100
scoder authored
482 * Enable path caching in ElementPath (``el.find*()``) to avoid parsing
483 overhead.
484
15efcc7 [svn r4296] r5383@lenny: sbehnel | 2009-12-28 20:17:38 +0100
scoder authored
485 * Setting the value of a namespaced attribute always uses a prefixed
486 namespace instead of the default namespace even if both declare the
487 same namespace URI. This avoids serialisation problems when an
488 attribute from a default namespace is set on an element from a
489 different namespace.
490
9d15f62 [svn r4271] r5331@delle: sbehnel | 2009-11-15 11:44:03 +0100
scoder authored
491 * XSLT extension elements: support for XSLT context nodes other than
492 elements: document root, comments, processing instructions.
2c37634 [svn r4269] r5329@delle: sbehnel | 2009-11-13 14:59:55 +0100
scoder authored
493
eb94f9f [svn r4235] r5288@delle: sbehnel | 2009-10-17 01:20:44 +0200
scoder authored
494 * Support for strings (in addition to Elements) in node-sets returned
495 by extension functions.
496
f02f59f [svn r4222] r5259@delle: sbehnel | 2009-09-30 19:46:32 +0200
scoder authored
497 * Forms that lack an ``action`` attribute default to the base URL of
498 the document on submit.
499
2cd6898 [svn r4195] r5213@delle: sbehnel | 2009-08-20 10:29:12 +0200
scoder authored
500 * XPath attribute result strings have an ``attrname`` property.
501
6ca6a23 [svn r4188] r5197@delle: sbehnel | 2009-08-08 17:53:33 +0200
scoder authored
502 * Namespace URIs get validated against RFC 3986 at the API level
503 (required by the XML namespace specification).
504
b28a8da [svn r4183] r5188@delle: sbehnel | 2009-07-14 20:14:34 +0200
scoder authored
505 * Target parsers show their target object in the ``.target`` property
506 (compatible with ElementTree).
507
fb943cb [svn r4180] r5180@delle: sbehnel | 2009-07-11 21:43:07 +0200
scoder authored
508 Bugs fixed
509 ----------
510
8f4837c [svn r4402] r5569@lenny: sbehnel | 2010-04-27 21:41:20 +0200
scoder authored
511 * API is hardened against invalid proxy instances to prevent crashes
512 due to incorrectly instantiated Element instances.
513
dea25cd [svn r4397] r5559@lenny: sbehnel | 2010-04-06 22:14:22 +0200
scoder authored
514 * Prevent crash when instantiating ``CommentBase`` and friends.
515
90ea16a [svn r4394] r5554@lenny: sbehnel | 2010-04-01 23:50:28 +0200
scoder authored
516 * Export ElementTree compatible XML parser class as
517 ``XMLTreeBuilder``, as it is called in ET 1.2.
518
09c927d [svn r4395] r5556@lenny: sbehnel | 2010-04-02 07:43:38 +0200
scoder authored
519 * ObjectifiedDataElements in lxml.objectify were not hashable. They
520 now use the hash value of the underlying Python value (string,
521 number, etc.) to which they compare equal.
d78b492 [svn r4389] r5544@lenny: sbehnel | 2010-03-31 12:52:16 +0200
scoder authored
522
150ce3c [svn r4339] r5455@lenny: sbehnel | 2010-01-30 22:37:46 +0100
scoder authored
523 * Parsing broken fragments in lxml.html could fail if the fragment
524 contained an orphaned closing '</div>' tag.
525
fe4cbb7 [svn r4313] r5411@lenny: sbehnel | 2010-01-24 19:32:39 +0100
scoder authored
526 * Using XSLT extension elements around the root of the output document
527 crashed.
528
837ceeb [svn r4270] r5330@delle: sbehnel | 2009-11-13 17:30:53 +0100
scoder authored
529 * ``lxml.cssselect`` did not distinguish between ``x[attr="val"]`` and
530 ``x [attr="val"]`` (with a space). The latter now matches the
531 attribute independent of the element.
532
0b1b111 [svn r4238] r5294@delle: sbehnel | 2009-10-17 02:19:50 +0200
scoder authored
533 * Rewriting multiple links inside of HTML text content could end up
534 replacing unrelated content as replacements could impact the
535 reported position of subsequent matches. Modifications are now
536 simplified by letting the ``iterlinks()`` generator in ``lxml.html``
537 return links in reversed order if they appear inside the same text
538 node. Thus, replacements and link-internal modifications no longer
539 change the position of links reported afterwards.
540
564d824 [svn r4229] r5274@delle: sbehnel | 2009-10-13 08:48:17 +0200
scoder authored
541 * The ``.value`` attribute of ``textarea`` elements in lxml.html did
542 not represent the complete raw value (including child tags etc.). It
543 now serialises the complete content on read and replaces the
544 complete content by a string on write.
545
c258505 [svn r4246] r5301@delle: sbehnel | 2009-10-30 15:12:46 +0100
scoder authored
546 * Target parser didn't call ``.close()`` on the target object if
547 parsing failed. Now it is guaranteed that ``.close()`` will be
548 called after parsing, regardless of the outcome.
549
550 Other changes
551 -------------
552
607a68e [svn r4364] r5498@lenny: sbehnel | 2010-03-02 13:32:51 +0100
scoder authored
553 * Official support for Python 3.1.2 and later.
554
af10006 [svn r4341] r5461@lenny: sbehnel | 2010-01-30 23:02:39 +0100
scoder authored
555 * Static MS Windows builds can now download their dependencies
556 themselves.
557
c258505 [svn r4246] r5301@delle: sbehnel | 2009-10-30 15:12:46 +0100
scoder authored
558 * ``Element.attrib`` no longer uses a cyclic reference back to its
559 Element object. It therefore no longer requires the garbage
560 collector to clean up.
561
562 * Static builds include libiconv, in addition to libxml2 and libxslt.
563
564
6bc1641 [svn r4467] mark release of 2.2.8
scoder authored
565 2.2.8 (2010-09-02)
566 ==================
567
568 Bugs fixed
569 ----------
570
571 * Crash in newer libxml2 versions when moving elements between
572 documents that had attributes on replaced XInclude nodes.
573
574 * Import fix for urljoin in Python 3.1+.
575
576
f891317 [svn r4441] r5643@lenny: sbehnel | 2010-07-24 21:58:03 +0200
scoder authored
577 2.2.7 (2010-07-24)
578 ==================
579
580 Bugs fixed
581 ----------
582
583 * Crash in XSLT when generating text-only result documents with a
584 stylesheet created in a different thread.
585
586
38acd43 [svn r4420] r5605@lenny: sbehnel | 2010-06-19 10:53:40 +0200
scoder authored
587 2.2.6 (2010-03-02)
588 ==================
589
590 Bugs fixed
591 ----------
592
593 * Fixed several Python 3 regressions by building with Cython 0.11.3.
594
595
596 2.2.5 (2010-02-28)
597 ==================
598
599 Features added
600 --------------
601
602 * Support for running XSLT extension elements on the input root node
603 (e.g. in a template matching on "/").
604
605 Bugs fixed
606 ----------
607
608 * Crash in XPath evaluation when reading smart strings from a document
609 other than the original context document.
610
611 * Support recent versions of html5lib by not requiring its
612 ``XHTMLParser`` in ``htmlparser.py`` anymore.
613
614 * Manually instantiating the custom element classes in
615 ``lxml.objectify`` could crash.
616
617 * Invalid XML text characters were not rejected by the API when they
618 appeared in unicode strings directly after non-ASCII characters.
619
620 * lxml.html.open_http_urllib() did not work in Python 3.
621
622 * The functions ``strip_tags()`` and ``strip_elements()`` in
623 ``lxml.etree`` did not remove all occurrences of a tag in all cases.
624
625 * Crash in XSLT extension elements when the XSLT context node is not
626 an element.
627
628
2c37634 [svn r4269] r5329@delle: sbehnel | 2009-11-13 14:59:55 +0100
scoder authored
629 2.2.4 (2009-11-11)
630 ==================
631
632 Bugs fixed
633 ----------
634
635 * Static build of libxml2/libxslt was broken.
636
637
c258505 [svn r4246] r5301@delle: sbehnel | 2009-10-30 15:12:46 +0100
scoder authored
638 2.2.3 (2009-10-30)
639 ==================
640
641 Features added
642 --------------
643
644 Bugs fixed
645 ----------
646
647 * The ``resolve_entities`` option did not work in the incremental feed
648 parser.
649
516bd66 [svn r4225] r5268@delle: sbehnel | 2009-09-30 22:48:58 +0200
scoder authored
650 * Looking up and deleting attributes without a namespace could hit a
651 namespaced attribute of the same name instead.
652
8263538 [svn r4217] r5253@delle: sbehnel | 2009-09-29 23:23:34 +0200
scoder authored
653 * Late errors during calls to ``SubElement()`` (e.g. attribute related
654 ones) could leave a partially initialised element in the tree.
655
d3aa4de [svn r4214] r5248@delle: sbehnel | 2009-09-29 22:16:07 +0200
scoder authored
656 * Modifying trees that contain parsed entity references could result
657 in an infinite loop.
658
2afcc70 [svn r4215] r5251@delle: sbehnel | 2009-09-29 22:16:44 +0200
scoder authored
659 * ObjectifiedElement.__setattr__ created an empty-string child element when the
660 attribute value was rejected as a non-unicode/non-ascii string
661
42efcf0 [svn r4209] r5239@delle: sbehnel | 2009-09-10 06:45:11 +0200
scoder authored
662 * Syntax errors in ``lxml.cssselect`` could result in misleading error
663 messages.
664
665 * Invalid syntax in CSS expressions could lead to an infinite loop in
666 the parser of ``lxml.cssselect``.
667
de51b3c [svn r4208] r5237@delle: sbehnel | 2009-09-06 14:50:11 +0200
scoder authored
668 * CSS special character escapes were not properly handled in
669 ``lxml.cssselect``.
670
671 * CSS Unicode escapes were not properly decoded in ``lxml.cssselect``.
672
0b14af5 [svn r4200] r5223@delle: sbehnel | 2009-08-22 15:27:51 +0200
scoder authored
673 * Select options in HTML forms that had no explicit ``value``
674 attribute were not handled correctly. The HTML standard dictates
675 that their value is defined by their text content. This is now
676 supported by lxml.html.
677
fa9ec6e [svn r4199] r5220@delle: sbehnel | 2009-08-22 15:03:26 +0200
scoder authored
678 * XPath raised a TypeError when finding CDATA sections. This is now
679 fully supported.
680
a7630a1 [svn r4197] r5216@delle: sbehnel | 2009-08-22 14:42:32 +0200
scoder authored
681 * Calling ``help(lxml.objectify)`` didn't work at the prompt.
682
683 * The ``ElementMaker`` in lxml.objectify no longer defines the default
684 namespaces when annotation is disabled.
685
010780b [svn r4190] r5203@delle: sbehnel | 2009-08-13 09:06:20 +0200
scoder authored
686 * Feed parser failed to honout the 'recover' option on parse errors.
687
fb943cb [svn r4180] r5180@delle: sbehnel | 2009-07-11 21:43:07 +0200
scoder authored
688 * Diverting the error logging to Python's logging system was broken.
689
690 Other changes
691 -------------
692
693
ce9974f [svn r4173] r5172@delle: sbehnel | 2009-06-21 09:33:17 +0200
scoder authored
694 2.2.2 (2009-06-21)
ad3736a [svn r4155] r5135@delle: sbehnel | 2009-06-06 10:33:16 +0200
scoder authored
695 ==================
696
697 Features added
698 --------------
699
700 * New helper functions ``strip_attributes()``, ``strip_elements()``,
701 ``strip_tags()`` in lxml.etree to remove attributes/subtrees/tags
702 from a subtree.
703
704 Bugs fixed
705 ----------
706
c4695c5 [svn r4171] r5165@delle: sbehnel | 2009-06-20 21:53:27 +0200
scoder authored
707 * Namespace cleanup on subtree insertions could result in missing
708 namespace declarations (and potentially crashes) if the element
709 defining a namespace was deleted and the namespace was not used by
710 the top element of the inserted subtree but only in deeper subtrees.
711
babb019 [svn r4166] r5156@delle: sbehnel | 2009-06-16 20:43:55 +0200
scoder authored
712 * Raising an exception from a parser target callback didn't always
713 terminate the parser.
714
921540d [svn r4167] Accept only true, false, 1, 0 as boolean values from an XML ...
jholg authored
715 * Only {true, false, 1, 0} are accepted as the lexical representation for
716 BoolElement ({True, False, T, F, t, f} not any more), restoring lxml <= 2.0
717 behaviour.
718
ad3736a [svn r4155] r5135@delle: sbehnel | 2009-06-06 10:33:16 +0200
scoder authored
719 Other changes
720 -------------
721
722
66f59d1 [svn r4153] r5131@delle: sbehnel | 2009-06-02 21:11:16 +0200
scoder authored
723 2.2.1 (2009-06-02)
724 ==================
0971cb3 [svn r4143] r5112@delle: sbehnel | 2009-03-27 22:06:09 +0100
scoder authored
725
726 Features added
727 --------------
728
0a3ae45 [svn r4151] r5128@delle: sbehnel | 2009-05-31 22:46:55 +0200
scoder authored
729 * Injecting default attributes into a document during XML Schema
730 validation (also at parse time).
731
0971cb3 [svn r4143] r5112@delle: sbehnel | 2009-03-27 22:06:09 +0100
scoder authored
732 * Pass ``huge_tree`` parser option to disable parser security
733 restrictions imposed by libxml2 2.7.
734
735 Bugs fixed
736 ----------
737
66f59d1 [svn r4153] r5131@delle: sbehnel | 2009-06-02 21:11:16 +0200
scoder authored
738 * The script for statically building libxml2 and libxslt didn't work
739 in Py3.
740
b8f29a9 [svn r4150] r5123@delle: sbehnel | 2009-05-31 14:10:38 +0200
scoder authored
741 * ``XMLSchema()`` also passes invalid schema documents on to libxml2
66f59d1 [svn r4153] r5131@delle: sbehnel | 2009-06-02 21:11:16 +0200
scoder authored
742 for parsing (which could lead to a crash before release 2.6.24).
b8f29a9 [svn r4150] r5123@delle: sbehnel | 2009-05-31 14:10:38 +0200
scoder authored
743
0971cb3 [svn r4143] r5112@delle: sbehnel | 2009-03-27 22:06:09 +0100
scoder authored
744 Other changes
745 -------------
746
747
0a5b686 [svn r4135] r5094@delle: sbehnel | 2009-03-21 15:58:20 +0100
scoder authored
748 2.2 (2009-03-21)
749 ================
9490a09 [svn r4131] r5088@delle: sbehnel | 2009-03-02 14:06:27 +0100
scoder authored
750
b28cc28 [svn r4134] r5093@delle: sbehnel | 2009-03-21 15:54:31 +0100
scoder authored
751 Features added
752 --------------
753
754 * Support for ``standalone`` flag in XML declaration through
755 ``tree.docinfo.standalone`` and by passing ``standalone=True/False``
756 on serialisation.
757
9490a09 [svn r4131] r5088@delle: sbehnel | 2009-03-02 14:06:27 +0100
scoder authored
758 Bugs fixed
759 ----------
760
761 * Crash when parsing an XML Schema with external imports from a
762 filename.
763
764
e5beebd [svn r4123] r5073@delle: sbehnel | 2009-02-27 15:44:43 +0100
scoder authored
765 2.2beta4 (2009-02-27)
766 =====================
2c77453 [svn r4103] r5032@delle: sbehnel | 2009-02-19 22:47:33 +0100
scoder authored
767
768 Features added
769 --------------
770
573ef7b [svn r4107] r5038@delle: sbehnel | 2009-02-20 19:28:41 +0100
scoder authored
771 * Support strings and instantiable Element classes as child arguments
772 to the constructor of custom Element classes.
773
774 * GZip compression support for serialisation to files and file-like
2c77453 [svn r4103] r5032@delle: sbehnel | 2009-02-19 22:47:33 +0100
scoder authored
775 objects.
776
573ef7b [svn r4107] r5038@delle: sbehnel | 2009-02-20 19:28:41 +0100
scoder authored
777 Bugs fixed
778 ----------
779
1b74bef [svn r4121] r5069@delle: sbehnel | 2009-02-27 15:06:11 +0100
scoder authored
780 * Deep-copying an ElementTree copied neither its sibling PIs and
781 comments nor its internal/external DTD subsets.
492d706 [svn r4120] r5059@delle: sbehnel | 2009-02-27 14:43:30 +0100
scoder authored
782
ab2a7f3 [svn r4119] r5058@delle: sbehnel | 2009-02-27 14:06:21 +0100
scoder authored
783 * Soupparser failed on broken attributes without values.
784
604725c [svn r4118] r5057@delle: sbehnel | 2009-02-27 13:32:16 +0100
scoder authored
785 * Crash in XSLT when overwriting an already defined attribute using
786 ``xsl:attribute``.
787
4e87849 [svn r4115] r5054@delle: sbehnel | 2009-02-22 15:44:15 +0100
scoder authored
788 * Crash bug in exception handling code under Python 3. This was due
789 to a problem in Cython, not lxml itself.
790
f0d0e70 [svn r4109] r5045@delle: sbehnel | 2009-02-20 20:07:34 +0100
scoder authored
791 * ``lxml.html.FormElement._name()`` failed for non top-level forms.
1e2d163 [svn r4108] r5043@delle: sbehnel | 2009-02-20 19:39:08 +0100
scoder authored
792
573ef7b [svn r4107] r5038@delle: sbehnel | 2009-02-20 19:28:41 +0100
scoder authored
793 * ``TAG`` special attribute in constructor of custom Element classes
794 was evaluated incorrectly.
795
796 Other changes
797 -------------
798
4e87849 [svn r4115] r5054@delle: sbehnel | 2009-02-22 15:44:15 +0100
scoder authored
799 * Official support for Python 3.0.1.
800
573ef7b [svn r4107] r5038@delle: sbehnel | 2009-02-20 19:28:41 +0100
scoder authored
801 * ``Element.findtext()`` now returns an empty string instead of None
802 for Elements without text content.
803
2c77453 [svn r4103] r5032@delle: sbehnel | 2009-02-19 22:47:33 +0100
scoder authored
804
002e808 [svn r4100] prepare release of lxml 2.2beta3
scoder authored
805 2.2beta3 (2009-02-17)
806 =====================
e6a0d41 [svn r4075] r4974@delle: sbehnel | 2009-02-06 21:38:11 +0100
scoder authored
807
808 Features added
809 --------------
810
811 * ``XSLT.strparam()`` class method to wrap quoted string parameters
812 that require escaping.
813
a2d4065 [svn r4086] r4998@delle: sbehnel | 2009-02-14 23:13:57 +0100
scoder authored
814 Bugs fixed
815 ----------
816
8ef13c9 [svn r4098] r5020@delle: sbehnel | 2009-02-17 22:20:50 +0100
scoder authored
817 * Memory leak in XPath evaluators.
818
819 * Crash when parsing indented XML in one thread and merging it with
820 other documents parsed in another thread.
821
50beded [svn r4093] r5013@delle: sbehnel | 2009-02-15 13:09:42 +0100
scoder authored
822 * Setting the ``base`` attribute in ``lxml.objectify`` from a unicode
823 string failed.
824
a2d4065 [svn r4086] r4998@delle: sbehnel | 2009-02-14 23:13:57 +0100
scoder authored
825 * Fixes following changes in Python 3.0.1.
826
50beded [svn r4093] r5013@delle: sbehnel | 2009-02-15 13:09:42 +0100
scoder authored
827 * Minor fixes for Python 3.
828
6dfb01a [svn r4080] r4983@delle: sbehnel | 2009-02-07 20:52:44 +0100
scoder authored
829 Other changes
830 -------------
831
90f6622 [svn r4083] r4986@delle: sbehnel | 2009-02-07 21:56:59 +0100
scoder authored
832 * The global error log (which is copied into the exception log) is now
a5a766d [svn r4094] r5015@delle: sbehnel | 2009-02-15 13:12:12 +0100
scoder authored
833 local to a thread, which fixes some race conditions.
90f6622 [svn r4083] r4986@delle: sbehnel | 2009-02-07 21:56:59 +0100
scoder authored
834
6dfb01a [svn r4080] r4983@delle: sbehnel | 2009-02-07 20:52:44 +0100
scoder authored
835 * More robust error handling on serialisation.
836
e6a0d41 [svn r4075] r4974@delle: sbehnel | 2009-02-06 21:38:11 +0100
scoder authored
837
c04112a [svn r4070] r4967@delle: sbehnel | 2009-01-25 21:11:25 +0100
scoder authored
838 2.2beta2 (2009-01-25)
839 =====================
735f843 [svn r4054] Fix link reading when using CSS like url('link')
ianb authored
840
841 Bugs fixed
842 ----------
843
c04112a [svn r4070] r4967@delle: sbehnel | 2009-01-25 21:11:25 +0100
scoder authored
844 * Potential memory leak on exception handling. This was due to a
845 problem in Cython, not lxml itself.
846
735f843 [svn r4054] Fix link reading when using CSS like url('link')
ianb authored
847 * ``iter_links`` (and related link-rewriting functions) in
848 ``lxml.html`` would interpret CSS like ``url("link")`` incorrectly
849 (treating the quotation marks as part of the link).
850
c04112a [svn r4070] r4967@delle: sbehnel | 2009-01-25 21:11:25 +0100
scoder authored
851 * Failing import on systems that have an ``io`` module.
852
853
854 2.1.5 (2009-01-06)
855 ==================
856
857 Bugs fixed
858 ----------
859
860 * Potential memory leak on exception handling. This was due to a
861 problem in Cython, not lxml itself.
862
863 * Failing import on systems that have an ``io`` module.
864
865
cf7b048 [svn r4047] r4922@delle: sbehnel | 2008-12-12 23:13:57 +0100
scoder authored
866 2.2beta1 (2008-12-12)
867 =====================
996999c [svn r4034] r4909@delle: sbehnel | 2008-12-10 21:02:11 +0100
scoder authored
868
869 Features added
870 --------------
5267ed1 [svn r4032] Small cleanups to lxml.html.diff.
ianb authored
871
cf7b048 [svn r4047] r4922@delle: sbehnel | 2008-12-12 23:13:57 +0100
scoder authored
872 * Allow ``lxml.html.diff.htmldiff`` to accept Element objects, not
873 just HTML strings.
874
5267ed1 [svn r4032] Small cleanups to lxml.html.diff.
ianb authored
875 Bugs fixed
876 ----------
877
cf7b048 [svn r4047] r4922@delle: sbehnel | 2008-12-12 23:13:57 +0100
scoder authored
878 * Crash when using an XPath evaluator in multiple threads.
879
880 * Fixed missing whitespace before ``Link:...`` in ``lxml.html.diff``.
5267ed1 [svn r4032] Small cleanups to lxml.html.diff.
ianb authored
881
882 Other changes
883 -------------
884
cf7b048 [svn r4047] r4922@delle: sbehnel | 2008-12-12 23:13:57 +0100
scoder authored
885 * Export ``lxml.html.parse``.
886
887
888 2.1.4 (2008-12-12)
889 ==================
890
891 Bugs fixed
892 ----------
893
894 * Crash when using an XPath evaluator in multiple threads.
895
896
897 2.0.11 (2008-12-12)
898 ===================
899
900 Bugs fixed
901 ----------
5267ed1 [svn r4032] Small cleanups to lxml.html.diff.
ianb authored
902
cf7b048 [svn r4047] r4922@delle: sbehnel | 2008-12-12 23:13:57 +0100
scoder authored
903 * Crash when using an XPath evaluator in multiple threads.
5267ed1 [svn r4032] Small cleanups to lxml.html.diff.
ianb authored
904
996999c [svn r4034] r4909@delle: sbehnel | 2008-12-10 21:02:11 +0100
scoder authored
905
86b7e21 [svn r4030] r4902@delle: sbehnel | 2008-11-23 20:36:35 +0100
scoder authored
906 2.2alpha1 (2008-11-23)
907 ======================
aed2ae3 [svn r3884] r4605@delle: sbehnel | 2008-07-09 15:15:04 +0200
scoder authored
908
909 Features added
910 --------------
911
54f71e1 [svn r4000] r4851@delle: sbehnel | 2008-11-09 16:24:50 +0100
scoder authored
912 * Support for XSLT result tree fragments in XPath/XSLT extension
913 functions.
914
03eab51 [svn r3988] r4824@delle: sbehnel | 2008-10-25 00:04:57 +0200
scoder authored
915 * QName objects have new properties ``namespace`` and ``localname``.
916
c1b42fc [svn r3965] r4769@delle: sbehnel | 2008-09-05 14:49:27 +0200
scoder authored
917 * New options for exclusive C14N and C14N without comments.
918
919 * Instantiating a custom Element classes creates a new Element.
920
921 Bugs fixed
922 ----------
923
8015078 [svn r4029] r4897@delle: sbehnel | 2008-11-23 20:32:08 +0100
scoder authored
924 * XSLT didn't inherit the parse options of the input document.
925
327c20a [svn r4019] r4874@delle: sbehnel | 2008-11-17 22:41:04 +0100
scoder authored
926 * 0-bytes could slip through the API when used inside of Unicode
927 strings.
928
929 * With ``lxml.html.clean.autolink``, links with balanced parenthesis,
930 that end in a parenthesis, will be linked in their entirety (typical
931 with Wikipedia links).
932
933 Other changes
934 -------------
935
936
937 2.1.3 (2008-11-17)
938 ==================
939
940 Features added
941 --------------
942
943 Bugs fixed
944 ----------
945
946 * Ref-count leaks when lxml enters a try-except statement while an
947 outside exception lives in sys.exc_*(). This was due to a problem in
948 Cython, not lxml itself.
949
950 * Parser Unicode decoding errors could get swallowed by other
951 exceptions.
952
953 * Name/import errors in some Python modules.
954
7dd465c [svn r3989] r4826@delle: sbehnel | 2008-10-25 20:19:53 +0200
scoder authored
955 * Internal DTD subsets that did not specify a system or public ID were
956 not serialised and did not appear in the docinfo property of
957 ElementTrees.
958
03eab51 [svn r3988] r4824@delle: sbehnel | 2008-10-25 00:04:57 +0200
scoder authored
959 * Fix a pre-Py3k warning when parsing from a gzip file in Py2.6.
960
961 * Test suite fixes for libxml2 2.7.
962
8c5cfdf [svn r3981] r4810@delle: sbehnel | 2008-10-16 22:32:57 +0200
scoder authored
963 * Resolver.resolve_string() did not work for non-ASCII byte strings.
964
327c20a [svn r4019] r4874@delle: sbehnel | 2008-11-17 22:41:04 +0100
scoder authored
965 * Resolver.resolve_file() was broken.
f67fb7f [svn r3977] r4799@delle: sbehnel | 2008-09-17 21:30:57 +0200
scoder authored
966
327c20a [svn r4019] r4874@delle: sbehnel | 2008-11-17 22:41:04 +0100
scoder authored
967 * Overriding the parser encoding didn't work for many encodings.
492931f [svn r3992] Notice balanced parenthesis when autolinking
ianb authored
968
c1b42fc [svn r3965] r4769@delle: sbehnel | 2008-09-05 14:49:27 +0200
scoder authored
969 Other changes
970 -------------
971
972
327c20a [svn r4019] r4874@delle: sbehnel | 2008-11-17 22:41:04 +0100
scoder authored
973 2.0.10 (2008-11-17)
974 ===================
975
976 Bugs fixed
977 ----------
978
979 * Ref-count leaks when lxml enters a try-except statement while an
980 outside exception lives in sys.exc_*(). This was due to a problem in
981 Cython, not lxml itself.
982
983
c1b42fc [svn r3965] r4769@delle: sbehnel | 2008-09-05 14:49:27 +0200
scoder authored
984 2.1.2 (2008-09-05)
985 ==================
986
987 Features added
988 --------------
989
166099d [svn r3941] r4742@delle: sbehnel | 2008-08-19 21:35:29 +0200
scoder authored
990 * lxml.etree now tries to find the absolute path name of files when
991 parsing from a file-like object. This helps custom resolvers when
992 resolving relative URLs, as lixbml2 can prepend them with the path
993 of the source document.
994
aed2ae3 [svn r3884] r4605@delle: sbehnel | 2008-07-09 15:15:04 +0200
scoder authored
995 Bugs fixed
996 ----------
997
aefe7d0 [svn r3953] r4765@delle: sbehnel | 2008-09-05 13:47:15 +0200
scoder authored
998 * Memory problem when passing documents between threads.
999
9fe5ab7 [svn r3950] r4759@delle: sbehnel | 2008-09-02 22:07:11 +0200
scoder authored
1000 * Target parser did not honour the ``recover`` option and raised an
1001 exception instead of calling ``.close()`` on the target.
1002
aed2ae3 [svn r3884] r4605@delle: sbehnel | 2008-07-09 15:15:04 +0200
scoder authored
1003 Other changes
4acd5cb [svn r3924] r4714@delle: sbehnel | 2008-08-01 08:04:05 +0200
scoder authored
1004 -------------
1005
1006
c1b42fc [svn r3965] r4769@delle: sbehnel | 2008-09-05 14:49:27 +0200
scoder authored
1007 2.0.9 (2008-09-05)
1008 ==================
1009
1010 Bugs fixed
1011 ----------
1012
1013 * Memory problem when passing documents between threads.
1014
1015 * Target parser did not honour the ``recover`` option and raised an
1016 exception instead of calling ``.close()`` on the target.
1017
1018
4acd5cb [svn r3924] r4714@delle: sbehnel | 2008-08-01 08:04:05 +0200
scoder authored
1019 2.1.1 (2008-07-24)
1020 ==================
1021
1022 Features added
1023 --------------
1024
1025 Bugs fixed
1026 ----------
1027
1028 * Crash when parsing XSLT stylesheets in a thread and using them in
1029 another.
1030
1031 * Encoding problem when including text with ElementInclude under
1032 Python 3.
1033
1034 Other changes
1035 -------------
1036
1037
1038 2.0.8 (2008-07-24)
1039 ==================
1040
1041 Features added
1042 --------------
1043
1044 * ``lxml.html.rewrite_links()`` strips links to work around documents
1045 with whitespace in URL attributes.
1046
1047 Bugs fixed
1048 ----------
1049
1050 * Crash when parsing XSLT stylesheets in a thread and using them in
1051 another.
1052
1053 * CSS selector parser dropped remaining expression after a function
1054 with parameters.
1055
1056 Other changes
aed2ae3 [svn r3884] r4605@delle: sbehnel | 2008-07-09 15:15:04 +0200
scoder authored
1057 -------------
1058
1059
322d9b0 [svn r3878] r4593@delle: sbehnel | 2008-07-09 13:58:24 +0200
scoder authored
1060 2.1 (2008-07-09)
1061 ================
dd575fa [svn r3836] r4521@delle: sbehnel | 2008-06-20 09:48:46 +0200
scoder authored
1062
1063 Features added
1064 --------------
1065
1638b6b [svn r3932] r4726@delle: sbehnel | 2008-08-08 18:02:10 +0200
scoder authored
1066 * Smart strings can be switched off in XPath (``smart_strings``
1067 keyword option).
c4b81bf [svn r3875] r4587@delle: sbehnel | 2008-07-08 13:58:13 +0200
scoder authored
1068
ab459d9 [svn r3857] r4551@delle: sbehnel | 2008-06-22 11:06:38 +0200
scoder authored
1069 * ``lxml.html.rewrite_links()`` strips links to work around documents
1070 with whitespace in URL attributes.
1071
dd575fa [svn r3836] r4521@delle: sbehnel | 2008-06-20 09:48:46 +0200
scoder authored
1072 Bugs fixed
1073 ----------
1074
302b34f [svn r3877] r4591@delle: sbehnel | 2008-07-09 13:11:31 +0200
scoder authored
1075 * Custom resolvers were not used for XMLSchema includes/imports and
1076 XInclude processing.
1077
bdfe007 [svn r3854] r4547@delle: sbehnel | 2008-06-22 10:58:55 +0200
scoder authored
1078 * CSS selector parser dropped remaining expression after a function
1079 with parameters.
1080
4318b25 [svn r3853] r4546@delle: sbehnel | 2008-06-22 10:56:31 +0200
scoder authored
1081 Other changes
1082 -------------
1083
36f5608 [svn r3868] r4573@delle: sbehnel | 2008-07-02 18:18:34 +0200
scoder authored
1084 * ``objectify.enableRecursiveStr()`` was removed, use
1085 ``objectify.enable_recursive_str()`` instead
1086
cb76c6a [svn r3863] r4560@delle: sbehnel | 2008-06-28 10:51:55 +0200
scoder authored
1087 * Speed-up when running XSLTs on documents from other threads
1088
4318b25 [svn r3853] r4546@delle: sbehnel | 2008-06-22 10:56:31 +0200
scoder authored
1089
1090 2.0.7 (2008-06-20)
1091 ==================
1092
1093 Features added
1094 --------------
1095
1096 * Pickling ``ElementTree`` objects in lxml.objectify.
1097
1098 Bugs fixed
1099 ----------
1100
eddc8e0 [svn r3845] r4524@delle: sbehnel | 2008-06-20 09:53:47 +0200
scoder authored
1101 * Descending dot-separated classes in CSS selectors were not resolved
dd575fa [svn r3836] r4521@delle: sbehnel | 2008-06-20 09:48:46 +0200
scoder authored
1102 correctly.
1103
4318b25 [svn r3853] r4546@delle: sbehnel | 2008-06-22 10:56:31 +0200
scoder authored
1104 * ``ElementTree.parse()`` didn't handle target parser result.
1105
1106 * Potential threading problem in XInclude.
1107
1108 * Crash in Element class lookup classes when the __init__() method of
1109 the super class is not called from Python subclasses.
1110
dd575fa [svn r3836] r4521@delle: sbehnel | 2008-06-20 09:48:46 +0200
scoder authored
1111 Other changes
1112 -------------
1113
4318b25 [svn r3853] r4546@delle: sbehnel | 2008-06-22 10:56:31 +0200
scoder authored
1114 * Non-ASCII characters in attribute values are no longer escaped on
1115 serialisation.
1116
dd575fa [svn r3836] r4521@delle: sbehnel | 2008-06-20 09:48:46 +0200
scoder authored
1117
3bc3fbd [svn r3834] r4514@delle: sbehnel | 2008-06-19 13:54:07 +0200
scoder authored
1118 2.1beta3 (2008-06-19)
1119 =====================
8864abe [svn r3632] r4141@delle: sbehnel | 2008-05-02 21:47:32 +0200
scoder authored
1120
1121 Features added
1122 --------------
1123
f637138 [svn r3826] r4502@delle: sbehnel | 2008-06-09 22:52:34 +0200
scoder authored
1124 * Major overhaul of ``tools/xpathgrep.py`` script.
1125
bfcf264 [svn r3822] r4494@delle: sbehnel | 2008-06-09 13:21:39 +0200
scoder authored
1126 * Pickling ``ElementTree`` objects in lxml.objectify.
1127
8fa7400 [svn r3804] r4462@delle: sbehnel | 2008-06-02 20:28:44 +0200
scoder authored
1128 * Support for parsing from file-like objects that return unicode
1129 strings.
1130
a66e76b [svn r3780] r4425@delle: sbehnel | 2008-05-30 14:13:38 +0200
scoder authored
1131 * New function ``etree.cleanup_namespaces(el)`` that removes unused
1132 namespace declarations from a (sub)tree (experimental).
1133
bcd105c [svn r3767] r4402@delle: sbehnel | 2008-05-26 20:32:28 +0200
scoder authored
1134 * XSLT results support the buffer protocol in Python 3.
1135
1136 * Polymorphic functions in ``lxml.html`` that accept either a tree or
1137 a parsable string will return either a UTF-8 encoded byte string, a
1138 unicode string or a tree, based on the type of the input.
1139 Previously, the result was always a byte string or a tree.
1140
3bc3fbd [svn r3834] r4514@delle: sbehnel | 2008-06-19 13:54:07 +0200
scoder authored
1141 * Support for Python 2.6 and 3.0 beta.
bcd105c [svn r3767] r4402@delle: sbehnel | 2008-05-26 20:32:28 +0200
scoder authored
1142
438f5c8 [svn r3686] r4232@delle: sbehnel | 2008-05-19 23:51:31 +0200
scoder authored
1143 * File name handling now uses a heuristic to convert between byte
a66e76b [svn r3780] r4425@delle: sbehnel | 2008-05-30 14:13:38 +0200
scoder authored
1144 strings (usually filenames) and unicode strings (usually URLs).
438f5c8 [svn r3686] r4232@delle: sbehnel | 2008-05-19 23:51:31 +0200
scoder authored
1145
bcd105c [svn r3767] r4402@delle: sbehnel | 2008-05-26 20:32:28 +0200
scoder authored
1146 * Parsing from a plain file object frees the GIL under Python 2.x.
9d7c535 [svn r3667] r4195@delle: sbehnel | 2008-05-08 17:43:13 +0200
scoder authored
1147
03b6b29 [svn r3664] r4192@delle: sbehnel | 2008-05-07 20:32:28 +0200
scoder authored
1148 * Running ``iterparse()`` on a plain file (or filename) frees the GIL
bcd105c [svn r3767] r4402@delle: sbehnel | 2008-05-26 20:32:28 +0200
scoder authored
1149 on reading under Python 2.x.
03b6b29 [svn r3664] r4192@delle: sbehnel | 2008-05-07 20:32:28 +0200
scoder authored
1150
a614109 [svn r3636] r4146@delle: sbehnel | 2008-05-03 15:40:45 +0200
scoder authored
1151 * Conversion functions ``html_to_xhtml()`` and ``xhtml_to_html()`` in
b6f60dd [svn r3655] r4174@delle: sbehnel | 2008-05-06 19:29:52 +0200
scoder authored
1152 lxml.html (experimental).
a614109 [svn r3636] r4146@delle: sbehnel | 2008-05-03 15:40:45 +0200
scoder authored
1153
b6f60dd [svn r3655] r4174@delle: sbehnel | 2008-05-06 19:29:52 +0200
scoder authored
1154 * Most features in lxml.html work for XHTML namespaced tag names
1155 (experimental).
8864abe [svn r3632] r4141@delle: sbehnel | 2008-05-02 21:47:32 +0200
scoder authored
1156
1157 Bugs fixed
1158 ----------
1159
20e47ad [svn r3821] r4493@delle: sbehnel | 2008-06-09 12:24:15 +0200
scoder authored
1160 * ``ElementTree.parse()`` didn't handle target parser result.
1161
4229ed8 [svn r3805] r4468@delle: sbehnel | 2008-06-04 14:40:14 +0200
scoder authored
1162 * Crash in Element class lookup classes when the __init__() method of
1163 the super class is not called from Python subclasses.
1164
bcd105c [svn r3767] r4402@delle: sbehnel | 2008-05-26 20:32:28 +0200
scoder authored
1165 * A number of problems related to unicode/byte string conversion of
1166 filenames and error messages were fixed.
1167
1168 * Building on MacOS-X now passes the "flat_namespace" option to the C
1169 compiler, which reportedly prevents build quirks and crashes on this
1170 platform.
1171
091c24d [svn r3691] r4249@delle: sbehnel | 2008-05-20 21:50:20 +0200
scoder authored
1172 * Windows build was broken.
1173
3f6b05c [svn r3654] r4173@delle: sbehnel | 2008-05-06 19:28:55 +0200
scoder authored
1174 * Rare crash when serialising to a file object with certain encodings.
1175
8864abe [svn r3632] r4141@delle: sbehnel | 2008-05-02 21:47:32 +0200
scoder authored
1176 Other changes
1177 -------------
1178
5ceb85b [svn r3819] r4487@delle: sbehnel | 2008-06-06 13:56:34 +0200
scoder authored
1179 * Non-ASCII characters in attribute values are no longer escaped on
1180 serialisation.
1181
390d19c [svn r3810] r4474@delle: sbehnel | 2008-06-05 10:03:49 +0200
scoder authored
1182 * Passing non-ASCII byte strings or invalid unicode strings as .tag,
1183 namespaces, etc. will result in a ValueError instead of an
1184 AssertionError (just like the tag well-formedness check).
1185
9c75883 [svn r3645] r4161@delle: sbehnel | 2008-05-05 09:54:55 +0200
scoder authored
1186 * Up to several times faster attribute access (i.e. tree traversal) in
1187 lxml.objectify.
1188
8864abe [svn r3632] r4141@delle: sbehnel | 2008-05-02 21:47:32 +0200
scoder authored
1189
d084ad4 [svn r3799] r4444@delle: sbehnel | 2008-05-31 18:58:28 +0200
scoder authored
1190 2.0.6 (2008-05-31)
1191 ==================
1192
1193 Features added
1194 --------------
1195
1196 Bugs fixed
1197 ----------
1198
1199 * Incorrect evaluation of ``el.find("tag[child]")``.
1200
1201 * Windows build was broken.
1202
1203 * Moving a subtree from a document created in one thread into a
1204 document of another thread could crash when the rest of the source
1205 document is deleted while the subtree is still in use.
1206
1207 * Rare crash when serialising to a file object with certain encodings.
1208
1209 Other changes
1210 -------------
1211
1212 * lxml should now build without problems on MacOS-X.
1213
1214
ba7f3e5 [svn r3630] r4138@delle: sbehnel | 2008-05-02 20:16:32 +0200
scoder authored
1215 2.1beta2 (2008-05-02)
1216 =====================
ad96d46 [svn r3606] r4097@delle: sbehnel | 2008-04-27 21:00:32 +0200
scoder authored
1217
1218 Features added
1219 --------------
1220
b121dd8 [svn r3618] r4115@delle: sbehnel | 2008-05-02 09:48:17 +0200
scoder authored
1221 * All parse functions in lxml.html take a ``parser`` keyword argument.
1222
1223 * lxml.html has a new parser class ``XHTMLParser`` and a module
1224 attribute ``xhtml_parser`` that provide XML parsers that are
1225 pre-configured for the lxml.html package.
1226
ad96d46 [svn r3606] r4097@delle: sbehnel | 2008-04-27 21:00:32 +0200
scoder authored
1227 Bugs fixed
1228 ----------
1229
5650aae [svn r3625] r4123@delle: sbehnel | 2008-05-02 19:13:17 +0200
scoder authored
1230 * Moving a subtree from a document created in one thread into a
1231 document of another thread could crash when the rest of the source
1232 document is deleted while the subtree is still in use.
1233
ad96d46 [svn r3606] r4097@delle: sbehnel | 2008-04-27 21:00:32 +0200
scoder authored
1234 * Passing an nsmap when creating an Element will no longer strip
1235 redundantly defined namespace URIs. This prevented the definition
1236 of more than one prefix for a namespace on the same Element.
1237
1238 Other changes
1239 -------------
1240
1241 * If the default namespace is redundantly defined with a prefix on the
1242 same Element, the prefix will now be preferred for subelements and
1243 attributes. This allows users to work around a problem in libxml2
1244 where attributes from the default namespace could serialise without
1245 a prefix even when they appear on an Element with a different
1246 namespace (i.e. they would end up in the wrong namespace).
1247
1248
c58f33d [svn r3617] r4112@delle: sbehnel | 2008-05-01 12:26:43 +0200
scoder authored
1249 2.0.5 (2008-05-01)
1250 ==================
1251
1252 Features added
1253 --------------
1254
1255 Bugs fixed
1256 ----------
1257
1258 * Resolving to a filename in custom resolvers didn't work.
1259
1260 * lxml did not honour libxslt's second error state "STOPPED", which
1261 let some XSLT errors pass silently.
1262
1263 * Memory leak in Schematron with libxml2 >= 2.6.31.
1264
1265 Other changes
1266 -------------
1267
1268
09bac37 [svn r3545] r3984@delle: sbehnel | 2008-04-15 19:44:25 +0200
scoder authored
1269 2.1beta1 (2008-04-15)
1270 =====================
bd8c6dd [svn r3497] r3897@delle: sbehnel | 2008-03-28 16:57:01 +0100
scoder authored
1271
1272 Features added
1273 --------------
1274
81fdf3e [svn r3536] r3965@delle: sbehnel | 2008-04-14 12:17:48 +0200
scoder authored
1275 * Error logging in Schematron (requires libxml2 2.6.32 or later).
1276
6ce06d4 [svn r3522] r3943@delle: sbehnel | 2008-04-11 19:39:06 +0200
scoder authored
1277 * Parser option ``strip_cdata`` for normalising or keeping CDATA
c48227a [svn r3521] r3936@delle: sbehnel | 2008-04-11 19:31:10 +0200
scoder authored
1278 sections. Defaults to ``True`` as before, thus replacing CDATA
1279 sections by their text content.
1280
1281 * ``CDATA()`` factory to wrap string content as CDATA section.
1282
bd8c6dd [svn r3497] r3897@delle: sbehnel | 2008-03-28 16:57:01 +0100
scoder authored
1283 Bugs fixed
1284 ----------
1285
ea81da4 [svn r3546] r3985@delle: sbehnel | 2008-04-15 19:53:52 +0200
scoder authored
1286 * Resolving to a filename in custom resolvers didn't work.
1287
40e1716 [svn r3542] r3978@delle: sbehnel | 2008-04-15 16:52:51 +0200
scoder authored
1288 * lxml did not honour libxslt's second error state "STOPPED", which
1289 let some XSLT errors pass silently.
1290
01d8c67 [svn r3538] r3967@delle: sbehnel | 2008-04-14 13:11:16 +0200
scoder authored
1291 * Memory leak in Schematron with libxml2 >= 2.6.31.
1292
bd8c6dd [svn r3497] r3897@delle: sbehnel | 2008-03-28 16:57:01 +0100
scoder authored
1293 * lxml.etree accepted non well-formed namespace prefix names.
1294
1295 Other changes
1296 -------------
1297
d540fae [svn r3543] r3980@delle: sbehnel | 2008-04-15 17:42:57 +0200
scoder authored
1298 * Major cleanup in internal ``moveNodeToDocument()`` function, which
1299 takes care of namespace cleanup when moving elements between
1300 different namespace contexts.
1301
84ac287 [svn r3501] r3901@delle: sbehnel | 2008-03-28 18:11:29 +0100
scoder authored
1302 * New Elements created through the ``makeelement()`` method of an HTML
1303 parser or through lxml.html now end up in a new HTML document
f72054c [svn r3503] r3909@delle: sbehnel | 2008-03-29 11:31:53 +0100
scoder authored
1304 (doctype HTML 4.01 Transitional) instead of a generic XML document.
1305 This mostly impacts the serialisation and the availability of a DTD
1306 context.
84ac287 [svn r3501] r3901@delle: sbehnel | 2008-03-28 18:11:29 +0100
scoder authored
1307
bd8c6dd [svn r3497] r3897@delle: sbehnel | 2008-03-28 16:57:01 +0100
scoder authored
1308
23bba30 [svn r3533] r3957@delle: sbehnel | 2008-04-13 20:12:13 +0200
scoder authored
1309 2.0.4 (2008-04-13)
1310 ==================
1311
1312 Features added
1313 --------------
1314
1315 Bugs fixed
1316 ----------
1317
1318 * Hanging thread in conjunction with GTK threading.
1319
1320 * Crash bug in iterparse when moving elements into other documents.
1321
1322 * HTML elements' ``.cssselect()`` method was broken.
1323
1324 * ``ElementTree.find*()`` didn't accept QName objects.
1325
1326 Other changes
1327 -------------
1328
1329
9ebf919 [svn r3484] r3856@delle: sbehnel | 2008-03-27 16:44:42 +0100
scoder authored
1330 2.1alpha1 (2008-03-27)
1331 ======================
3b2fde9 [svn r3350] r3614@delle: sbehnel | 2008-02-25 13:46:26 +0100
scoder authored
1332
1333 Features added
1334 --------------
1335
9c29023 [svn r3455] r3824@delle: sbehnel | 2008-03-25 21:58:26 +0100
scoder authored
1336 * New event types 'comment' and 'pi' in ``iterparse()``.
1337
a35e2c6 [svn r3396] r3708@delle: sbehnel | 2008-03-03 17:59:44 +0100
scoder authored
1338 * ``XSLTAccessControl`` instances have a property ``options`` that
1339 returns a dict of access configuration options.
1340
705f970 [svn r3386] r3698@delle: sbehnel | 2008-03-03 11:49:57 +0100
scoder authored
1341 * Constant instances ``DENY_ALL`` and ``DENY_WRITE`` on
1342 ``XSLTAccessControl`` class.
1343
d04ce6b [svn r3379] r3676@delle: sbehnel | 2008-03-02 09:23:16 +0100
scoder authored
1344 * Extension elements for XSLT (experimental!)
fb58941 [svn r3369] r3665@delle: sbehnel | 2008-03-02 08:56:20 +0100
scoder authored
1345
3b2fde9 [svn r3350] r3614@delle: sbehnel | 2008-02-25 13:46:26 +0100
scoder authored
1346 * ``Element.base`` property returns the xml:base or HTML base URL of
1347 an Element.
1348
1349 * ``docinfo.URL`` property is writable.
1350
1351 Bugs fixed
1352 ----------
1353
95845fa [svn r3401] r3731@delle: sbehnel | 2008-03-04 22:45:35 +0100
scoder authored
1354 * Default encoding for plain text serialisation was different from
1355 that of XML serialisation (UTF-8 instead of ASCII).
1356
3b2fde9 [svn r3350] r3614@delle: sbehnel | 2008-02-25 13:46:26 +0100
scoder authored
1357 Other changes
1358 -------------
1359
e4c8805 [svn r3422] r3767@delle: sbehnel | 2008-03-11 20:35:06 +0100
scoder authored
1360 * Minor API speed-ups.
9ebcbc0 [svn r3410] r3748@delle: sbehnel | 2008-03-08 19:54:32 +0100
scoder authored
1361
95845fa [svn r3401] r3731@delle: sbehnel | 2008-03-04 22:45:35 +0100
scoder authored
1362 * The benchmark suite now uses tail text in the trees, which makes the
1363 absolute numbers incomparable to previous results.
1364
01b7c42 [svn r3394] r3706@delle: sbehnel | 2008-03-03 15:53:29 +0100
scoder authored
1365 * Generating the HTML documentation now requires Pygments_, which is
1366 used to enable syntax highlighting for the doctest examples.
1367
1368 .. _Pygments: http://pygments.org/
1369
314b27c [svn r3393] r3705@delle: sbehnel | 2008-03-03 15:45:42 +0100
scoder authored
1370 Most long-time deprecated functions and methods were removed:
1371
1372 - ``etree.clearErrorLog()``, use ``etree.clear_error_log()``
1373
1374 - ``etree.useGlobalPythonLog()``, use
1375 ``etree.use_global_python_log()``
1376
1377 - ``etree.ElementClassLookup.setFallback()``, use
1378 ``etree.ElementClassLookup.set_fallback()``
1379
1380 - ``etree.getDefaultParser()``, use ``etree.get_default_parser()``
1381
1382 - ``etree.setDefaultParser()``, use ``etree.set_default_parser()``
1383
1384 - ``etree.setElementClassLookup()``, use
1385 ``etree.set_element_class_lookup()``
1386
1387 Note that ``parser.setElementClassLookup()`` has not been removed
1388 yet, although ``parser.set_element_class_lookup()`` should be used
1389 instead.
1390
1391 - ``xpath_evaluator.registerNamespace()``, use
1392 ``xpath_evaluator.register_namespace()``
1393
1394 - ``xpath_evaluator.registerNamespaces()``, use
1395 ``xpath_evaluator.register_namespaces()``
1396
1397 - ``objectify.setPytypeAttributeTag``, use
1398 ``objectify.set_pytype_attribute_tag``
1399
1400 - ``objectify.setDefaultParser()``, use
1401 ``objectify.set_default_parser()``
b4f0caf [svn r3388] r3700@delle: sbehnel | 2008-03-03 12:30:47 +0100
scoder authored
1402
3b2fde9 [svn r3350] r3614@delle: sbehnel | 2008-02-25 13:46:26 +0100
scoder authored
1403
cff4f23 [svn r3477] r3849@delle: sbehnel | 2008-03-26 22:14:35 +0100
scoder authored
1404 2.0.3 (2008-03-26)
1405 ==================
b774c2f [svn r3449] r3811@delle: sbehnel | 2008-03-19 07:42:53 +0100
scoder authored
1406
1407 Features added
1408 --------------
1409
1410 * soupparser.parse() allows passing keyword arguments on to
1411 BeautifulSoup.
1412
1413 * ``fromstring()`` method in ``lxml.html.soupparser``.
1414
1415 Bugs fixed
1416 ----------
1417
cff4f23 [svn r3477] r3849@delle: sbehnel | 2008-03-26 22:14:35 +0100
scoder authored
1418 * ``lxml.html.diff`` didn't treat empty tags properly (e.g.,
1419 ``<br>``).
1420
08c17a9 [svn r3458] r3830@delle: sbehnel | 2008-03-26 00:14:51 +0100
scoder authored
1421 * Handle entity replacements correctly in target parser.
1422
7aa617f [svn r3452] r3820@delle: sbehnel | 2008-03-23 18:48:28 +0100
scoder authored
1423 * Crash when using ``iterparse()`` with XML Schema validation.
1424
b774c2f [svn r3449] r3811@delle: sbehnel | 2008-03-19 07:42:53 +0100
scoder authored
1425 * The BeautifulSoup parser (soupparser.py) did not replace entities,
1426 which made them turn up in text content.
1427
1428 * Attribute assignment of custom PyTypes in objectify could fail to
1429 correctly serialise the value to a string.
1430
1431 Other changes
1432 -------------
1433
1434 * ``lxml.html.ElementSoup`` was replaced by a new module
1435 ``lxml.html.soupparser`` with a more consistent API. The old module
1436 remains for compatibility with ElementTree's own ElementSoup module.
1437
1438 * Setting the XSLT_CONFIG and XML2_CONFIG environment variables at
1439 build time will let setup.py pick up the ``xml2-config`` and
1440 ``xslt-config`` scripts from the supplied path name.
1441
1442 * Passing ``--with-xml2-config=/path/to/xml2-config`` to setup.py will
1443 override the ``xml2-config`` script that is used to determine the C
1444 compiler options. The same applies for the ``--with-xslt-config``
1445 option.
1446
1447
05bfe60 [svn r3344] r3605@delle: sbehnel | 2008-02-22 16:12:59 +0100
scoder authored
1448 2.0.2 (2008-02-22)
1449 ==================
005585d [svn r3298] r3511@delle: sbehnel | 2008-02-14 21:10:41 +0100
scoder authored
1450
1451 Features added
1452 --------------
1453
020b4e2 [svn r3318] r3549@delle: sbehnel | 2008-02-19 12:35:22 +0100
scoder authored
1454 * Support passing ``base_url`` to file parser functions to override
1455 the filename of the file(-like) object.
1456
005585d [svn r3298] r3511@delle: sbehnel | 2008-02-14 21:10:41 +0100
scoder authored
1457 Bugs fixed
1458 ----------
1459
a95e56b [svn r3335] r3586@delle: sbehnel | 2008-02-22 08:48:54 +0100
scoder authored
1460 * The prefix for objectify's pytype namespace was missing from the set
1461 of default prefixes.
1462
6653cb1 [svn r3323] r3554@delle: sbehnel | 2008-02-19 23:04:07 +0100
scoder authored
1463 * Memory leak in Schematron (fixed only for libxml2 2.6.31+).
1464
a46242c [svn r3306] r3526@delle: sbehnel | 2008-02-15 15:12:34 +0100
scoder authored
1465 * Error type names in RelaxNG were reported incorrectly.
1466
005585d [svn r3298] r3511@delle: sbehnel | 2008-02-14 21:10:41 +0100
scoder authored
1467 * Slice deletion bug fixed in objectify.
1468
1469 Other changes
1470 -------------
1471
a95e56b [svn r3335] r3586@delle: sbehnel | 2008-02-22 08:48:54 +0100
scoder authored
1472 * Enabled doctests for some Python modules (especially ``lxml.html``).
1473
05bfe60 [svn r3344] r3605@delle: sbehnel | 2008-02-22 16:12:59 +0100
scoder authored
1474 * Add a ``method`` argument to ``lxml.html.tostring()``
ce65451 [svn r3313] Added base_url to signatures of lxml.html.from* methods. Ad...
ianb authored
1475 (``method="xml"`` for XHTML output).
1476
05bfe60 [svn r3344] r3605@delle: sbehnel | 2008-02-22 16:12:59 +0100
scoder authored
1477 * Make it clearer that methods like ``lxml.html.fromstring()`` take a
ce65451 [svn r3313] Added base_url to signatures of lxml.html.from* methods. Ad...
ianb authored
1478 ``base_url`` argument.
1479
005585d [svn r3298] r3511@delle: sbehnel | 2008-02-14 21:10:41 +0100
scoder authored
1480
c4bc50f [svn r3289] r3489@delle: sbehnel | 2008-02-13 22:30:41 +0100
scoder authored
1481 2.0.1 (2008-02-13)
1482 ==================
5a92fd8 [svn r3265] r3441@delle: sbehnel | 2008-02-08 19:47:51 +0100
scoder authored
1483
1484 Features added
1485 --------------
1486
e6cf0ee [svn r3283] r3468@delle: sbehnel | 2008-02-13 19:52:53 +0100
scoder authored
1487 * Child iteration in ``lxml.pyclasslookup``.
1488
d266174 [svn r3286] r3471@delle: sbehnel | 2008-02-13 20:29:49 +0100
scoder authored
1489 * Loads of new docstrings reflect the signature of functions and
1490 methods to make them visible in API docs and ``help()``
d341dae [svn r3278] r3463@delle: sbehnel | 2008-02-13 00:07:06 +0100
scoder authored
1491
5a92fd8 [svn r3265] r3441@delle: sbehnel | 2008-02-08 19:47:51 +0100
scoder authored
1492 Bugs fixed
1493 ----------
1494
d1ca51c [svn r3280] r3465@delle: sbehnel | 2008-02-13 17:21:12 +0100
scoder authored
1495 * The module ``lxml.html.builder`` was duplicated as
1496 ``lxml.htmlbuilder``
1497
8b0a727 [svn r3288] r3484@delle: sbehnel | 2008-02-13 21:48:51 +0100
scoder authored
1498 * Form elements would return None for ``form.fields.keys()`` if there
1499 was an unnamed input field. Now unnamed input fields are completely
1500 ignored.
1501
028a69c [svn r3269] r3448@delle: sbehnel | 2008-02-08 20:37:40 +0100
scoder authored
1502 * Setting an element slice in objectify could insert slice-overlapping
5a92fd8 [svn r3265] r3441@delle: sbehnel | 2008-02-08 19:47:51 +0100
scoder authored
1503 elements at the wrong position.
1504
1505 Other changes
1506 -------------
1507
9826b4d [svn r3290] r3493@delle: sbehnel | 2008-02-13 22:34:59 +0100
scoder authored
1508 * The generated API documentation was cleaned up and disburdened from
1509 non-public classes etc.
1510
7b0df00 [svn r3287] r3472@delle: sbehnel | 2008-02-13 20:31:51 +0100
scoder authored
1511 * The previously public module ``lxml.html.setmixin`` was renamed to
1512 ``lxml.html._setmixin`` as it is not an official part of lxml. If
1513 you want to use it, feel free to copy it over to your own source
1514 base.
1515
0cbf17e [svn r3272] r3455@delle: sbehnel | 2008-02-08 20:44:45 +0100
scoder authored
1516 * Passing ``--with-xslt-config=/path/to/xslt-config`` to setup.py will
1517 override the ``xslt-config`` script that is used to determine the C
1518 compiler options.
1519
5a92fd8 [svn r3265] r3441@delle: sbehnel | 2008-02-08 19:47:51 +0100
scoder authored
1520
4e30ef1 [svn r3240] r3391@delle: sbehnel | 2008-02-01 14:53:55 +0100
scoder authored
1521 2.0 (2008-02-01)
1522 ================
a04cd56 [svn r3216] r3344@delle: sbehnel | 2008-01-28 08:47:14 +0100
scoder authored
1523
1524 Features added
1525 --------------
1526
c524a06 [svn r3241] r3394@delle: sbehnel | 2008-02-01 15:57:58 +0100
scoder authored
1527 * Passing the ``unicode`` type as ``encoding`` to ``tostring()`` will
1528 serialise to unicode. The ``tounicode()`` function is now
1529 deprecated.
1530
19a59b9 [svn r3220] r3349@delle: sbehnel | 2008-01-28 11:05:44 +0100
scoder authored
1531 * ``XMLSchema()`` and ``RelaxNG()`` can parse from StringIO.
1532
a04cd56 [svn r3216] r3344@delle: sbehnel | 2008-01-28 08:47:14 +0100
scoder authored
1533 * ``makeparser()`` function in ``lxml.objectify`` to create a new
1534 parser with the usual objectify setup.
1535
ade2285 [svn r3203] r3317@delle: sbehnel | 2008-01-25 10:35:30 +0100
scoder authored
1536 * Plain ASCII XPath string results are no longer forced into unicode
e7ada89 [svn r3206] r3326@delle: sbehnel | 2008-01-25 18:23:56 +0100
scoder authored
1537 objects as in 2.0beta1, but are returned as plain strings as before.
ade2285 [svn r3203] r3317@delle: sbehnel | 2008-01-25 10:35:30 +0100
scoder authored
1538
1539 * All XPath string results are 'smart' objects that have a
1540 ``getparent()`` method to retrieve their parent Element.
1541
031f310 [svn r3200] r3314@delle: sbehnel | 2008-01-25 07:08:35 +0100
scoder authored
1542 * ``with_tail`` option in serialiser functions.
1543
cc23660 [svn r3190] r3293@delle: sbehnel | 2008-01-23 16:40:20 +0100
scoder authored
1544 * More accurate exception messages in validator creation.
1545
b256e54 [svn r3159] r3226@delle: sbehnel | 2008-01-10 20:28:46 +0100
scoder authored
1546 * Parse-time XML schema validation (``schema`` parser keyword).
1547
ebd3fb8 [svn r3158] r3225@delle: sbehnel | 2008-01-10 13:05:13 +0100
scoder authored
1548 * XPath string results of the ``text()`` function and attribute
1549 selection make their Element container accessible through a
d0f4439 [svn r3161] r3237@delle: sbehnel | 2008-01-11 11:54:56 +0100
scoder authored
1550 ``getparent()`` method. As a side-effect, they are now always
1551 unicode objects (even ASCII strings).
ebd3fb8 [svn r3158] r3225@delle: sbehnel | 2008-01-10 13:05:13 +0100
scoder authored
1552
94f2c2f [svn r3160] r3227@delle: sbehnel | 2008-01-10 21:14:50 +0100
scoder authored
1553 * ``XSLT`` objects are usable in any thread - at the cost of a deep
1554 copy if they were not created in that thread.
5a42d38 [svn r3148] r3208@delle: sbehnel | 2008-01-05 21:59:36 +0100
scoder authored
1555
94f2c2f [svn r3160] r3227@delle: sbehnel | 2008-01-10 21:14:50 +0100
scoder authored
1556 * Invalid entity names and character references will be rejected by
1557 the ``Entity()`` factory.
bf90e35 [svn r3146] r3205@delle: sbehnel | 2008-01-04 19:21:48 +0100
scoder authored
1558
94f2c2f [svn r3160] r3227@delle: sbehnel | 2008-01-10 21:14:50 +0100
scoder authored
1559 * ``entity.text`` returns the textual representation of the entity,
1560 e.g. ``&amp;``.
ed1e688 [svn r3137] r3187@delle: sbehnel | 2007-12-28 13:23:37 +0100
scoder authored
1561
fc9736c [svn r3077] changelog
scoder authored
1562 * New properties ``position`` and ``code`` on ParseError exception (as
1563 in ET 1.3)
1564
b880067 [svn r3057] rich comparison of _Attrib objects
scoder authored
1565 * Rich comparison of ``element.attrib`` proxies.
1566
226a162 [svn r3055] new SAX parser framework + TreeBuilder class implementation
scoder authored
1567 * ElementTree compatible TreeBuilder class.
1568
b880067 [svn r3057] rich comparison of _Attrib objects
scoder authored
1569 * Use default prefixes for some common XML namespaces.
39bb968 [svn r3046] use default prefixes for common namespaces (following ET 1.3...
scoder authored
1570
486ba44 [svn r3005] changelog cleanup
scoder authored
1571 * ``lxml.html.clean.Cleaner`` now allows for a ``host_whitelist``, and
1572 two overridable methods: ``allow_embedded_url(el, url)`` and the
1573 more general ``allow_element(el)``.
1574
b4f8441 [svn r3004] extended slicing in objectify
scoder authored
1575 * Extended slicing of Elements as in ``element[1:-1:2]``, both in
1576 etree and in objectify
0e609fd [svn r2998] replaced __getslice__() etc. by __*item__() equivalents and ...
scoder authored
1577
80fbfde [svn r2969] improved interaction of custom resolvers and XSLT
scoder authored
1578 * Resolvers can now provide a ``base_url`` keyword argument when
1579 resolving a document as string data.
1580
0082909 [svn r2960] Improve doctestcompare a little: NOPARSE_MARKUP option to su...
ianb authored
1581 * When using ``lxml.doctestcompare`` you can give the doctest option
1582 ``NOPARSE_MARKUP`` (like ``# doctest: +NOPARSE_MARKUP``) to suppress
1583 the special checking for one test.
1584
93d1a0f [svn r2920] some fixes and cleanups in the error_log property, separate ...
scoder authored
1585 * Separate ``feed_error_log`` property for the feed parser interface.
72c8215 [svn r2922] changelog
scoder authored
1586 The normal parser interface and ``iterparse`` continue to use
93d1a0f [svn r2920] some fixes and cleanups in the error_log property, separate ...
scoder authored
1587 ``error_log``.
1588
72c8215 [svn r2922] changelog
scoder authored
1589 * The normal parsers and the feed parser interface are now separated
1590 and can be used concurrently on the same parser instance.
1591
1521c15 [svn r2919] (from/to)stringlist() functions (ET 1.3)
scoder authored
1592 * ``fromstringlist()`` and ``tostringlist()`` functions as in
1593 ElementTree 1.3
1594
34aca56 [svn r2902] preliminary HTML support for iterparse
scoder authored
1595 * ``iterparse()`` accepts an ``html`` boolean keyword argument for
1596 parsing with the HTML parser (note that this interface may be
1597 subject to change)
1598
38b029d [svn r2901] 'encoding' kw argument in parsers to override document encod...
scoder authored
1599 * Parsers accept an ``encoding`` keyword argument that overrides the encoding
1600 of the parsed documents.
1601
7d5403f [svn r2891] changelog
scoder authored
1602 * New C-API function ``hasChild()`` to test for children
1603
1604 * ``annotate()`` function in objectify can annotate with Python types and XSI
1605 types in one step. Accompanied by ``xsiannotate()`` and ``pyannotate()``.
1606
ed4299b [svn r2884] support for selection output method on serialisation
scoder authored
1607 * ``ET.write()``, ``tostring()`` and ``tounicode()`` now accept a keyword
1608 argument ``method`` that can be one of 'xml' (or None), 'html' or 'text' to
1609 serialise as XML, HTML or plain text content.
1610
1d9bbcc [svn r2850] ET 1.3 compatibility updates: iterfind(), new ElementPath im...
scoder authored
1611 * ``iterfind()`` method on Elements returns an iterator equivalent to
1612 ``findall()``
1613
6f68515 [svn r2848] itertext() method on elements
scoder authored
1614 * ``itertext()`` method on Elements
1615
23cba6d [svn r2843] accept QName objects as values for attributes and element te...
scoder authored
1616 * Setting a QName object as value of the .text property or as an attribute
1617 will resolve its prefix in the respective context
1618
d413830 [svn r2835] cleanup in parser code, ET-compatible target parser interfac...
scoder authored
1619 * ElementTree-like parser target interface as described in
1620 http://effbot.org/elementtree/elementtree-xmlparser.htm
1621
a619ede [svn r2825] ET-like feed parser interface
scoder authored
1622 * ElementTree-like feed parser interface on XMLParser and HTMLParser
1623 (``feed()`` and ``close()`` methods)
1624
a05afea [svn r2810] made annotation in objectify.ElementMaker optional through '...
scoder authored
1625 * Reimplemented ``objectify.E`` for better performance and improved
1626 integration with objectify. Provides extended type support based on
1627 registered PyTypes.
1628
7c45ed7 [svn r2802] preliminary implementation of deep copy support for XSLT
scoder authored
1629 * XSLT objects now support deep copying
1630
db8c574 [svn r2796] changelog update
scoder authored
1631 * New ``makeSubElement()`` C-API function that allows creating a new
1632 subelement straight with text, tail and attributes.
1633
7e082ad [svn r2764] provide the context node and a propagated evaluation context...
scoder authored
1634 * XPath extension functions can now access the current context node
1635 (``context.context_node``) and use a context dictionary
1636 (``context.eval_context``) from the context provided in their first
1637 parameter
1638
7fe6795 [svn r2750] integrated lxml.html
scoder authored
1639 * HTML tag soup parser based on BeautifulSoup in ``lxml.html.ElementSoup``
1640
1641 * New module ``lxml.doctestcompare`` by Ian Bicking for writing simplified
1642 doctests based on XML/HTML output. Use by importing ``lxml.usedoctest`` or
1643 ``lxml.html.usedoctest`` from within a doctest.
1644
1645 * New module ``lxml.cssselect`` by Ian Bicking for selecting Elements with CSS
1646 selectors.
1647
f203266 [svn r2751] cleanup
scoder authored
1648 * New package ``lxml.html`` written by Ian Bicking for advanced HTML
1649 treatment.
34f133b [svn r2739] support for retrieving the DTD defined internally in a docum...
scoder authored
1650
7b6e918 [svn r2686] namespace class registry is now local to the ElementNamespac...
scoder authored
1651 * Namespace class setup is now local to the ``ElementNamespaceClassLookup``
1652 instance and no longer global.
1653
7fe6795 [svn r2750] integrated lxml.html
scoder authored
1654 * Schematron validation (incomplete in libxml2)
84e7865 [svn r2671] schematron support in changelog
scoder authored
1655
55a6a00 [svn r2813] pre-release cleanup
scoder authored
1656 * Additional ``stringify`` argument to ``objectify.PyType()`` takes a
1657 conversion function to strings to support setting text values from arbitrary
1658 types.
d2e3b78 [svn r2599] extended type support for objectify.E based on registered Py...
scoder authored
1659
782201b [svn r2672] cleanup before 1.3.3 release
scoder authored
1660 * Entity support through an ``Entity`` factory and element classes. XML
3e6b97f [svn r2529] changelog consolidation
scoder authored
1661 parsers now have a ``resolve_entities`` keyword argument that can be set to
1662 False to keep entities in the document.
1663
1664 * ``column`` field on error log entries to accompany the ``line`` field
1665
1666 * Error specific messages in XPath parsing and evaluation
1667 NOTE: for evaluation errors, you will now get an XPathEvalError instead of
1668 an XPathSyntaxError. To catch both, you can except on ``XPathError``
1669
1670 * The regular expression functions in XPath now support passing a node-set
1671 instead of a string
1672
1673 * Extended type annotation in objectify: new ``xsiannotate()`` function
1674
1675 * EXSLT RegExp support in standard XPath (not only XSLT)
1676
007f376 [svn r2522] release merges from 1.3
scoder authored
1677 Bugs fixed
1678 ----------
1679
5dd0b01 [svn r3598] r4068@delle: sbehnel | 2008-04-24 19:56:09 +0200
scoder authored
1680 * Missing import in ``lxml.html.clean``.
1681
1682 * Some Python 2.4-isms prevented lxml from building/running under
1683 Python 2.3.
1684
1685 * XPath on ElementTrees could crash when selecting the virtual root
1686 node of the ElementTree.
1687
1688 * Compilation ``--without-threading`` was buggy in alpha5/6.
1689
1690 * Memory leak in the ``parse()`` function.
1691
1692 * Minor bugs in XSLT error message formatting.
1693
1694 * Result document memory leak in target parser.
1695
1696 * Target parser failed to report comments.
1697
1698 * In the ``lxml.html`` ``iter_links`` method, links in ``<object>``
1699 tags weren't recognized. (Note: plugin-specific link parameters
1700 still aren't recognized.) Also, the ``<embed>`` tag, though not
1701 standard, is now included in ``lxml.html.defs.special_inline_tags``.
1702
1703 * Using custom resolvers on XSLT stylesheets parsed from a string
1704 could request ill-formed URLs.
1705
1706 * With ``lxml.doctestcompare`` if you do ``<tag xmlns="...">`` in your
1707 output, it will then be namespace-neutral (before the ellipsis was
1708 treated as a real namespace).
1709
1710 * AttributeError in feed parser on parse errors
1711
1712 * XML feed parser setup problem
1713
1714 * Type annotation for unicode strings in ``DataElement()``
1715
1716 * lxml failed to serialise namespace declarations of elements other than the
1717 root node of a tree
1718
1719 * Race condition in XSLT where the resolver context leaked between concurrent
1720 XSLT calls
1721
e4509a7 [svn r2662] only accept well-formed tag names at the API level
scoder authored
1722 * lxml.etree did not check tag/attribute names
1723
79f85cd [svn r2530] changelog cleanup after release of 1.3
scoder authored
1724 * The XML parser did not report undefined entities as error
1725
1726 * The text in exceptions raised by XML parsers, validators and XPath
1727 evaluators now reports the first error that occurred instead of the last
1728
7b6e918 [svn r2686] namespace class registry is now local to the ElementNamespac...
scoder authored
1729 * Passing '' as XPath namespace prefix did not raise an error
79f85cd [svn r2530] changelog cleanup after release of 1.3
scoder authored
1730
1731 * Thread safety in XPath evaluators
1732
007f376 [svn r2522] release merges from 1.3
scoder authored
1733 Other changes
1734 -------------
1735
5dd0b01 [svn r3598] r4068@delle: sbehnel | 2008-04-24 19:56:09 +0200
scoder authored
1736 * Exceptions carry only the part of the error log that is related to
1737 the operation that caused the error.
1738
1739 * ``XMLSchema()`` and ``RelaxNG()`` now enforce passing the source
1740 file/filename through the ``file`` keyword argument.
1741
1742 * The test suite now skips most doctests under Python 2.3.
1743
1744 * ``make clean`` no longer removes the .c files (use ``make
1745 realclean`` instead)
1746
1747 * Minor performance tweaks for Element instantiation and subelement
1748 creation
1749
1750 * Various places in the XPath, XSLT and iteration APIs now require
1751 keyword-only arguments.
1752
1753 * The argument order in ``element.itersiblings()`` was changed to
1754 match the order used in all other iteration methods. The second
1755 argument ('preceding') is now a keyword-only argument.
1756
1757 * The ``getiterator()`` method on Elements and ElementTrees was
1758 reverted to return an iterator as it did in lxml 1.x. The ET API
1759 specification allows it to return either a sequence or an iterator,
1760 and it traditionally returned a sequence in ET and an iterator in
1761 lxml. However, it is now deprecated in favour of the ``iter()``
1762 method, which should be used in new code wherever possible.
1763
1764 * The 'pretty printed' serialisation of ElementTree objects now
1765 inserts newlines at the root level between processing instructions,
1766 comments and the root tag.
1767
1768 * A 'pretty printed' serialisation is now terminated with a newline.
1769
1770 * Second argument to ``lxml.etree.Extension()`` helper is no longer
1771 required, third argument is now a keyword-only argument ``ns``.
1772
1773 * ``lxml.html.tostring`` takes an ``encoding`` argument.
1774
1775 * The module source files were renamed to "lxml.*.pyx", such as
1776 "lxml.etree.pyx". This was changed for consistency with the way
1777 Pyrex commonly handles package imports. The main effect is that
1778 classes now know about their fully qualified class name, including
1779 the package name of their module.
1780
1781 * Keyword-only arguments in some API functions, especially in the
1782 parsers and serialisers.
1783
1784 * Tag name validation in lxml.etree (and lxml.html) now distinguishes
1785 between HTML tags and XML tags based on the parser that was used to
1786 parse or create them. HTML tags no longer reject any non-ASCII
1787 characters in tag names but only spaces and the special characters
1788 ``<>&/"'``.
1789
1790 * lxml.etree now emits a warning if you use XPath with libxml2 2.6.27
1791 (which can crash on certain XPath errors)
1792
1793 * Type annotation in objectify now preserves the already annotated type by
1794 default to prevent loosing type information that is already there.
1795
1796 * ``element.getiterator()`` returns a list, use ``element.iter()`` to retrieve
1797 an iterator (ElementTree 1.3 compatible behaviour)
1798
5721343 [svn r2731] Changelog cleanup
scoder authored
1799 * objectify.PyType for None is now called "NoneType"
2ccb0a9 [svn r2728] changelog update
scoder authored
1800
c2f4c48 [svn r2709] new method el.iter() as future replacement of el.getiterator...
scoder authored
1801 * ``el.getiterator()`` renamed to ``el.iter()``, following ElementTree 1.3 -
1802 original name is still available as alias
1803
0025063 [svn r2683] C-API: replaced findOrBuildNodeNs() by more generic findOrBu...
scoder authored
1804 * In the public C-API, ``findOrBuildNodeNs()`` was replaced by the more
1805 generic ``findOrBuildNodeNsPrefix``
1806
7b6e918 [svn r2686] namespace class registry is now local to the ElementNamespac...
scoder authored
1807 * Major refactoring in XPath/XSLT extension function code
79f85cd [svn r2530] changelog cleanup after release of 1.3
scoder authored
1808
7b6e918 [svn r2686] namespace class registry is now local to the ElementNamespac...
scoder authored
1809 * Network access in parsers disabled by default
1a10316 [svn r2684] mark 'no_network' parser default done for 2.0
scoder authored
1810
007f376 [svn r2522] release merges from 1.3
scoder authored
1811
5dd0b01 [svn r3598] r4068@delle: sbehnel | 2008-04-24 19:56:09 +0200
scoder authored
1812 1.3.6 (2007-10-29)
1813 ==================
1814
1815 Bugs fixed
1816 ----------
1817
1818 * Backported decref crash fix from 2.0
1819
1820 * Well hidden free-while-in-use crash bug in ObjectPath
1821
1822 Other changes
1823 -------------
1824
1825 * The test suites now run ``gc.collect()`` in the ``tearDown()``
1826 methods. While this makes them take a lot longer to run, it also
1827 makes it easier to link a specific test to garbage collection
1828 problems that would otherwise appear in later tests.
1829
1830
1831 1.3.5 (2007-10-22)
1832 ==================
1833
1834 Features added
1835 --------------
1836
1837 Bugs fixed
1838 ----------
1839
1840 * lxml.etree could crash when adding more than 10000 namespaces to a
1841 document
1842
1843 * lxml failed to serialise namespace declarations of elements other
1844 than the root node of a tree
1845
1846
417b1ff [svn r2789] release updates
scoder authored
1847 1.3.4 (2007-08-30)
5721343 [svn r2731] Changelog cleanup
scoder authored
1848 ==================
1849
49ef003 [svn r2773] doc updates
scoder authored
1850 Features added
1851 --------------
1852
54f3822 [svn r2776] let ElementMaker accept 'namespace' and 'nsmap' keywords as ...
scoder authored
1853 * The ``ElementMaker`` in ``lxml.builder`` now accepts the keyword arguments
1854 ``namespace`` and ``nsmap`` to set a namespace and nsmap for the Elements it
1855 creates.
1856
7fe6795 [svn r2750] integrated lxml.html
scoder authored
1857 * The ``docinfo`` on ElementTree objects has new properties ``internalDTD``
1858 and ``externalDTD`` that return a DTD object for the internal or external
1859 subset of the document respectively.
1860
5721343 [svn r2731] Changelog cleanup
scoder authored
1861 * Serialising an ElementTree now includes any internal DTD subsets that are
1862 part of the document, as well as comments and PIs that are siblings of the
1863 root node.
1864
1865 Bugs fixed
1866 ----------
1867
1868 * Parsing with the ``no_network`` option could fail
1869
1870 Other changes
1871 -------------
1872
417b1ff [svn r2789] release updates
scoder authored
1873 * lxml now raises a TagNameWarning about tag names containing ':' instead of
1874 an Error as 1.3.3 did. The reason is that a number of projects currently
1875 misuse the previous lack of tag name validation to generate namespace
1876 prefixes without declaring namespaces. Apart from the danger of generating
1877 broken XML this way, it also breaks most of the namespace-aware tools in
1878 XML, including XPath, XSLT and validation. lxml 1.3.x will continue to
1879 support this bug with a Warning, while lxml 2.0 will be strict about
1880 well-formed tag names (not only regarding ':').
1881
5721343 [svn r2731] Changelog cleanup
scoder authored
1882 * Serialising an Element no longer includes its comment and PI siblings (only
1883 ElementTree serialisation includes them).
1884
1885
ad74b4f [svn r2708] 1.3.3 release date
scoder authored
1886 1.3.3 (2007-07-26)
1887 ==================
782201b [svn r2672] cleanup before 1.3.3 release
scoder authored
1888
1889 Features added
1890 --------------
1891
1892 * ElementTree compatible parser ``ETCompatXMLParser`` strips processing
1893 instructions and comments while parsing XML
1894
1895 * Parsers now support stripping PIs (keyword argument 'remove_pis')
1896
1897 * ``etree.fromstring()`` now supports parsing both HTML and XML, depending on
1898 the parser you pass.
1899
1900 * Support ``base_url`` keyword argument in ``HTML()`` and ``XML()``
1901
1902 Bugs fixed
1903 ----------
1904
1905 * Parsing from Python Unicode strings failed on some platforms
1906
1907 * ``Element()`` did not raise an exception on tag names containing ':'
1908
1909 * ``Element.getiterator(tag)`` did not accept ``Comment`` and
1910 ``ProcessingInstruction`` as tags. It also accepts ``Element`` now.
1911
1912
374dc2c [svn r2593] merged in 1.3.2 release updates from 1.3 branch
scoder authored
1913 1.3.2 (2007-07-03)
1914 ==================
1915
1916 Features added
1917 --------------
1918
1919 Bugs fixed
1920 ----------
1921
1922 * "deallocating None" crash bug
1923
1924
b8ea707 [svn r2570] merged in release changes for 1.3.1
scoder authored
1925 1.3.1 (2007-07-02)
1926 ==================
1927
1928 Features added
1929 --------------
1930
1931 * objectify.DataElement now supports setting values from existing data
1932 elements (not just plain Python types) and reuses defined namespaces etc.
1933
1934 * E-factory support for lxml.objectify (``objectify.E``)
1935
1936 Bugs fixed
1937 ----------
1938
1939 * Better way to prevent crashes in Element proxy cleanup code
1940
1941 * objectify.DataElement didn't set up None value correctly
1942
1943 * objectify.DataElement didn't check the value against the provided type hints
1944
1945 * Reference-counting bug in ``Element.attrib.pop()``
1946
1947
007f376 [svn r2522] release merges from 1.3
scoder authored
1948 1.3 (2007-06-24)
1949 ================
1950
1951 Features added
1952 --------------
1953
3e6b97f [svn r2529] changelog consolidation
scoder authored
1954 * Module ``lxml.pyclasslookup`` module implements an Element class lookup
1955 scheme that can access the entire tree in read-only mode to help determining
1956 a suitable Element class
4b52418 [svn r2474] added remove_comments keyword argument to parsers to skip ov...
scoder authored
1957
3e6b97f [svn r2529] changelog consolidation
scoder authored
1958 * Parsers take a ``remove_comments`` keyword argument that skips over comments
ba96e08 [svn r2347] Entity support at the API level
scoder authored
1959
53052d6 [svn r2333] parse() function in objectify
scoder authored
1960 * ``parse()`` function in ``objectify``, corresponding to ``XML()`` etc.
1961
6f8d008 [svn r2248] comment/PI fixes for lxml.sax, support for serialising top-l...
scoder authored
1962 * ``Element.addnext(el)`` and ``Element.addprevious(el)`` methods to support
1963 adding processing instructions and comments around the root node
1964
5f20d70 [svn r2301] cleanup
scoder authored
1965 * ``Element.attrib`` was missing ``clear()`` and ``pop()`` methods
d87feeb [svn r2228] support for element.attrib.pop()
scoder authored
1966
bac48e6 [svn r2225] Holger's patch for type annotations in objectify
scoder authored
1967 * Extended type annotation in objectify: cleaner annotation namespace setup
3e6b97f [svn r2529] changelog consolidation
scoder authored
1968 plus new ``deannotate()`` function
bac48e6 [svn r2225] Holger's patch for type annotations in objectify
scoder authored
1969
6f8d008 [svn r2248] comment/PI fixes for lxml.sax, support for serialising top-l...
scoder authored
1970 * Support for custom Element class instantiation in lxml.sax: passing a
9d810bc [svn r2249] support passing a node-set instead of a string in XPath rege...
scoder authored
1971 ``makeelement`` function to the ElementTreeContentHandler will reuse the
6f8d008 [svn r2248] comment/PI fixes for lxml.sax, support for serialising top-l...
scoder authored
1972 lookup context of that function
7741ca1 [svn r2222] support for custom Element class instantiation in lxml.sax
scoder authored
1973
98f9d86 [svn r2221] support '.' as identity ObjectPath
scoder authored
1974 * '.' represents empty ObjectPath (identity)
1975
79e2ed9 [svn r2212] cleanup
scoder authored
1976 * ``Element.values()`` to accompany the existing ``.keys()`` and ``.items()``
598f336 [svn r2211] lxml.pyclasslookup - element class lookup mechanism with tre...
scoder authored
1977
1978 * ``collectAttributes()`` C-function to build a list of attribute
1979 keys/values/items for a libxml2 node
1980
3e6b97f [svn r2529] changelog consolidation
scoder authored
1981 * ``DTD`` validator class (like ``RelaxNG`` and ``XMLSchema``)
1982
1983 * HTML generator helpers by Fredrik Lundh in ``lxml.htmlbuilder``
1984
1985 * ``ElementMaker`` XML generator by Fredrik Lundh in ``lxml.builder.E``
1986
1987 * Support for pickeling ``objectify.ObjectifiedElement`` objects to XML
1988
1989 * ``update()`` method on Element.attrib
1990
1991 * Optimised replacement for libxml2's _xmlReconsiliateNs(). This allows lxml
1992 a better handling of namespaces when moving elements between documents.
1993
598f336 [svn r2211] lxml.pyclasslookup - element class lookup mechanism with tre...
scoder authored
1994 Bugs fixed
1995 ----------
1996
1d2679b [svn r2507] make removed nodes ns-self-contained
scoder authored
1997 * Removing Elements from a tree could make them loose their namespace
1998 declarations
1999
d6d59fc [svn r2492] ElementInclude didn't honour base URL of source document
scoder authored
2000 * ``ElementInclude`` didn't honour base URL of original document
2001
400a384 [svn r2413] fix: replacing the children slice of an Element cut off the ...
scoder authored
2002 * Replacing the children slice of an Element would cut off the tails of the
2003 original children
2004
79f85cd