wxoo.typeregistry
index
p:\wxproperties\wxoo\typeregistry.py

wxoo datatype: registered-control mappings
 
This module allows the wxoo system to specify default
editors/viewers for particular property and/or data types,
without needing to clutter the basicproperty package with
the information.  This also makes it possible to eventually
create a "zopeprop", "qtprop", or "tkprop" package that
shares the basicproperty package's functionality.
 
core registry mapping:
{
        dataType: {
                categoryValue:ClassInfo,
        }
}
 
The module also provides the "core" mappings for various
controls :( .
 
XXX Notes:
        This is currently a very awkward and difficult-to-override
        registration system.  Eventually want to move to
        using a file or Win32 registry-based system to allow
        for easy customization of the mappings. Probably use a
        simple GUI interface to drive that system as part of an IDE.
 
        Also need better support for choosing between registered
        controls and more intelligent wrapping for the grid-based
        viewers/editors to prevent large controls getting dropped
        into small grid spaces.

 
Modules
       
basicproperty.basic
basicproperty.common
basictypes.enumeration
basictypes.latebind
basictypes.list_types
basicproperty.propertied

 
Classes
       
Enumeration(Propertied)
ControlCategory
ListOf(rlist)
list_of_ClassInfos
Propertied(object)
ClassInfo
dict(object)
DataTypeRegistry
_Registry

 
class ClassInfo(Propertied)
    Information describing a particular GUI class
 
 
Method resolution order:
ClassInfo
Propertied
object

Data and other attributes defined here:
category = <BasicProperty 'category'>
Role the class plays in editing
classObject = <ClassProperty 'classObject'>
The actual class object to which we point
dataType = <StringProperty 'dataType'>
The string data-type specifier the class can edit
sizeHints = <IntegersProperty 'sizeHints'>
Hinting information for the system to choose a control/wrapper
specifier = <ClassNameProperty 'specifier'>
The class-name to be imported

Methods inherited from Propertied:
__init__(self, *arguments, **namedarguments)
Propertied object initialisation, allows passing in initial values for properties by name
__str__(self)
Get a friendly representation of the object
clone(self, **newValues)
Clone this object, with optional new property values
 
This method calls the __init__ method of your class with
the current property values of your class.  Providing newValues
(a dictionary) overrides property settings with new values.
getCloneProperties(self)
Get properties dictionary (key:value) for use in cloning of the instance
 
By default you get getProperties()' values, with an
attempt made to use the property's name, then the property's
direct "__get__" method.
toString(self, indentation='', alreadyDone=None, indentString=' ')
Get a nicely formatted representation of this object
 
This version assumes that getProperties returns
the list of properties which should be presented,
it recursively calls it's children with greater
indents to get their representations.
 
indentation -- current string indentation level
alreadyDone -- set of object ids which are already finished
 
XXX Needs a far better API, likely a stand-alone class
        without the automatic inheritance problems here :(

Class methods inherited from Propertied:
getProperties(cls) from type
Get the BasicProperty properties for a particular object's class

Data and other attributes inherited from Propertied:
__dict__ = <dictproxy object at 0x01A339D0>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'Propertied' objects>
list of weak references to the object (if defined)

 
class ControlCategory(Enumeration)
    
Method resolution order:
ControlCategory
Enumeration
Propertied
object

Data and other attributes defined here:
set = {u'control': EnumerationChoice( name=u'control',... value='dialog', friendlyName=u'Modal Dialogue')}

Methods inherited from Enumeration:
__cmp__(self, other)
Compare this value to another value
__init__(self, name='', *arguments, **named)
__repr__(self)
Return a code-like representation of this object
choice(self)
Get the choice object associated with this value or None
value(self)
Get the value associated with this choice

Class methods inherited from Enumeration:
allInstances(cls) from type
Return cls instances for each of this class's set
check(cls, value) from type
Check whether value is of cls type, and has the same set
coerce(cls, value) from type
Coerce a value into an Enumeration value
 
Accepted types:
        Enumeration objects
        integers/longs
        ([name,name,name],remainder) tuples
        [name,name,name,value] lists (values are |'d together)
fromValue(cls, value) from type
Create from an integer value
parse(cls, value) from type
Create from a string value
 
Possible formats:
        "coreName"
        "23"
        "friendlyName"

Data and other attributes inherited from Enumeration:
dataType = 'enumeration'
name = <BasicProperty 'name'>
Data-value choice within one of our sets

Methods inherited from Propertied:
__str__(self)
Get a friendly representation of the object
clone(self, **newValues)
Clone this object, with optional new property values
 
This method calls the __init__ method of your class with
the current property values of your class.  Providing newValues
(a dictionary) overrides property settings with new values.
getCloneProperties(self)
Get properties dictionary (key:value) for use in cloning of the instance
 
By default you get getProperties()' values, with an
attempt made to use the property's name, then the property's
direct "__get__" method.
toString(self, indentation='', alreadyDone=None, indentString=' ')
Get a nicely formatted representation of this object
 
This version assumes that getProperties returns
the list of properties which should be presented,
it recursively calls it's children with greater
indents to get their representations.
 
indentation -- current string indentation level
alreadyDone -- set of object ids which are already finished
 
XXX Needs a far better API, likely a stand-alone class
        without the automatic inheritance problems here :(

Class methods inherited from Propertied:
getProperties(cls) from type
Get the BasicProperty properties for a particular object's class

Data and other attributes inherited from Propertied:
__dict__ = <dictproxy object at 0x01A33410>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'Propertied' objects>
list of weak references to the object (if defined)

 
class DataTypeRegistry(dict)
    Registry for an individual data-type
 
 
Method resolution order:
DataTypeRegistry
dict
object

Methods defined here:
append(self, info)
get(self, key, default=None)

Class methods defined here:
check(cls, value) from type
Check whether value is a strictly correct cls value
coerce(cls, value) from type
Coerce a passed value to a DataTypeRegistry
 
Acceptable formats:
        keys: roleString | ControlCategory
        values: class | ClassInfo
        overall:
                { key: value, ... }
                [(key,value),...]

Data and other attributes defined here:
__dict__ = <dictproxy object at 0x01A33790>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'DataTypeRegistry' objects>
list of weak references to the object (if defined)

Methods inherited from dict:
__cmp__(...)
x.__cmp__(y) <==> cmp(x,y)
__contains__(...)
x.__contains__(y) <==> y in x
__delitem__(...)
x.__delitem__(y) <==> del x[y]
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__gt__(...)
x.__gt__(y) <==> x>y
__hash__(...)
x.__hash__() <==> hash(x)
__init__(...)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
__iter__(...)
x.__iter__() <==> iter(x)
__le__(...)
x.__le__(y) <==> x<=y
__len__(...)
x.__len__() <==> len(x)
__lt__(...)
x.__lt__(y) <==> x<y
__ne__(...)
x.__ne__(y) <==> x!=y
__repr__(...)
x.__repr__() <==> repr(x)
__setitem__(...)
x.__setitem__(i, y) <==> x[i]=y
clear(...)
D.clear() -> None.  Remove all items from D.
copy(...)
D.copy() -> a shallow copy of D
has_key(...)
D.has_key(k) -> True if D has a key k, else False
items(...)
D.items() -> list of D's (key, value) pairs, as 2-tuples
iteritems(...)
D.iteritems() -> an iterator over the (key, value) items of D
iterkeys(...)
D.iterkeys() -> an iterator over the keys of D
itervalues(...)
D.itervalues() -> an iterator over the values of D
keys(...)
D.keys() -> list of D's keys
pop(...)
D.pop(k[,d]) -> v, remove specified key and return the corresponding value
If key is not found, d is returned if given, otherwise KeyError is raised
popitem(...)
D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty
setdefault(...)
D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
update(...)
D.update(E) -> None.  Update D from E: for k in E.keys(): D[k] = E[k]
values(...)
D.values() -> list of D's values

Data and other attributes inherited from dict:
__new__ = <built-in method __new__ of type object at 0x1E0B5CC8>
T.__new__(S, ...) -> a new object with type S, a subtype of T
fromkeys = <built-in method fromkeys of type object at 0x018DA588>
dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.
v defaults to None.

 
class _Registry(dict)
    
Method resolution order:
_Registry
dict
object

Methods defined here:
append(self, info)
search(self, dataType, category, all=1)

Data and other attributes defined here:
__dict__ = <dictproxy object at 0x01A33410>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of '_Registry' objects>
list of weak references to the object (if defined)

Methods inherited from dict:
__cmp__(...)
x.__cmp__(y) <==> cmp(x,y)
__contains__(...)
x.__contains__(y) <==> y in x
__delitem__(...)
x.__delitem__(y) <==> del x[y]
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__gt__(...)
x.__gt__(y) <==> x>y
__hash__(...)
x.__hash__() <==> hash(x)
__init__(...)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
__iter__(...)
x.__iter__() <==> iter(x)
__le__(...)
x.__le__(y) <==> x<=y
__len__(...)
x.__len__() <==> len(x)
__lt__(...)
x.__lt__(y) <==> x<y
__ne__(...)
x.__ne__(y) <==> x!=y
__repr__(...)
x.__repr__() <==> repr(x)
__setitem__(...)
x.__setitem__(i, y) <==> x[i]=y
clear(...)
D.clear() -> None.  Remove all items from D.
copy(...)
D.copy() -> a shallow copy of D
get(...)
D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
has_key(...)
D.has_key(k) -> True if D has a key k, else False
items(...)
D.items() -> list of D's (key, value) pairs, as 2-tuples
iteritems(...)
D.iteritems() -> an iterator over the (key, value) items of D
iterkeys(...)
D.iterkeys() -> an iterator over the keys of D
itervalues(...)
D.itervalues() -> an iterator over the values of D
keys(...)
D.keys() -> list of D's keys
pop(...)
D.pop(k[,d]) -> v, remove specified key and return the corresponding value
If key is not found, d is returned if given, otherwise KeyError is raised
popitem(...)
D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty
setdefault(...)
D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
update(...)
D.update(E) -> None.  Update D from E: for k in E.keys(): D[k] = E[k]
values(...)
D.values() -> list of D's values

Data and other attributes inherited from dict:
__new__ = <built-in method __new__ of type object at 0x1E0B5CC8>
T.__new__(S, ...) -> a new object with type S, a subtype of T
fromkeys = <built-in method fromkeys of type object at 0x018DA760>
dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.
v defaults to None.

 
class list_of_ClassInfos(ListOf)
    
Method resolution order:
list_of_ClassInfos
ListOf
rlist
list
object

Data and other attributes defined here:
dataType = 'list.typeregistry_ClassInfos'

Methods inherited from ListOf:
beforeAdd(self, value)
Called before all attempts to add an item

Methods inherited from rlist:
__iadd__ = extend(self, value)
extend with value checking
__init__(self, value=None)
Initialize the restricted list object
__setitem__(self, index, value)
__setitem__ with value checking
__setslice__(self, start, stop, value)
__setslice__ with value checking
append(self, value)
append with value checking
beforeMultipleAdd(self, value)
Called before attempts to add more than one item (beforeAdd has already be called for each item)
extend(self, value)
extend with value checking
insert(self, index, value)
insert with value checking

Data and other attributes inherited from rlist:
__dict__ = <dictproxy object at 0x01A33790>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'rlist' objects>
list of weak references to the object (if defined)

Methods inherited from list:
__add__(...)
x.__add__(y) <==> x+y
__contains__(...)
x.__contains__(y) <==> y in x
__delitem__(...)
x.__delitem__(y) <==> del x[y]
__delslice__(...)
x.__delslice__(i, j) <==> del x[i:j]
 
Use of negative indices is not supported.
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__getslice__(...)
x.__getslice__(i, j) <==> x[i:j]
 
Use of negative indices is not supported.
__gt__(...)
x.__gt__(y) <==> x>y
__hash__(...)
x.__hash__() <==> hash(x)
__imul__(...)
x.__imul__(y) <==> x*=y
__iter__(...)
x.__iter__() <==> iter(x)
__le__(...)
x.__le__(y) <==> x<=y
__len__(...)
x.__len__() <==> len(x)
__lt__(...)
x.__lt__(y) <==> x<y
__mul__(...)
x.__mul__(n) <==> x*n
__ne__(...)
x.__ne__(y) <==> x!=y
__repr__(...)
x.__repr__() <==> repr(x)
__rmul__(...)
x.__rmul__(n) <==> n*x
count(...)
L.count(value) -> integer -- return number of occurrences of value
index(...)
L.index(value, [start, [stop]]) -> integer -- return first index of value
pop(...)
L.pop([index]) -> item -- remove and return item at index (default last)
remove(...)
L.remove(value) -- remove first occurrence of value
reverse(...)
L.reverse() -- reverse *IN PLACE*
sort(...)
L.sort(cmpfunc=None) -- stable sort *IN PLACE*; cmpfunc(x, y) -> -1, 0, 1

Data and other attributes inherited from list:
__new__ = <built-in method __new__ of type object at 0x1E0C3C78>
T.__new__(S, ...) -> a new object with type S, a subtype of T

 
Functions
       
defaultClass(property, client)
Get class property of ClassInfo

 
Data
        TypeRegistry = {u'wx.colour': {'control': [<wxoo.typeregistry.C...o.typeregistry.ClassInfo object at 0x0195F0F0>]}}
_CategorySet = {u'control': EnumerationChoice( name=u'control',... value='dialog', friendlyName=u'Modal Dialogue')}