3.0
This commit is contained in:
parent
b262b590a4
commit
b5d75d9b28
4
.gitignore
vendored
4
.gitignore
vendored
@ -12,3 +12,7 @@ lxml-2.2.7.tar.gz.asc
|
|||||||
/lxml-2.3.3.tar.gz.asc
|
/lxml-2.3.3.tar.gz.asc
|
||||||
/lxml-2.3.5.tar.gz
|
/lxml-2.3.5.tar.gz
|
||||||
/lxml-2.3.5.tar.gz.asc
|
/lxml-2.3.5.tar.gz.asc
|
||||||
|
/lxml-3.0.tar.gz
|
||||||
|
/lxml-3.0.tar.gz.asc
|
||||||
|
/lxml-3.0.tgz
|
||||||
|
/lxml-3.0.tgz.asc
|
||||||
|
|||||||
200
python-lxml.spec
200
python-lxml.spec
@ -5,15 +5,15 @@
|
|||||||
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
|
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
|
||||||
|
|
||||||
Name: python-lxml
|
Name: python-lxml
|
||||||
Version: 2.3.5
|
Version: 3.0
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: ElementTree-like Python bindings for libxml2 and libxslt
|
Summary: ElementTree-like Python bindings for libxml2 and libxslt
|
||||||
|
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
License: BSD
|
License: BSD
|
||||||
URL: http://codespeak.net/lxml/
|
URL: http://lxml.de
|
||||||
Source0: http://cheeseshop.python.org/packages/source/l/lxml/lxml-%{version}.tar.gz
|
Source0: http://lxml.de/files/lxml-%{version}.tgz
|
||||||
Source1: http://cheeseshop.python.org/packages/source/l/lxml/lxml-%{version}.tar.gz.asc
|
Source1: http://lxml.de/files/lxml-%{version}.tgz.asc
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ BuildRequires: libxslt-devel
|
|||||||
|
|
||||||
BuildRequires: python-devel
|
BuildRequires: python-devel
|
||||||
BuildRequires: python-setuptools
|
BuildRequires: python-setuptools
|
||||||
BuildRequires: Cython >= 0.12
|
BuildRequires: Cython >= 0.17.1
|
||||||
|
|
||||||
%if 0%{?with_python3}
|
%if 0%{?with_python3}
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
@ -63,6 +63,7 @@ unlike the default bindings.
|
|||||||
|
|
||||||
# remove the C extension so that it will be rebuilt using the latest Cython
|
# remove the C extension so that it will be rebuilt using the latest Cython
|
||||||
rm -f src/lxml/lxml.etree.c
|
rm -f src/lxml/lxml.etree.c
|
||||||
|
rm -f src/lxml/lxml.etree.h
|
||||||
rm -f src/lxml/lxml.etree_api.h
|
rm -f src/lxml/lxml.etree_api.h
|
||||||
rm -f src/lxml/lxml.objectify.c
|
rm -f src/lxml/lxml.objectify.c
|
||||||
|
|
||||||
@ -77,25 +78,26 @@ cp -r . %{py3dir}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
CFLAGS="%{optflags}" %{__python} setup.py build
|
CFLAGS="%{optflags}" %{__python} setup.py build --with-cython
|
||||||
|
|
||||||
%if 0%{?with_python3}
|
%if 0%{?with_python3}
|
||||||
cp src/lxml/lxml.etree.c %{py3dir}/src/lxml
|
cp src/lxml/lxml.etree.c %{py3dir}/src/lxml
|
||||||
|
cp src/lxml/lxml.etree.h %{py3dir}/src/lxml
|
||||||
cp src/lxml/lxml.etree_api.h %{py3dir}/src/lxml
|
cp src/lxml/lxml.etree_api.h %{py3dir}/src/lxml
|
||||||
cp src/lxml/lxml.objectify.c %{py3dir}/src/lxml
|
cp src/lxml/lxml.objectify.c %{py3dir}/src/lxml
|
||||||
|
|
||||||
pushd %{py3dir}
|
pushd %{py3dir}
|
||||||
CFLAGS="%{optflags}" %{__python3} setup.py build
|
CFLAGS="%{optflags}" %{__python3} setup.py build --with-cython
|
||||||
popd
|
popd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf %{buildroot}
|
rm -rf %{buildroot}
|
||||||
%{__python} setup.py install --skip-build --no-compile --root %{buildroot}
|
%{__python} setup.py install --skip-build --no-compile --with-cython --root %{buildroot}
|
||||||
|
|
||||||
%if 0%{?with_python3}
|
%if 0%{?with_python3}
|
||||||
pushd %{py3dir}
|
pushd %{py3dir}
|
||||||
%{__python3} setup.py install --skip-build --no-compile --root %{buildroot}
|
%{__python3} setup.py install --skip-build --no-compile --with-cython --root %{buildroot}
|
||||||
popd
|
popd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -121,6 +123,186 @@ rm -rf %{buildroot}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Oct 10 2012 Jeffrey Ollie <jcollie@desktop01.dmacc.net> - 3.0-1
|
||||||
|
- 3.0 (2012-10-08)
|
||||||
|
- ================
|
||||||
|
-
|
||||||
|
- Features added
|
||||||
|
- --------------
|
||||||
|
-
|
||||||
|
- Bugs fixed
|
||||||
|
- ----------
|
||||||
|
-
|
||||||
|
- * End-of-file handling was incorrect in iterparse() when reading from
|
||||||
|
- a low-level C file stream and failed in libxml2 2.9.0 due to its
|
||||||
|
- improved consistency checks.
|
||||||
|
-
|
||||||
|
- Other changes
|
||||||
|
- -------------
|
||||||
|
-
|
||||||
|
- * The build no longer uses Cython by default unless the generated C files
|
||||||
|
- are missing. To use Cython, pass the option "--with-cython". To ignore
|
||||||
|
- the fatal build error when Cython is required but not available (e.g. to
|
||||||
|
- run special setup.py commands that do not actually run a build), pass
|
||||||
|
- "--without-cython".
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- 3.0beta1 (2012-09-26)
|
||||||
|
- =====================
|
||||||
|
-
|
||||||
|
- Features added
|
||||||
|
- --------------
|
||||||
|
-
|
||||||
|
- * Python level access to (optional) libxml2 memory debugging features
|
||||||
|
- to simplify debugging of memory leaks etc.
|
||||||
|
-
|
||||||
|
- Bugs fixed
|
||||||
|
- ----------
|
||||||
|
-
|
||||||
|
- * Fix a memory leak in XPath by switching to Cython 0.17.1.
|
||||||
|
-
|
||||||
|
- * Some tests were adapted to work with PyPy.
|
||||||
|
-
|
||||||
|
- Other changes
|
||||||
|
- -------------
|
||||||
|
-
|
||||||
|
- * The code was adapted to work with the upcoming libxml2 2.9.0 release.
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- 3.0alpha2 (2012-08-23)
|
||||||
|
- ======================
|
||||||
|
-
|
||||||
|
- Features added
|
||||||
|
- --------------
|
||||||
|
-
|
||||||
|
- * The .iter() method of elements now accepts tag arguments like "{*}name"
|
||||||
|
- to search for elements with a given local name in any namespace. With
|
||||||
|
- this addition, all combinations of wildcards now work as expected:
|
||||||
|
- "{ns}name", "{}name", "{*}name", "{ns}*", "{}*" and "{*}*". Note that
|
||||||
|
- "name" is equivalent to "{}name", but "*" is "{*}*". The same change
|
||||||
|
- applies to the .getiterator(), .itersiblings(), .iterancestors(),
|
||||||
|
- .iterdescendants(), .iterchildren() and .itertext() methods, the
|
||||||
|
- strip_attributes(), strip_elements() and strip_tags() functions as well
|
||||||
|
- as the iterparse() function.
|
||||||
|
-
|
||||||
|
- * C14N allows specifying the inclusive prefixes to be promoted to
|
||||||
|
- top-level during exclusive serialisation.
|
||||||
|
-
|
||||||
|
- Bugs fixed
|
||||||
|
- ----------
|
||||||
|
-
|
||||||
|
- * Passing long Unicode strings into the feed() parser interface failed to
|
||||||
|
- read the entire string.
|
||||||
|
-
|
||||||
|
- Other changes
|
||||||
|
- -------------
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- 3.0alpha1 (2012-07-31)
|
||||||
|
- ======================
|
||||||
|
-
|
||||||
|
- Features added
|
||||||
|
- --------------
|
||||||
|
-
|
||||||
|
- * Initial support for building in PyPy (through cpyext).
|
||||||
|
-
|
||||||
|
- * DTD objects gained an API that allows read access to their
|
||||||
|
- declarations.
|
||||||
|
-
|
||||||
|
- * xpathgrep.py gained support for parsing line-by-line (e.g.
|
||||||
|
- from grep output) and for surrounding the output with a new root
|
||||||
|
- tag.
|
||||||
|
-
|
||||||
|
- * E-factory in lxml.builder accepts subtypes of known data
|
||||||
|
- types (such as string subtypes) when building elements around them.
|
||||||
|
-
|
||||||
|
- * Tree iteration and iterparse() with a selective tag
|
||||||
|
- argument supports passing a set of tags. Tree nodes will be
|
||||||
|
- returned by the iterators if they match any of the tags.
|
||||||
|
-
|
||||||
|
- Bugs fixed
|
||||||
|
- ----------
|
||||||
|
-
|
||||||
|
- * The .find*() methods in lxml.objectify no longer use XPath
|
||||||
|
- internally, which makes them faster in many cases (especially when
|
||||||
|
- short circuiting after a single or couple of elements) and fixes
|
||||||
|
- some behavioural differences compared to lxml.etree. Note that
|
||||||
|
- this means that they no longer support arbitrary XPath expressions
|
||||||
|
- but only the subset that the ElementPath language supports.
|
||||||
|
- The previous implementation was also redundant with the normal
|
||||||
|
- XPath support, which can be used as a replacement.
|
||||||
|
-
|
||||||
|
- * el.find('*') could accidentally return a comment or processing
|
||||||
|
- instruction that happened to be in the wrong spot. (Same for the
|
||||||
|
- other .find*() methods.)
|
||||||
|
-
|
||||||
|
- * The error logging is less intrusive and avoids a global setup where
|
||||||
|
- possible.
|
||||||
|
-
|
||||||
|
- * Fixed undefined names in html5lib parser.
|
||||||
|
-
|
||||||
|
- * xpathgrep.py did not work in Python 3.
|
||||||
|
-
|
||||||
|
- * Element.attrib.update() did not accept an attrib of
|
||||||
|
- another Element as parameter.
|
||||||
|
-
|
||||||
|
- * For subtypes of ElementBase that make the .text or .tail
|
||||||
|
- properties immutable (as in objectify, for example), inserting text
|
||||||
|
- when creating Elements through the E-Factory feature of the class
|
||||||
|
- constructor would fail with an exception, stating that the text
|
||||||
|
- cannot be modified.
|
||||||
|
-
|
||||||
|
- Other changes
|
||||||
|
- --------------
|
||||||
|
-
|
||||||
|
- * The code base was overhauled to properly use 'const' where the API
|
||||||
|
- of libxml2 and libxslt requests it. This also has an impact on the
|
||||||
|
- public C-API of lxml itself, as defined in etreepublic.pxd, as
|
||||||
|
- well as the provided declarations in the lxml/includes/ directory.
|
||||||
|
- Code that uses these declarations may have to be adapted. On the
|
||||||
|
- plus side, this fixes several C compiler warnings, also for user
|
||||||
|
- code, thus making it easier to spot real problems again.
|
||||||
|
-
|
||||||
|
- * The functionality of "lxml.cssselect" was moved into a separate PyPI
|
||||||
|
- package called "cssselect". To continue using it, you must install
|
||||||
|
- that package separately. The "lxml.cssselect" module is still
|
||||||
|
- available and provides the same interface, provided the "cssselect"
|
||||||
|
- package can be imported at runtime.
|
||||||
|
-
|
||||||
|
- * Element attributes passed in as an attrib dict or as keyword
|
||||||
|
- arguments are now sorted by (namespaced) name before being created
|
||||||
|
- to make their order predictable for serialisation and iteration.
|
||||||
|
- Note that adding or deleting attributes afterwards does not take
|
||||||
|
- that order into account, i.e. setting a new attribute appends it
|
||||||
|
- after the existing ones.
|
||||||
|
-
|
||||||
|
- * Several classes that are for internal use only were removed
|
||||||
|
- from the lxml.etree module dict:
|
||||||
|
- _InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext,
|
||||||
|
- _ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext,
|
||||||
|
- __ContentOnlyElement, _AttribIterator, _NamespaceRegistry,
|
||||||
|
- _ClassNamespaceRegistry, _FunctionNamespaceRegistry,
|
||||||
|
- _XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
|
||||||
|
- _FileReaderContext, _ParserContext, _PythonSaxParserTarget,
|
||||||
|
- _TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy,
|
||||||
|
- _ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper,
|
||||||
|
- _OpaqueDocumentWrapper, _ModifyContentOnlyProxy,
|
||||||
|
- _ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
|
||||||
|
- _AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter,
|
||||||
|
- _ParserSchemaValidationContext, _XPathContext,
|
||||||
|
- _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam
|
||||||
|
-
|
||||||
|
- * Several internal classes can no longer be inherited from:
|
||||||
|
- _InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult,
|
||||||
|
- _IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry,
|
||||||
|
- _XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
|
||||||
|
- _FileReaderContext, _PythonSaxParserTarget, _TargetParserContext,
|
||||||
|
- _ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper,
|
||||||
|
- _ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
|
||||||
|
- _AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext,
|
||||||
|
- _XPathContext, _XSLTResolverContext, _XSLTContext,
|
||||||
|
- _XSLTQuotedStringParam, _XSLTResultTree, _XSLTProcessingInstruction
|
||||||
|
|
||||||
* Thu Sep 27 2012 Jeffrey Ollie <jeff@ocjtech.us> - 2.3.5-1
|
* Thu Sep 27 2012 Jeffrey Ollie <jeff@ocjtech.us> - 2.3.5-1
|
||||||
- Bugs fixed
|
- Bugs fixed
|
||||||
-
|
-
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user