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.
Raw data
{
"_id": null,
"home_page": "https://github.com/zopefoundation/hurry.query",
"name": "hurry.query",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "zope zope3 catalog index query",
"author": "Infrae",
"author_email": "zope-dev@zope.dev",
"download_url": "https://files.pythonhosted.org/packages/00/ab/a42e79cc3e06c925c0a3045818963d4b79eae3149372a7e657add70a2739/hurry.query-4.0.tar.gz",
"platform": null,
"description": "Hurry Query\n===========\n\nThe hurry query system for the zope.catalog builds on its catalog\nindexes, as well as the indexes in zc.catalog. It is in part inspired\nby AdvancedQuery for Zope 2 by Dieter Maurer, though has an independent\norigin.\n\nYou can have a look at the doc tests in the package for more\ninformation regarding the usage.\n\n\nCHANGES\n=======\n\n4.0 (2023-05-04)\n----------------\n\n- Drop support for Python 2.7, 3.5, 3.6.\n\n- Add support for Python 3.9, 3.10, 3.11.\n\n\n3.2 (2020-11-16)\n----------------\n\n- Add support for Python 3.7.\n\n- Add support for Python 3.8.\n\n- Drop support for Python 3.4.\n\n- Replace `time.clock` with `time.perf_counter` and fix deprecation warnings.\n\n3.1 (2018-08-08)\n----------------\n\n- Add ``Ids`` term that include already known intids in a query.\n\n3.0.0 (2018-01-19)\n------------------\n\n- Support for python 3.4, 3.5 and 3.6 in addition to python 2.7\n\n- Cleanup in preparation for python3 support:\n\n Bugfixes:\n\n - API change: fix And(weighted=) keyword argument typo\n\n - API change: remove utterly broken ``include_minimum`` and ``include_maximum``\n arguments to SetBetween(), provide ``exclude_min`` and ``exclude_max`` instead.\n\n - API change: fix broken SetBetween.apply(): introduce ``cache`` arg\n\n - Fix ExtentNone() super delegation bug\n\n - Fix TimingAwareCaching.report() edge condition bug\n\n Major:\n\n - Remove unsupported transaction_cache\n\n Minor:\n\n - Clarify HURRY_QUERY_TIMING environment and searchResults(timing=) type\n\n - Fix TimingAwareCaching.report() output typo\n\n - Clarify Query.searchResults(caching=) argument type\n\n - Remove unreachable code path from And()\n\n Dev:\n\n - Maximize test coverage\n\n - Add Travis and Tox testing configurations\n\n - Bypass bootstrap.py\n\n - Various python3 compatibility preparations\n\n\n2.6 (2018-01-10)\n----------------\n\n- Update dependencies not to rely on ZODB3 anymore.\n\n2.5 (2017-07-17)\n----------------\n\n- `sort_field` can be a index name or an object providing `IIndexSort` itself.\n\n- `searchResults()` accepts optional parameter `locate_to` and `wrapper`. The\n `locate_to` is used as the `__parent__` for the location proxy put arround\n the resulting objects. The `wrapper` is a callable callback that should\n accept one argument for its parameter.\n\n2.4 (2017-06-22)\n----------------\n\n- Don't throw a TypeError slicing unsorted results, fixes #6\n\n2.3 (2017-04-26)\n----------------\n\n- Define a "no result" result object, useful for case where application code\n has an custom API for building query terms, but this application code\n decides there is no query. Callers might still expect a result-like\n object.\n\n2.2 (2017-04-26)\n----------------\n\n- The caching option to searchResults now accepts a dict-like value and it\n will use that to allow for caching results over multiple searchResults()\n calls. The cache invalidation then is the responsibility of the caller.\n\n2.1 (2017-02-07)\n----------------\n\n- Add the possibility to time how long a query takes. It can be\n controlled with the new ``timing`` option to ``searchResults`` or\n the ``HURRY_QUERY_TIMING`` environment variable.\n\n2.0.1 (2016-09-08)\n------------------\n\n- Fix log line in Text term for invalid text search.\n\n2.0 (2016-09-07)\n----------------\n\n- Add new term: Difference. It does a difference between the first and\n the following terms passed as arguments.\n\n- Add new term: Objects. It creates a result out of the objects passed\n in arguments. It let you mix real objects with existing catalog\n queries (with And, Or or Difference for instance).\n\n- Add an option start to searchResult to skip the first results in the\n results set.\n\n- Extend the result from searchResult. You have addition information\n on the result, including the total number of results without\n start/limit restriction. A method called first() return only the\n first result if available or none.\n\n- Add an option caching to searchResult to cache the result of each\n terms within a Zope transaction, speeding similar queries. If\n disabled, terms will still be cached within the same query.\n\n\n1.2 (2015-12-16)\n----------------\n\n* Add support for an All query.\n\n1.1.1 (2012-06-22)\n------------------\n\n* ExtentNone in set.py missed a parameter ``index_id``. Thanks to Danilo\n Botelho for the bug report.\n\n1.1.0 (2010-07-12)\n------------------\n\n* Allow the searchResults method of a Query to take an additional keyword\n argument `sort_field` that defines that defines (catalog_name, index_name) to\n sort on. That index in that catalog should implement IIndexSort.\n\n In addition to this keyword argument, `limit` and `reverse` keyword arguments\n can be passed too, that will limit the sorted resultset and/or reverse its\n order.\n\n* Allow the searchResults method of a Query object to take an additional\n optional context argument. This context will determine which catalog\n the search is performed on.\n\n1.0.0 (2009-11-30)\n------------------\n\n* Refresh dependencies. Use zope.catalog and zope.intid instead of\n zope.app.catalog and zope.app.intid respectively. Don't zope.app.zapi.\n\n* Make package description more modern.\n\n* Clean up the code style.\n\n0.9.3 (2008-09-29)\n------------------\n\n* BUG: NotEq query no longer fails when all values in the index\n satisfy the NotEq condition.\n\n0.9.2 (2006-09-22)\n------------------\n\n* First release on the cheeseshop.\n\n0.9.1 (2006-06-16)\n------------------\n\n* Make zc.catalog a dependency of hurry.query.\n\n0.9 (2006-05-16)\n----------------\n\n* Separate hurry.query from the other hurry packages. Eggification work.\n\n* Support for ValueIndex from zc.catalog.\n\n0.8 (2006-05-01)\n----------------\n\nInitial public release.\n",
"bugtrack_url": null,
"license": "ZPL 2.1",
"summary": "Higher level query system for zope.catalog.",
"version": "4.0",
"project_urls": {
"Homepage": "https://github.com/zopefoundation/hurry.query"
},
"split_keywords": [
"zope",
"zope3",
"catalog",
"index",
"query"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "93c07e078b5bff4bf15edeb95710851b87cf2a7edc3b8851e72730c4e74c8974",
"md5": "071f4fac0b47f37cc094ff709d3ff99f",
"sha256": "4c3e380ae8f8740d82e01c3e176052d7dd06c24428365b55a55daf5225b493a1"
},
"downloads": -1,
"filename": "hurry.query-4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "071f4fac0b47f37cc094ff709d3ff99f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 17868,
"upload_time": "2023-05-04T06:27:36",
"upload_time_iso_8601": "2023-05-04T06:27:36.633239Z",
"url": "https://files.pythonhosted.org/packages/93/c0/7e078b5bff4bf15edeb95710851b87cf2a7edc3b8851e72730c4e74c8974/hurry.query-4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "00aba42e79cc3e06c925c0a3045818963d4b79eae3149372a7e657add70a2739",
"md5": "84a004c5ca53121048eb1b2e0a785df7",
"sha256": "cae6bd1784cf227a7f0e8ab3aca29062ee2288a5886be4fadb4cdcb72251ab4f"
},
"downloads": -1,
"filename": "hurry.query-4.0.tar.gz",
"has_sig": false,
"md5_digest": "84a004c5ca53121048eb1b2e0a785df7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 23244,
"upload_time": "2023-05-04T06:27:40",
"upload_time_iso_8601": "2023-05-04T06:27:40.429097Z",
"url": "https://files.pythonhosted.org/packages/00/ab/a42e79cc3e06c925c0a3045818963d4b79eae3149372a7e657add70a2739/hurry.query-4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-04 06:27:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "zopefoundation",
"github_project": "hurry.query",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "hurry.query"
}