------------------
- Optimize ``index_doc`` implementations of field and keyword index in cases
where the discriminator returns the default.
- Remove code from ``hypatia.path``. This package no longer supports
PathIndex.
- Remove ``interfaces.IIndexQuery`` interface. It was never relevant, as
indices cannot be expected to implement all of its methods, only the ones
which apply to each index.
- ``BaseIndexMixin`` no longer supplies default implementation of applyFoo
methods which raise NotImplementedError. Each index is now responsible for
implementing all of its own applyFoo methods. This is in the interest of
fidelity with new query methods such as ``eq``, which are similarly not
implemented in the base.
- Indexes are now compelled to implement a ``qname`` method for use by
queries.
- ``DoesNotContain`` query renamed to ``NotContains`` for symmetry with other
negated query names.
- New index methods: ``eq``, ``noteq``, ``ge``, ``le``, ``lt``, ``gt``,
``any``, ``notany``, ``all``, ``notall``, ``inrange``, ``notinrange``,
``contains``, ``notcontains``. These methods return query objects. Ex::
catalog['flavors'].eq('peach')
- Query objects refactored internally to deal in index objects rather than
index names.
- The ``query.parse_query`` function now requires a ``catalog`` argument.
- Query objects now supply an .execute method which returns a ResultSet.
- ResultSet objects are returned from .execute. They represent a set of
docids; they are iterable and have various methods for obtaining single
objects (like ``one``, ``first``) and sorting (``sort``).
- All Query objects now have a ``flush`` method which accepts arbitrary
positional and keyword arguments. Calling the ``flush`` method of a query
object will cause the ``flush`` method of all indexes participating in the
query with the value passed to Query.flush with the same positional and
keyword arguments. This is to support Substance D upstream, which may
require indexes to be flushed before a query happens.
- Add a ``document_repr`` method to all indexes which accepts a docid and
returns a string represnting the index's knowledge about that docid.