Metadata-Version: 2.4
Name: nti.zope_catalog
Version: 4.2.0
Summary: NTI Zope Catalog
Home-page: https://github.com/OpenNTI/nti.zope_catalog
Author: Jason Madden
Author-email: jason@nextthought.com
License: Apache
Project-URL: Documentation, https://ntizope-catalog.readthedocs.io/en/latest/
Keywords: Zope Catalog
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Framework :: ZODB
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.10
License-File: LICENSE
License-File: AUTHORS
Requires-Dist: BTrees>=4.8.0
Requires-Dist: nti.property>=1.0.0
Requires-Dist: nti.zodb>=1.0.0
Requires-Dist: persistent
Requires-Dist: pytz
Requires-Dist: six
Requires-Dist: zc.catalog>=2.0.1
Requires-Dist: ZODB>=5.0.0
Requires-Dist: zope.cachedescriptors
Requires-Dist: zope.catalog
Requires-Dist: zope.component
Requires-Dist: zope.container
Requires-Dist: zope.index
Requires-Dist: zope.interface
Requires-Dist: zope.location
Provides-Extra: test
Requires-Dist: pyhamcrest; extra == "test"
Requires-Dist: nti.testing; extra == "test"
Requires-Dist: zope.testing; extra == "test"
Requires-Dist: zope.testrunner; extra == "test"
Provides-Extra: docs
Requires-Dist: Sphinx; extra == "docs"
Requires-Dist: repoze.sphinx.autointerface; extra == "docs"
Requires-Dist: sphinx_rtd_theme; extra == "docs"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

=================
 nti.zope_catalog
=================

.. image:: https://img.shields.io/pypi/v/nti.zope_catalog.svg
        :target: https://pypi.python.org/pypi/nti.zope_catalog/
        :alt: Latest release

.. image:: https://img.shields.io/pypi/pyversions/nti.zope_catalog.svg
        :target: https://pypi.org/project/nti.zope_catalog/
        :alt: Supported Python versions

.. image:: https://github.com/NextThought/nti.zope_catalog/workflows/tests/badge.svg
        :target: https://github.com/NextThought/nti.zope_catalog/actions?query=workflow%3Atests

.. image:: https://coveralls.io/repos/github/NextThought/nti.zope_catalog/badge.svg?branch=master
        :target: https://coveralls.io/github/NextThought/nti.zope_catalog?branch=master

.. image:: https://readthedocs.org/projects/ntizope-catalog/badge/?version=latest
        :target: http://ntizope-catalog.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

Utilities and extensions for ZODB-based Zope catalogs and indexes.

This builds on both zope.catalog and zc.catalog.


=========
 Changes
=========

4.2.0 (2026-07-02)
==================

- Add support for Python 3.14 and 3.15.


4.1.0 (2024-11-12)
==================

- Drop support for Python 3.9.
- Use native namespace packages.


4.0.0 (2024-10-11)
==================

- Drop support for Python 2. We now only support Python 3.9 and above.
- Add support for Python 3.10, 11, 12, and 13.
- Remove dependency on ``zopyx.txng3.ext``.
- Remove dependency on ``pkg_resources``.


3.0.1 (2021-05-13)
==================

- Fix the ``ExtentFilteredSet`` to only unindex documents that were
  previously indexed. This avoids an extra ``readCurrent`` call. See
  `issue 12 <https://github.com/NextThought/nti.zope_catalog/issues/12>`_.


3.0.0 (2021-05-12)
==================

- Add support for Python 3.7, 3.8 and 3.9.

  Note that ``zopyx.txng3.ext`` version 4.0.0, the current version at
  this writing, may or may not build on CPython 3, depending on how
  your compiler and compiler options treat undefined functions.
  See `this issue <https://github.com/zopyx/zopyx.txng3.ext/issues/10>`_.

  Also note that both PyPy 3.6 and 3.7 (7.3.4) are known to crash when
  running the test suite. PyPy2 7.3.4 runs the test suite fine.

- When updating indexes in a catalog, first check if the type of each
  object to be visited implements ``INoAutoIndex``. If it does, we can
  avoid prematurely activating persistent ghost objects. See `issue 8
  <https://github.com/NextThought/nti.zope_catalog/issues/8>`_.

- Require ZODB 5 in order to use the new ``prefetch()`` method.

- When adding or updating an index in a catalog, use ZODB's prefetch
  method to grab chunks of object state data from the database. This
  can be substantially faster than making requests one at a time. This
  introduces a new class ``CatalogPrefetchIterator`` that may be
  useful in other circumstances. See `issue 7
  <https://github.com/NextThought/nti.zope_catalog/issues/8>`_.

2.0.0 (2017-11-05)
==================

- Rename ``TimestampToNormalized64BitIntNormalizer`` to
  ``TimestampTo64BitIntNormalizer`` for consistency.
- Make ``TimestampTo64BitIntNormalizer`` subclass
  ``TimestampNormalizer`` for simplicity.
- Rename ``FloatToNormalized64BitIntNormalizer`` to
  ``PersistentFloatTo64BitIntNormalizer`` for consistency and to
  reflect its purpose.
- Make ``PersistentFloatTo64BitIntNormalizer`` subclass
  ``FloatTo64BitIntNormalizer``.
- Add ``IDeferredCatalog`` and an implementation in
  ``DeferredCatalog`` to allow creating catalog objects that don't
  participate in event subscription-based indexing. This replaces
  ``IMetadataIndex``, which is now an alias for this object. See
  `issue 3 <https://github.com/NextThought/nti.zope_catalog/pull/3>`_.

1.0.0 (2017-06-15)
==================

- First PyPI release.
- Add support for Python 3.
- ``TimestampNormalizer`` also normalizes incoming datetime objects.
- Fix extent-based queries for NormalizedKeywordIndex.
- 100% test coverage.
