Change & Version Information

The following is a summary of changes and improvements to 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 scan.


  • Removed unused kwargs from db.ExistDB init method #1
  • db.ExistDB create_group and create_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: 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 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 eulexistdb.query.XmlQuery
  • Updated for compatibility with current versions of Django
  • Now uses requests <> 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 eulexistdb.query.QuerySet by a raw XPath, for those cases when the desired sort xpath cannot be specified as an xmlmap field: eulexistdb.query.QuerySet.order_by_raw()
  • The Django 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: 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: Xquery now correctly generates xqueries with more than one where statement.




  • 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 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 eulxml (0.18.0) with backwards-incompatible DateField/DateTimeField change.

0.15.1 - Bugfix Release

  • Support Python 2.7.
  • Rearrange test code to support easier recombination.

0.15.0 - Initial Release

  • Split out existdb-specific components from eulcore; now depends on eulxml.