A Python component system
repoze.component is a package that software developers can use to provide configurability and pluggability to their applications. repoze.component provides a generalized indirection mechanism which can be used to provide plugin points to integrators or other developers who may wish to provide alternate implementations of application logic or configuration values.
See docs/index.rst or http://docs.repoze.org/component for more information.
- Make compatible with repoze.component 0.4.
- Add override keys to component and subscriber directives.
- Update directive implementations to match newer repoze.component calling conventions.
- Provide a full argument to the clear method of repoze.component.registry.Registry which clears the registry entirely instead of just clearing unnamed registrations. It defaults to false.
Break apart component type storage into __component_types__ and __inherited_component_types__ attributes.
The __component_types__ attribute has become a sequence of component types stored directly on an instance as a result of provides(ob, 'sometype').
The __inherited_component_types__ attribute is stored on a class as the result of provides(cls, 'sometype') ( or via a class-level call to provides('a', 'b') ).
We then recompose these two separate attributes into a unified set of component types when the resolve method of the registry is called to create an effective list of component types.
repoze.component.directlyprovidedby now returns only the types directly provided by an instance (its __component_types__); previously it would also return the inherited component types (because there was no such thing as an inherited component type). However, repoze.component.providedby continues to return all component types (both direct and inherited, as well as default types).
Add onlyprovides API, which overwrites any existing __component_types__ (or __inherited_component_types__) attribute on the object. It otherwise acts just like provides.
- Initial release.