This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Class to automate delegation decisions based on inheritance graph.

Project Description
Class to automate delegation decisions based on inheritance graph.

Copyright 2004, Robert Dick (dickrp@eecs.umich.edu).

Whenever you need to delegate to something, inherit from delegate and use
self.__<base>.<method()> to access the base. If the delegation was
inappropriate due to reconverging paths in the inheritance graph, the return
value will be None. In the case of reconverging paths, the left-most call in
the method resolution order will be honored. The rest will be nulified. You
can also check to see if the base is the no_delegation object. Delegate to all
your bases if you need everything in the inheritance graph to be visited. As
long as one of a class's (transitive) bases inherits from Delegate, that's
enough.

For examples of use, please see the delegate.py file.

Python doesn't yet automate meta-class instantiation. If you need to inherit
from Delegate and another class that does not have a 'type' metaclass, you'll
need to generate a shared derived metaclass and explicitly use that as your
class's metaclass. For example:

import Delegate, qt

class sip_meta_join(type(Delegate), type(qt.QObject)):
def __init__(*args):
type(Delegate).__init__(*args)
type(qt.QObject).__init__(*args)

class MyClass(Delegate, qt.QObject):
__metaclass__ = sip_meta_join
...

Please see the license file for legal information.
Release History

Release History

This version
History Node

0.1

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting