The following is a summary of changes and improvements to :mod:`eulexistdb`. New features in each version should be listed, with any necessary information about installation or upgrade notes.
- Updated and tested for compatibility with eXist-db 2.2
- Improved :class:`eulexistdb.query.QuerySet` efficiency when retrieving results (now retrieves chunked results using eXist REST API, making fewer requests to the server)
- Simple xml-based query syntax now supported via :class:`eulexistdb.query.XmlQuery`
- Updated for compatibility with current versions of Django
- Now uses requests <http://docs.python-requests.org/> for REST API access and as XML-RPC transport for improved handling and connection pooling.
- New custom django-debug-toolbar panel to view existdb xqueries used to generate a django page.
- Unittest2 and Django test runner are now optional when using testutils.
- Basic support for preceding/following/preceding-sibling/following-sibling queries when returning additional fields from a query via XmlModel.
- Bugfix: support xml returns for xpaths ending with node() or *
- New method for sorting a :class:`eulexistdb.query.QuerySet` by a raw XPath, for those cases when the desired sort xpath cannot be specified as an :mod:`xmlmap` field: :meth:`eulexistdb.query.QuerySet.order_by_raw`
- The Django manage.py script for managing eXist-DB index configuration files now takes optional username and password credentials, for use with sites that run in guest mode or with limited access.
- bugfix: :class:`~eulexistdb.query.QuerySet` greater than and less than filters no longer assume numeric values should be treated as numbers, to allow comparison of string values of numbers.
- bugfix: :class:`~eulexistdb.query.Xquery` now correctly generates xqueries with more than one where statement.
- New filters and operators supported on :class:`eulexistdb.query.QuerySet`:
*
exists
- filter on the presence of absence of a node * comparison operatorsgt
,gte
,lt
,lte
- Support for excluding documents using all existing filters with new method :meth:`eulexistdb.query.QuerySet.exclude`.
- Support for restricting xqueries to a single document in
:class:`eulexistdb.query.QuerySet` with
document_path
filter.
- Development requirements can now be installed as an optional requirement
of the eulexistdb package (
pip install "eulexistdb[dev]"
). - Unit tests have been updated to use :mod:`nose`
- Provides a nose plugin to set up and tear down an eXist database collection for tests, as an alternative to the custom test runners.
- Update to latest released version of :mod:`eulxml` (0.18.0) with backwards-incompatible DateField/DateTimeField change.
- Support Python 2.7.
- Rearrange test code to support easier recombination.
- Split out existdb-specific components from :mod:`eulcore`; now depends on :mod:`eulxml`.