skillfed

zope.component

Zope Component Architecture

zope-component v7.1 1.0M downloads/30d#4,503 on PyPI33
License unclear ZPL-2.1 AGING released

What it is and what it does

zope.component is the core implementation of the Zope Component Architecture, a design pattern for building loosely-coupled systems through interface-based component registration and lookup. It works with zope.interface to let you define interfaces, register implementations as adapters or utilities, and query them at runtime without direct dependencies between components.

The package provides a global component registry and site manager for organizing components hierarchically, supporting both in-memory and persistent storage. It's used primarily in Zope-based web frameworks and applications that need flexible, runtime-configurable component composition, though it's designed to be independently reusable in any Python project.

Use it for:

  • Building plugin architectures where implementations can be registered and swapped without modifying core code.
  • Implementing adapter patterns to convert between incompatible interfaces at runtime.
  • Creating utility registries for application-wide singleton-like services accessed by interface.
  • Organizing large applications with hierarchical local site managers for component isolation.
  • Enabling ZCML (Zope Configuration Markup Language) declarative component configuration in web frameworks.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Implements the core Zope Component Architecture for defining, registering, and looking up components through interfaces, enabling loose coupling in Python applications.

Yes, if you are working within the Zope ecosystem or building a system that requires interface-based component registration and loose coupling. The package is stable, actively maintained, and has no known vulnerabilities. However, the aging maintenance status (192 days since last release) and unclear license treatment warrant verification before adoption in new projects outside the Zope community.

Install

zope-component on PyPI

pip

pip install zope-component

uv

uv add zope-component

poetry

poetry add zope-component

Installing zope.component

Before you install

Low install friction with a pure-Python wheel. Maintenance status is aging—last release was 192 days ago—but the package remains actively maintained by the Zope Toolkit project and supports current Python versions through 3.14.

License in practice

Licensed under ZPL-2.1 (Zope Public License 2.1), but license treatment is marked unclear in the metadata. Verify the license terms before use in proprietary or restrictively-licensed projects.

Quickstart

pip install zope.component

from zope.interface import Interface, implementer
from zope.component import adapter, provideAdapter, queryAdapter

class IFoo(Interface):
    pass

@implementer(IFoo)
class Foo:
    pass

provideAdapter(Foo, IFoo)
foo = queryAdapter(Foo(), IFoo)

Requires Python 3.10 or later; earlier Python versions are not supported.

Verify before relying

  • Whether the unclear license treatment affects commercial or proprietary use cases.
  • Performance characteristics when managing large numbers of registered components.
  • Compatibility with frameworks beyond Zope 3 and Zope 5 (listed in classifiers).

Package facts

License ZPL-2.1 (unclear)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 3 — zope.event, zope.hookable, zope.interface
Maintenance aging — 192 days since the last release
Last repo commit
First released
Downloads 1,014,317/month — #4,503 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: zope_component-7.1-py3-none-any.whl

Keywords: interface, component, coupling, loose, utility, adapter

Development Status :: 5 - Production/StableFramework :: Zope :: 3Framework :: Zope :: 5Intended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Libraries :: Python Modules

Tags

component registry interface lookupzope component architectureloose coupling dependency injectioninterface-based component registrationadapter and utility registrationcomponent architecture frameworkinterface registry system
component-architectureinterface-registryzope-ecosystem

More Python Modules packages