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.
- Clean up reference to old overwrite parameter no longer used in db.load method; explicitly test load method #12
- Code cleanup based on landscape.io scan.
- Removed unused kwargs from db.ExistDB init method #1
- db.ExistDB
create_group
andcreate_account
methods now re-raise unexpected errors #2 - Improved timeout handling; fixes timeouts on REST API requests #3
- bugfix: make Django settings actually optional
- Require eulxml 1.1.2 to handle duplicate
xml:id
attributes included in a single exist result. (Duplicate id test case contributed by @lddubeau in PR #5 ) - Add opt-in patch for extended type handling in xmlrpc. Contributed by @lddubeau in PR #6, resolves #4
- Removed
overwrite
option from eulexistdb.ExistDB.load (no longer applicable under the REST API, and misleading) #9 - Improved django-debug-toolbar integration. #7, #8
- Updated Existdb.DB initialization parameters to restore support for xmlrpc-style urls with username and password used in previous versions of eulexistdb. #10
- Bugfix: xquery xpath prep now handles nested function calls
- Updated unit tests so they can be run with and without django, in order to test that eulexistdb works properly without django.
- Configured unit tests on travis-ci to test with and without django.
- NOTE: :class:`Existdb.DB` initialization parameters has changed; server url is no longer expected to include full xmlrpc path.
- 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`.