zope.site
Local registries for zope component architecture
What it is and what it does
zope.site provides a local site manager that allows you to register utilities and adapters at specific locations within your application, rather than globally. It works by organizing components into site management folders within a persistent object hierarchy, typically backed by ZODB. The package implements the Zope component architecture's location-based lookup mechanism, so that when you query for a component, the system can find local registrations before falling back to global ones.
The package is designed for multi-tenant or hierarchical applications where different parts of your system need different component configurations. You create a site by attaching a LocalSiteManager to a folder-like object, then register utilities and adapters into that manager's site management folders. Nested sites inherit from their parent sites, allowing you to override or extend component registrations at each level. This is useful in web frameworks, CMS systems, or any application that needs pluggable, location-aware component discovery.
Use it for:
- Build a multi-tenant web application where each tenant has its own set of registered utilities and adapters.
- Create a CMS where different sections of the site can have custom component configurations without affecting others.
- Organize a large Zope application into logical subsites, each with its own local adapter and utility registries.
- Override global component registrations at specific locations in your application hierarchy for testing or customization.
- Implement a plugin architecture where plugins register themselves as local utilities within designated site folders.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a local and persistent site manager implementation for the Zope component architecture, enabling registration of local utilities and adapters organized in site management folders.
Yes, if you are building a Zope-based application or using the Zope component architecture and need location-aware component registration. The package is stable and has no known vulnerabilities, but install friction is low and maintenance is aging (336 days since last release). It is not a general-purpose tool—it is tightly coupled to Zope's ecosystem and requires ZODB or similar persistent storage. Only install if you are already committed to Zope or the component architecture pattern.
Install
zope-site on PyPI
pip
pip install zope-siteuv
uv add zope-sitepoetry
poetry add zope-siteInstalling zope.site
Before you install
Low install friction with a pure-Python wheel distribution. Maintenance status is aging—last release was 336 days ago—but the package is marked Production/Stable and supports current Python versions (3.9–3.13).
License in practice
Licensed under ZPL-2.1 (Zope Public License), which is OSI-approved but less common than MIT or Apache 2.0. License treatment is marked unclear, so review the actual terms if proprietary or GPL-compatible licensing is a concern.
Quickstart
from zope.site import folder, LocalSiteManager
from zope.component.interfaces import ISite
myfolder = folder.rootFolder()
sm = LocalSiteManager(myfolder)
myfolder.setSiteManager(sm)
print(ISite.providedBy(myfolder)) # True
Requires ZODB or a persistent storage backend to function as intended; the package is designed for use within Zope application servers or similar persistent object frameworks.
Verify before relying
- Whether the package's aging maintenance status (336 days since last release) signals active maintenance or dormancy in a mature, stable project.
- Practical performance characteristics when managing large numbers of local utilities or adapters across deeply nested site hierarchies.
Package facts
| License | ZPL-2.1 (unclear) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 10 — setuptools, zope.annotation, zope.container, zope.deprecation, zope.security, zope.component, zope.event, zope.interface, zope.lifecycleevent, zope.location |
| Maintenance | aging — 336 days since the last release |
| First released | |
| Downloads | 143,459/month — #11,178 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: zope_site-6.0-py3-none-any.whl
Keywords: zope, component, architecture, local
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.componentImplements the core Zope Component Architecture…
unclear · top 5,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.locationProvides a structural location system for Zope…
unclear · top 15,000 on PyPI
zope.containerProvides container interfaces and…
unclear · top 15,000 on PyPI
zope.browserpageProvides ZCML directives (browser:page,…
unclear · top 15,000 on PyPI
zope.traversingResolves object paths by traversing an object…
unclear · top 15,000 on PyPI
zope.browserProvides a set of standard interfaces for…
unclear · top 15,000 on PyPI
zope.annotationStores additional metadata on objects without…
unclear · top 15,000 on PyPI
keboola.componentWraps the Keboola Common Interface to simplify…
permissive · top 15,000 on PyPI