Module: advice

Table of Contents

Module: advice | ./src/protocols/advice.py
--- | ---
Imported modules |
--- | ---
from __future__ import generators from new import instancemethod import sys from types import ClassType, FunctionType, InstanceType from weakref import ref
Functions |
addClassAdvisor classicMRO determineMetaclass getFrameInfo getMRO | isClassAdvisor metamethod minimalBases mkRef supermeta
| addClassAdvisor
    addClassAdvisor ( callback,  depth=2 )
### Set up `callback` to be passed the containing class upon creation This function is designed to be called by an "advising" function executed in a class suite. The "advising" function supplies a callback that it wishes to have executed when the containing class is created. The callback will be given one argument: the newly created containing class. The return value of the callback will be used in place of the class, so the callback should return the input if it does not wish to replace the class. The optional `depth` argument to this function determines the number of frames between this function and the targeted class suite. `depth` defaults to 2, since this skips this function's frame and one calling function frame. If you use this function from a function called directly in the class suite, the default will be correct, otherwise you will need to determine the correct depth yourself. This function works by installing a special class factory function in place of the `__metaclass__` of the containing class. Therefore, only callbacks after the last `__metaclass__` assignment in the containing class will be executed. Be sure that classes using "advising" functions declare any `__metaclass__` first, to ensure all callbacks are run.
Exceptions |
--- | ---
SyntaxError( "Advice must be in the body of a class statement" )
| classicMRO
    classicMRO ( ob,  extendedClassic=False )
| determineMetaclass
    determineMetaclass ( bases,  explicit_mc=None )
Determine metaclass from 1+ bases and optional explicit __metaclass__
Exceptions |
--- | ---
TypeError( "Incompatible metatypes", bases )
| getFrameInfo
    getFrameInfo ( frame )
### Return (kind,module,locals,globals) for a frame `kind` is one of "exec", "module", "class", "function call", or "unknown".
| getMRO
    getMRO ( ob,  extendedClassic=False )
| isClassAdvisor
    isClassAdvisor ( ob )
True if `ob` is a class advisor function
| metamethod
    metamethod ( func )
Wrapper for metaclass method that might be confused w/instance method
| minimalBases
    minimalBases ( classes )
Reduce a list of base classes to its ordered minimum equivalent
| mkRef
    mkRef ( ob,  *args )
### Return either a weakref or a StrongRef for `ob` Note that extra args are forwarded to weakref.ref() if applicable.
| supermeta
    supermeta ( typ,  ob )
Exceptions |
--- | ---
TypeError( "Not sub/supertypes:", starttype, typ )
Classes |
StrongRef | Like a weakref, but for non-weakrefable objects

Table of Contents

This document was automatically generated on Mon Sep 27 00:39:12 2004 by HappyDoc version 2.1