Model is an abstract class, the base class for Link, Map, and Cell. Cells are leaf nodes in a directed, acyclic, labeled graph, and maps are branching nodes. Links allow for cyclic behavior. Labels can be in standard Python dot-notation for attributes, or in dot-notation strings used as subscripts. The methods __getattr__() and __setattr__() are redefined such that copy.deepcopy and pickle.dump() return an abstracted version having only non-derived subitems (see abstract() method below).
self)
self)
True if the model is derived and False if the model is independent (non-derived).
self, parent=None, name='')
Map to rekey subitems recursively).
self)
Model this method is primitive and intended primarily for testing. It returns the abstract state of the model. This method is overridden specifically in Cell to return the value of the cell, and may be overridden in subclasses of Map to return a composite value.
self, state)
Model this method is primitive and intended primarily for testing. It sets the abstract state of the model and notifies observers. This method is overridden specifically in Cell to set the value of the cell, and may be overridden in subclasses of Map to parse a composite value and set components.
self)
Model this method is primitive and intended primarily for testing. It resets the abstract state of the model to None via set(). This method is overridden specifically in Cell to set the value of the cell to its default value, and in Map to reset all subitems recursively.
self, source)
Model this method is primitive and intended primarily for testing. It "actively" receives the state of the source to itself via set(), which notifies observers. This method is overridden specifically in Cell to set the value of the cell to the source value, and in Map to receive all subitems recursively (notifying observers of subitems recursively as well).
self, source)
set() and without notifying observers (much faster than receive()). It is not overridden in subclasses.
self, observer)
self, observer)
self, message)
update() method (with message as the parameter).
Item.update().
self, message)
Item.update().
Link is a concrete subclass of Model. A link is a node in the abstraction layer tree graph that points to a model (the target) elsewhere in the tree graph. It is intended to function as the target model in every way (having the same methods and values) without merely being a copy of the target.
self, parent=None, name='', target=Model)
Item.__init__()
add() method of the container model. If a model class is given instead, this link becomes a placeholder for the timebeing, and the target instance must be supplied later using the link() method.
self, target)
self)
self, top)
self, key)
self)
Folder.save() method, for example. It returns a string in dot-notation that names and locates the target.
self, source)
Model.receive(), but the target is passively accepted from the source link.
self, observer)
Model.add_observer(), but the observer is added to the target observer list.
refs specifier is inherited from Item and one additional specifier is defined here:
Model
self, name='', item=None, *references, **specifiers)
Item. Thus a map is a composite item to which other items are added either at runtime or at design-time.
self, name)
self)
self, key, keep=all)
self, keep=all)
self)
self)
self, source)
self, source)
self, mode='n')
self)
self)
self, transaction)
self)
self, parent=None, name='', dsn=None, uid=None, protocol=2)
Item subclasses because external references and class specifiers do not make sense here. Nonetheless, keyword arguments act as instance specifiers.
self, dsn, create=False)
self)
self)
self)
self)
self)
def statement (with no self argument). When provided as an instance specifier, the value can be a function defined elsewhere or a lamda statement.
self, source)
self, source)
['True', 'False']
['Yes', 'No']
0.3 is an "unstable" version, meaning that the API is subject to change. Once version 0.4 is released, the public terms and their semantics are guaranteed not to change for any 0.4.n micro-version. Many public terms are not needed by the user-developer, but are made public for testing purposed. Public terms commonly invoked by the user-developer are considered keywords, some of which are abstract to be defined at design-time. Keywords also include properties. Named parameters that are more typically supplied as positional