Package EaseXML :: Module classregistry
[show private | hide private]
[frames | no frames]

Module EaseXML.classregistry

classresolver.py
2 February 2004, Ian Bicking <ianb@colorstudy.com>

Resolves strings to classes, and runs callbacks when referenced classes are created.

Classes are referred to only by name, not by module. So that identically-named classes can coexist, classes are put into individual registries, which are keyed on strings (names). These registries are created on demand.

Use like:

>>> import classregistry
>>> registry = classregistry.registry('MyModules')
>>> def afterMyClassExists(cls):
...    print 'Class finally exists:', cls
>>> registry.addClassCallback('MyClass', afterMyClassExists)
>>> class MyClass:
...    pass
>>> registry.addClass(MyClass)
Class finally exists: MyClass

Classes
ClassRegistry We'll be dealing with classes that reference each other, so class C1 may reference C2 (in a join), while C2 references C1 right back.

Variable Summary
_MasterRegistry MasterRegistry = <EaseXML.classregistry._MasterRegistry ...

Variable Details

MasterRegistry

Type:
_MasterRegistry
Value:
<EaseXML.classregistry._MasterRegistry object at 0xb7e00b4c>           

Generated by Epydoc 2.1 on Sun Dec 12 17:20:24 2004 http://epydoc.sf.net