- Drop support for Python 3.8.
- Add preliminary support for Python 3.14.
- Update docs config to
Sphinx >=8
.
- Add final support for Python 3.13.
- Update to
persistent
6.0 API usage
- Drop support for Python 3.7.
- Build Windows wheels on GHA.
- Add preliminary support for Python 3.13 as of 3.13a6.
- Add support for Python 3.12.
- Drop using
setup_requires
due to constant problems on GHA. - Add preliminary support for Python 3.12a7.
- Build Linux binary wheels for Python 3.11.
- Drop support for Python 2.7, 3.5, 3.6.
- Release to rebuild a full set of binary wheels.
- Add support for building arm64 wheels on macOS.
- Add support for final Python 3.11 release.
- Disable unsafe math optimizations in C code. See pull request 46.
- Add support for Python 3.11 (as of 3.11.0b3).
- Add support for Python 3.9 and 3.10.
Support the
PURE_PYTHON
environment variable at runtime instead of just at wheel build time. A value of 0 forces the C extensions to be used failing if they aren't present. Any other value forces the Python implementation to be used, ignoring the C extensions.Drop support for the deprecated
python setup.py test
command.Ensure all objects have consistent interface resolution orders. This may slightly change the order of interfaces for
ContainedProxy
objects. See issue 34.Stop including outdated versions of
zope.proxy
(implementation) andpersistent
headers. Instead, locate and use the installed versions. See issue 32.Note
This adds those two dependencies to
setup_requires
.
- Add support for Python 3.8.
- Drop support for Python 3.4.
- Add a dependency on
zope.cachedescriptors
, previously removed in 3.11.zope.cachedescriptors
is a lightweight package, and the copied code had diverged from the source. See #16 - Fix the possibility of a rare crash in the C extension when deallocating items. See #24
- Add support for Python 3.7.
- Make
OrderedContainer.updateOrder
normalize and store text keys the same way that__setitem__
does. Fixes #21
- Add support for Python 3.5 and 3.6.
- Drop support for Python 2.6 and 3.3.
- Make
OrderedContainer
properly store the decoded text keys for maintaining order instead of the raw bytes. Also make it able to accept raw bytes under Python 3 in the first place. Fixes #17 - Fix
OrderedContainer
becoming inconsistent if an event subscriber threw an exception when adding an item. See #18 - Attain 100% test coverage. See #15
- Make the default
NameChooser
always decode bytes using ASCII instead of whatever the current system codec happens to be. - Make the default
NameChooser
stop catchingKeyboardInterrupt
and otherBaseException
types when it potentially calls user-defined code to convert a name to a text string. Instead, just catchException
. - Respect the
PURE_PYTHON
environment variable at runtime in addition to build time. This makes it possible to use the pure-Python implementation of the container proxy on CPython for ease of debugging. See #13
- Make
zope.container._proxy.PyContainedProxyBase
inherit directly fromzope.proxy.AbstractProxyBase
as well aspersistent.Persistent
, removing a bunch of redundant code, and fixing bugs in interaction with pure-Python persistence. See: #4 - Add direct dependencies on
zope.proxy
andpersistent
since we import from them; pin them to the versions needed for pure-Python. - Drop deprecated BBB imports module,
zope.container.dependency
.
- Add support for Python 3.4.
- Add support for PyPy.
- Restore
Folder
pickle forward/backward compatibility with version 3.12.0 after making it inherit fromBTreeContainer.
- Allow testing without checkouts of unreleased
zope.publisher
andZODB
. - Add Python 3 Trove classifiers.
- Add support for Python 3.3.
- Make
Folder
class inherit fromBTreeContainer
class, so that the IContainer interface does not need to be re-implemented. Added adata
attribute for BBB. - Replace deprecated
zope.component.adapts
usage with equivalentzope.component.adapter
decorator. - Replace deprecated
zope.interface.implements
usage with equivalentzope.interface.implementer
decorator. - Drop support for Python 2.4 and 2.5.
- Send
IContainerModifiedEvent
after the container is modified (LP#705600). - Preserve the original exception traceback in
OrderedContainer.__setitem__
. - Handle Broken Objects more gracefully
- Fix a bug that made it impossible to store None values in containers (LP#1070719).
- Fix detection of moving folders into itself or a subfolder of itself. (LP#118088)
- Fix ZCML-related tests and dependencies.
- Add
zcml
extra dependencies.
- Prefer the standard libraries doctest module to the one from
zope.testing
. - Add compatibility with ZODB3 3.10 by importing the
IBroken
interface from it directly. Once we can rely on the new ZODB3 version exclusively, we can remove the dependency onto thezope.broken
distribution. - Never fail if the suggested name is in a wrong type (#227617)
checkName
first checks the parameter type before the emptiness.
- Copy two trivial classes from
zope.cachedescriptors
into this package, which allows us to remove that dependency. We didn't actually use any caching properties as the dependency suggested.
- Move
zope.copypastemove
related tests into that package. - Remove no longer used zcml prefix from the configure file.
- Stop importing DocTestSuite from
zope.testing.doctestunit
. Fixes compatibility problems withzope.testing
3.8.4.
- Break testing dependency on
zope.app.testing
. - Break testing dependency on
zope.app.dependable
by moving the code and tests into that package. - Import
ISite
fromzope.component
after it was moved there fromzope.location
.
- Rerelease 3.9.0 as it had a broken Windows 2.6 egg.
- Mark this project as part of the ZTK.
Previous releases should be versioned 3.9.0 as they are not pure bugfix releases and worth a "feature" release, increasing feature version.
Packages that depend on any changes introduced in version 3.8.2 or 3.8.3 should depend on version 3.9 or greater.
- Move
IXMLRPCPublisher
ZCML registrations for containers fromzope.app.publisher.xmlrpc
tozope.container
for now.
- Rid ourselves of
IContained
interface. This interface was moved tozope.location.interfaces
. A b/w compat import still exists to keep old code running. Depend onzope.location
>=3.5.4. - Rid ourselves of the implementations of
IObjectMovedEvent
,IObjectAddedEvent
,IObjectRemovedEvent
interfaces andObjectMovedEvent
,ObjectAddedEvent
andObjectRemovedEvent
classes. B/w compat imports still exist. All of these were moved tozope.lifecycleevent
. Depend onzope.lifecycleevent
>=3.5.2. - Fix a bug in
OrderedContainer
where trying to set the value for a key that already exists (duplication error) would actually delete the key from the order, leaving a dangling reference. - Partially break dependency on
zope.traversing
by disusingzope.traversing.api.getPath
in favor of usingILocationInfo(object).getPath()
. The rest of the runtime dependencies onzope.traversing
are currently interface dependencies. - Break runtime dependency on
zope.app.dependable
by using a zcml condition on the subscriber ZCML directive that registers theCheckDependency
handler forIObjectRemovedEvent
. Ifzope.app.dependable
is not installed, this subscriber will never be registered.zope.app.dependable
is now a testing dependency only.
- Fix misspackaged 3.8.0
- Change
configure.zcml
to not depend onzope.app.component
. Fixes: https://bugs.launchpad.net/bugs/348329 - Move the declaration of
IOrderedContainer.updateOrder
to a new, basicIOrdered
interface and letIOrderedContainer
inherit it. This allows easier reuse of the declaration.
- Fix: added missing
ComponentLookupError
, missing since revision 95429 and missing in last release. - Adapt to the move of IDefaultViewName from
zope.component.interfaces
tozope.publisher.interfaces
. - Add support for reserved names for containers. To specify reserved
names for some container, you need to provide an adapter from the
container to the
zope.container.interfaces.IReservedNames
interface. The defaultNameChooser
is now also aware of reserved names.
Raise more "Pythonic" errors from
__setitem__
, losing the dependency onzope.exceptions
:o
zope.exceptions.DuplicationError
->KeyError
o
zope.exceptions.UserError
->ValueError
Move import of
IBroken
interface to use newzope.broken
package, which has no dependencies beyondzope.interface
.Make
test
part pull in the extra test requirements of this package.Split the
z3c.recipe.compattest
configuration out into a new file,compat.cfg
, to reduce the burden of doing standard unit tests.Strip out bogus develop eggs from
buildout.cfg
.
- Split this package off
zope.app.container
. This package is intended to have far less dependencies thanzope.app.container
. - This package also contains the container implementation that
used to be in
zope.app.folder
.