Registry / web-framework / zope-contentprovider

zope-contentprovider

JSON →
library7.0pypypi✓ verified 85d ago

Content Provider Framework for Zope Templates. Provides a mechanism for registering and rendering pluggable content providers (widgets, portlets) in Zope Page Templates. Current version: 7.0, released 2024-07-18. Release cadence: ad-hoc, based on Zope Toolkit releases.

pip install zope.contentprovider
INSTALL
IMPORT
SIG · ZOPE-CONTENTPROVID
Z
zope-contentprovider
web-frameworkpythonv7.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

IContentProvider
from zope.contentprovider.interfaces import IContentProvider
from zope.contentprovider import IContentProvider
Incorrect import path; interface is in the 'interfaces' submodule.
ContentProviderBase
from zope.contentprovider.provider import ContentProviderBase
from zope.contentprovider import ContentProviderBase
Class is in the 'provider' submodule, not in top-level package.
TALESContentProvider
from zope.contentprovider.tales import TALESContentProvider
from zope.contentprovider.tales import TALESContentProviderExpr
The expression class is named TALESContentProvider, not TALESContentProviderExpr.

Minimal content provider implementation. Extend ContentProviderBase and implement render().

from zope.interface import implementer from zope.contentprovider.interfaces import IContentProvider from zope.contentprovider.provider import ContentProviderBase @implementer(IContentProvider) class MyProvider(ContentProviderBase): def __init__(self, context, request, view): super().__init__(context, request, view) def render(self): return '<p>Hello from MyProvider</p>'
Debug
Known issues
breakingIn version 7.0, removed support for Python 2 and Python < 3.9. Also dropped 'zope.contentprovider.browser' module (merged functionality into 'provider').
fix
Upgrade to Python >=3.9 and adjust imports: replace 'zope.contentprovider.browser' with 'zope.contentprovider.provider'.
affects: >=7.0
deprecatedGlobal content provider registration via ZCML directive (<browser:contentProvider />) is deprecated in favor of Python-based registration using zope.component.
fix
Use zope.component's provideAdapter or provideUtility to register providers programmatically.
affects: >=6.0
gotchaContentProviderBase.render() must return a unicode string (or bytes in Python 3). Returning None or non-string objects will cause template rendering errors.
fix
Ensure render() always returns a string: return '' or str() if no content.
affects: all
gotchaWhen using TALESContentProvider expression in Page Templates, the expression engine expects the provider to be registered as a utility. Unregistered providers silently return empty string.
fix
Register your provider with zope.component.provideUtility(provider, IContentProvider) before template rendering.
affects: all
Errors
Common errors & fixes
ImportError: cannot import name 'IContentProvider' from 'zope.contentprovider'
Incorrect import path; IContentProvider is in the 'interfaces' submodule.
fix
Use: from zope.contentprovider.interfaces import IContentProvider
TypeError: Can't instantiate abstract class MyProvider with abstract methods render
Missing implementation of render() method.
fix
Add a render() method that returns a string.
zope.configuration.config.ConfigurationConflictError: Conflicting configuration for 'contentProvider'
Duplicate registration of the same provider via ZCML.
fix
Remove duplicate ZCML directives or register only once.
Upgrade
Version history
7.0latest on PyPI · released Sep 12, 2025
Audit
Dependencies
zope.interfacerequiredRequired for interface definitions (IContentProvider, IContentProviderFactory).
zope.componentrequiredRequired for component architecture and adapter registration.
zope.publisheroptionalRequired for request/response handling and browser page support.
zope.traversingoptionalUsed for template-based content provider lookups.
Agent activity
44 hits · last 30 days
node
34
Amazon
1
OpenAI (training)
1
Resources
zope-contentprovider — pip install zope-contentprovider · libregistry