Skip to main content

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

5.1 (2025-12-08)

  • Add support for Python 3.14.

  • Drop support for Python 3.9.

  • Simplify usage of PEP-420 namespace.

  • Do not allow any other values but True or False for exclude_min and exclude_max arguments to the Between() term and SetBetween() term. It used to be possible to pass None for example, and this would raise a TypeError in the BTrees implementation. This TypeError however is silently ignored in zc.catalog.index and an empty result set is returned instead.

5.0 (2025-02-12)

  • Drop support for pkg_resources namespace and replace it with PEP 420 native namespace.

  • Add support for Python 3.12, 3.13.

  • Drop support for Python 3.7, 3.8.

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.

Release files for hurry.query 5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hurry.query 5.1
File Size Uploaded
hurry_query-5.1.tar.gz 24.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hurry.query 5.1
File Interpreter ABI Platform
hurry_query-5.1-py3-none-any.whl Python 3 none any Details

Total release size: 42.3 kB

Release files / hurry_query-5.1.tar.gz

Download URL hurry_query-5.1.tar.gz
Size 24.6 kB
Tags Source
SHA-256 checksum
How to use checksums
dfc8bbbb0b766d41b0f397a0a75fb65c1cc0b74dd7069a40d1fd406e794c9666
BLAKE2b-256 checksum
How to use checksums
1595d4b70b89741cea73eea9e9846ac0dc3a6f9e8f4da35c0340fe3b01267452
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.12

Release files / hurry_query-5.1-py3-none-any.whl

Download URL hurry_query-5.1-py3-none-any.whl
Size 17.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ad72137ac621ccaa11e83db539474c879d8b7886dc03927526253b8d31acf847
BLAKE2b-256 checksum
How to use checksums
2baae8d0c3faeadfc698288e28fd6411e9e7f39ef25f817a9152cc62184d6886
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.12

Release history Release notifications | RSS feed

This release

5.1 This release

2 release files

5.0

2 release files

4.0

2 release files

3.2

1 release file

3.1

1 release file

3.0.0

1 release file

2.6

1 release file

2.5

1 release file

2.4

1 release file

2.3

1 release file

2.2

1 release file

2.1

1 release file

2.0.1

1 release file

2.0

1 release file

1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.9.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page