[Checkins] SVN: zope.interface/branches/gary-crazy-experiments/ Make a branch for crazy (backwards incompatible) experiments.
Gary Poster
gary.poster at canonical.com
Mon Aug 3 09:05:52 EDT 2009
Log message for revision 102454:
Make a branch for crazy (backwards incompatible) experiments.
plans/ideas for experimentation:
- change InterfaceClass to InterfaceMetaclass (i.e., use new-style metaclass
hook)
- make it unnecessary to expose commonly used zope.component API, possibly
making implementation that does not rely on zope.component for these tasks
(TOOWTDI sort of thing). On the way, eliminate concept of "named" adapters
and utilities, if possible while keeping desired functionality (see
replacements ideas below).
- change __call__ to accept multiple args (i.e., provide access to
"multiadapter" sorts of behavior)
- provide API on interface to look up adapter(/multiadapter) factory (i.e.,
not called)
- remove "named adapters" (rely on being able to pass arbitrary objects as
arguments, such as strings, and registering for a class, such as str. If
this doesn't work as I want out of the box, change things so it does)
- provide API on interface to get registered utility for interface.
- allow zero or more arbitrary arguments to call for getting a utility
- remove "named utilities" (rely on arbitrary arguments, as in previous
point)
- make APIs for registering adapters/multiadapters, utilities via an
interface
- provide ("multiple dispatch"/"generic function") callable that is
interface-aware. Implement above adapter and utility calls with these.
Make an alternate zope.event hook that uses this multiple dispatch,
rather than abusing interface semantics. Thereby eliminate need for
"subscription adapters"
- store information about what classes implement locally (in a registry), not
modifying the class
- provide new-style Python class decorator for ``implements``
Might not get to all this, but it sounds like fun right now, and I have a
very-first-step to check in.
Changed:
A zope.interface/branches/gary-crazy-experiments/
-=-
More information about the Checkins
mailing list