Standardized versions of various cool things that you can do with
Python's reflection capabilities. This should probably involve
metaclasses somehow, but I don't understand them, so nyah :-)
Imported modules
|
|
import cStringIO
import failure
import reference
import string
import sys
import types
|
Functions
|
|
|
|
_reclass
|
_reclass ( clazz )
|
|
accumulateBases
|
accumulateBases ( classObj, l )
|
|
accumulateClassDict
|
accumulateClassDict (
classObj,
attr,
dict,
baseClass=None,
)
Accumulate all attributes of a given name in a class heirarchy into a single dictionary.
Assuming all class attributes of this name are dictionaries.
If any of the dictionaries being accumulated have the same key, the
one highest in the class heirarchy wins.
(XXX: If "higest" means "closest to the starting class".)
Ex::
| class Soy:
| properties = {"taste": "bland"}
|
| class Plant:
| properties = {"colour": "green"}
|
| class Seaweed(Plant):
| pass
|
| class Lunch(Soy, Seaweed):
| properties = {"vegan": 1 }
|
| dct = {}
|
| accumulateClassDict(Lunch, "properties", dct)
|
| print dct
{"taste": "bland", "colour": "green", "vegan": 1}
|
|
accumulateClassList
|
accumulateClassList (
classObj,
attr,
listObj,
baseClass=None,
)
Accumulate all attributes of a given name in a class heirarchy into a single list.
Assuming all class attributes of this name are lists.
|
|
addMethodNamesToDict
|
addMethodNamesToDict (
classObj,
dict,
prefix,
baseClass=None,
)
addMethodNamesToDict(classObj, dict, prefix, baseClass=None) -> dict
this goes through classObj (and it's bases) and puts method names
starting with prefix in dict with a value of 1. if baseClass isn't
None, methods will only be added if classObj is-a baseClass If the class in question has the methods prefix_methodname and
prefix_methodname2 , the resulting dict should look something like:
{"methodname": 1, "methodname2": 1}.
|
|
allYourBase
|
allYourBase ( classObj )
A list of all bases of a particular class object.
|
|
currentThread
|
currentThread ()
|
|
funcinfo
|
funcinfo ( function )
this is more documentation for myself than useful code.
|
|
getcurrent
|
getcurrent ( clazz )
|
|
isLike
|
isLike ( a, b )
|
|
isSame
|
isSame ( a, b )
|
|
isinst
|
isinst ( inst, clazz )
|
|
macro
|
macro (
name,
filename,
source,
**identifiers,
)
macro(name, source, **identifiers)
This allows you to create macro-like behaviors in python. See
twisted.python.hook for an example of its usage.
|
|
modgrep
|
modgrep ( goal )
|
|
namedModule
|
namedModule ( name )
Return a module give it's name.
|
|
namedObject
|
namedObject ( name )
Get a fully named module-global object.
|
|
objgrep
|
objgrep (
start,
goal,
eq=isLike,
path='',
paths=None,
seen=None,
)
An insanely CPU-intensive process for finding stuff.
|
|
prefixedMethodNames
|
prefixedMethodNames ( classObj, prefix )
A list of method names with a given prefix in a given class.
|
|
qual
|
qual ( clazz )
|
|
refrump
|
refrump ( obj )
|
|
safe_repr
|
safe_repr ( obj )
safe_repr(anything) -> string
Returns a string representation of an object (or a traceback, if that
object's __repr__ raised an exception)
|
Classes
|
|
Accessor |
Extending this class will give you explicit accessor methods; a
|
Promise |
I represent an object not yet available.
|
QueueMethod |
I represent a method that doesn't exist yet.
|
Settable |
A mixin class for syntactic sugar. Lets you assign attributes by
|
Summer |
Extend from this class to get the capability to maintain 'related
|
ThreadAttr | |
|
|