zope.contentprovider
Content Provider Framework for Zope Templates
What it is and what it does
zope.contentprovider is a framework for building web applications where page content is assembled dynamically through a component lookup system rather than static templates. Instead of writing monolithic templates or template hierarchies with METAL macros, you define content provider objects that are registered and discovered at runtime based on your application's configuration. This allows different parts of a page to be independently developed, tested, and swapped without modifying templates.
The package is built on the Zope component architecture and integrates with zope.interface, zope.component, and zope.tales for expression evaluation. It provides a ContentProviderBase class as a simple starting point for implementing providers. The framework is stable and actively maintained, supporting modern Python versions (3.9 through 3.13) and PyPy, with no known security vulnerabilities.
Use it for:
- Build modular web pages where different sections (header, sidebar, content area) are independently pluggable content providers.
- Implement theme systems where content providers are swapped based on user preferences or application state without template changes.
- Create reusable page components that can be registered and discovered dynamically across a Zope-based application.
- Develop complex web applications where page layout and content composition are driven by configuration rather than template code.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a framework for building componentized web GUI applications where content is dynamically looked up and composed based on application configuration rather than static templates.
Yes, if you are building a Zope-based web application and need dynamic, component-driven content composition. The package is stable, actively maintained, and dependency-light within the Zope ecosystem. However, verify that ZPL-2.1 licensing fits your project, and note that this is specialized tooling for Zope applications—not a general-purpose templating library. For non-Zope projects, this is not the right fit.
Install
zope-contentprovider on PyPI
pip
pip install zope-contentprovideruv
uv add zope-contentproviderpoetry
poetry add zope-contentproviderInstalling zope.contentprovider
Before you install
Low friction install with a wheel distribution. Active maintenance with recent releases; last commit 2026-02-16. Requires Python 3.9 or later and depends on 8 zope ecosystem packages, all of which are established components.
License in practice
Licensed under ZPL-2.1 (Zope Public License). License treatment is marked unclear in the metadata; developers should verify compatibility with their project's licensing requirements before use.
Quickstart
pip install zope.contentprovider
from zope.contentprovider.provider import ContentProviderBase
from zope.interface import implementer
@implementer(IContentProvider)
class MyProvider(ContentProviderBase):
def render(self):
return "<div>Content</div>"
Requires Python 3.9 or later. Integration typically requires ZCML configuration and understanding of the Zope component architecture.
Verify before relying
- Whether ZPL-2.1 license is compatible with common open-source and proprietary licensing models
- Practical learning curve and documentation depth for developers new to Zope component architecture
- Real-world usage patterns and community size beyond download statistics
Package facts
| License | ZPL-2.1 (unclear) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 8 — setuptools, zope.component, zope.event, zope.interface, zope.location, zope.publisher, zope.schema, zope.tales |
| Maintenance | actively maintained — 336 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 130,999/month — #11,616 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: zope_contentprovider-7.0-py3-none-any.whl
Keywords: zope3, content, provider
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
zope.viewletzope.viewlet provides a pluggable framework for…
unclear · top 15,000 on PyPI
zope.browserpageProvides ZCML directives (browser:page,…
unclear · top 15,000 on PyPI
zope.pagetemplatezope.pagetemplate provides a templating system…
unclear · top 15,000 on PyPI
zope.browsermenuProvides browser menu implementation and ZCML…
unclear · top 15,000 on PyPI
zope.browserresourceRegisters and serves static browser resources…
unclear · top 15,000 on PyPI
zope.configurationZope.configuration provides an extensible…
unclear · top 5,000 on PyPI
z3c.ptz3c.pt is a fast ZPT (Zope Page Template)…
unclear · top 15,000 on PyPI
zope.ptresourceProvides a resource class that processes Zope…
unclear · top 15,000 on PyPI
zope.contenttypeGuesses MIME types from filenames and body…
unclear · top 15,000 on PyPI
DocumentTemplateDocumentTemplate implements the Document…
unclear · top 15,000 on PyPI