Skip to main content

Higher level query system for zope.catalog.

Project description

Hurry Query

The hurry query system for the zope.catalog builds on its catalog indexes, as well as the indexes in zc.catalog. It is in part inspired by AdvancedQuery for Zope 2 by Dieter Maurer, though has an independent origin.

You can have a look at the doc tests in the package for more information regarding the usage.

CHANGES

4.0 (2023-05-04)

  • Drop support for Python 2.7, 3.5, 3.6.

  • Add support for Python 3.9, 3.10, 3.11.

3.2 (2020-11-16)

  • Add support for Python 3.7.

  • Add support for Python 3.8.

  • Drop support for Python 3.4.

  • Replace time.clock with time.perf_counter and fix deprecation warnings.

3.1 (2018-08-08)

  • Add Ids term that include already known intids in a query.

3.0.0 (2018-01-19)

  • Support for python 3.4, 3.5 and 3.6 in addition to python 2.7

  • Cleanup in preparation for python3 support:

    Bugfixes:

    • API change: fix And(weighted=) keyword argument typo

    • API change: remove utterly broken include_minimum and include_maximum arguments to SetBetween(), provide exclude_min and exclude_max instead.

    • API change: fix broken SetBetween.apply(): introduce cache arg

    • Fix ExtentNone() super delegation bug

    • Fix TimingAwareCaching.report() edge condition bug

    Major:

    • Remove unsupported transaction_cache

    Minor:

    • Clarify HURRY_QUERY_TIMING environment and searchResults(timing=) type

    • Fix TimingAwareCaching.report() output typo

    • Clarify Query.searchResults(caching=) argument type

    • Remove unreachable code path from And()

    Dev:

    • Maximize test coverage

    • Add Travis and Tox testing configurations

    • Bypass bootstrap.py

    • Various python3 compatibility preparations

2.6 (2018-01-10)

  • Update dependencies not to rely on ZODB3 anymore.

2.5 (2017-07-17)

  • sort_field can be a index name or an object providing IIndexSort itself.

  • searchResults() accepts optional parameter locate_to and wrapper. The locate_to is used as the __parent__ for the location proxy put arround the resulting objects. The wrapper is a callable callback that should accept one argument for its parameter.

2.4 (2017-06-22)

  • Don't throw a TypeError slicing unsorted results, fixes #6

2.3 (2017-04-26)

  • Define a "no result" result object, useful for case where application code has an custom API for building query terms, but this application code decides there is no query. Callers might still expect a result-like object.

2.2 (2017-04-26)

  • The caching option to searchResults now accepts a dict-like value and it will use that to allow for caching results over multiple searchResults() calls. The cache invalidation then is the responsibility of the caller.

2.1 (2017-02-07)

  • Add the possibility to time how long a query takes. It can be controlled with the new timing option to searchResults or the HURRY_QUERY_TIMING environment variable.

2.0.1 (2016-09-08)

  • Fix log line in Text term for invalid text search.

2.0 (2016-09-07)

  • Add new term: Difference. It does a difference between the first and the following terms passed as arguments.

  • Add new term: Objects. It creates a result out of the objects passed in arguments. It let you mix real objects with existing catalog queries (with And, Or or Difference for instance).

  • Add an option start to searchResult to skip the first results in the results set.

  • Extend the result from searchResult. You have addition information on the result, including the total number of results without start/limit restriction. A method called first() return only the first result if available or none.

  • Add an option caching to searchResult to cache the result of each terms within a Zope transaction, speeding similar queries. If disabled, terms will still be cached within the same query.

1.2 (2015-12-16)

  • Add support for an All query.

1.1.1 (2012-06-22)

  • ExtentNone in set.py missed a parameter index_id. Thanks to Danilo Botelho for the bug report.

1.1.0 (2010-07-12)

  • Allow the searchResults method of a Query to take an additional keyword argument sort_field that defines that defines (catalog_name, index_name) to sort on. That index in that catalog should implement IIndexSort.

    In addition to this keyword argument, limit and reverse keyword arguments can be passed too, that will limit the sorted resultset and/or reverse its order.

  • Allow the searchResults method of a Query object to take an additional optional context argument. This context will determine which catalog the search is performed on.

1.0.0 (2009-11-30)

  • Refresh dependencies. Use zope.catalog and zope.intid instead of zope.app.catalog and zope.app.intid respectively. Don't zope.app.zapi.

  • Make package description more modern.

  • Clean up the code style.

0.9.3 (2008-09-29)

  • BUG: NotEq query no longer fails when all values in the index satisfy the NotEq condition.

0.9.2 (2006-09-22)

  • First release on the cheeseshop.

0.9.1 (2006-06-16)

  • Make zc.catalog a dependency of hurry.query.

0.9 (2006-05-16)

  • Separate hurry.query from the other hurry packages. Eggification work.

  • Support for ValueIndex from zc.catalog.

0.8 (2006-05-01)

Initial public release.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hurry.query-4.0.tar.gz (23.2 kB view hashes)

Uploaded Source

Built Distribution

hurry.query-4.0-py3-none-any.whl (17.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page