Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
path: root/tutorius/properties.py
diff options
authorVincent Vinet <vince.vinet@gmail.com>2009-12-04 05:06:49 (GMT)
committer Vincent Vinet <vince.vinet@gmail.com>2009-12-06 20:32:16 (GMT)
commitfb422aef7ee6832c85c8fa8a703e491838e74d62 (patch)
tree871950b00610cb90f212cc78a5bca0fa1825aef9 /tutorius/properties.py
parent96e5675b0003d57cb87eb44f470aa2d309d8329b (diff)
Add Event Sources:
- Add source property in Action and EventFilter - Change TPropContainer contructor to accept keyword arguments and set properties that were given - Change every single TPropContainer subclass constructor to accept kwargs and pass them on to super init - Add a "null" option for TStringProperty Use Event Sources: - Make the probe require a source property to install or subscribe - Have ProbeProxy install and subscribe return a prefixed address - Make update, uninstall and unsubsribe extract the prefix from the address - Have the TutorialRunner set a source on actions/events before installing/subscribing instead of setting current activity on ProbeManager Test Event Sources: - Change the tests according to the new constructors and behaviors
Diffstat (limited to 'tutorius/properties.py')
1 files changed, 14 insertions, 4 deletions
diff --git a/tutorius/properties.py b/tutorius/properties.py
index bfdb32c..a0d63bb 100644
--- a/tutorius/properties.py
+++ b/tutorius/properties.py
@@ -49,12 +49,14 @@ class TPropContainer(object):
at the cost of needing a mapping between container instances, and
property values. This is what TPropContainer does.
- def __init__(self):
+ def __init__(self, **kwargs):
Prepares the instance for property value storage. This is done at
object initialization, thus allowing initial mapping of properties
declared on the class. Properties won't work correctly without
this call.
+ Keyword arguments will be evaluated as properties
# create property value storage
object.__setattr__(self, "_props", {})
@@ -74,6 +76,10 @@ class TPropContainer(object):
# to the creator to update its action edition dialog.
self._diff_dict = {}
+ #Set attribute values that were supplied
+ for key, value in kwargs.items():
+ setattr(self, key, value)
def __getattribute__(self, name):
Process the 'fake' read of properties in the appropriate instance
@@ -254,11 +260,15 @@ class TStringProperty(TutoriusProperty):
Represents a string. Can have a maximum size limit.
widget_class = StringPropWidget
- def __init__(self, value, size_limit=None):
+ def __init__(self, value, size_limit=None, null=False):
self.type = "string"
- self.size_limit = MaxSizeConstraint(size_limit)
- self.string_type = StringTypeConstraint()
+ if size_limit:
+ self.size_limit = MaxSizeConstraint(size_limit)
+ if null:
+ self.string_type = TypeConstraint((str, type(None)))
+ else:
+ self.string_type = StringTypeConstraint()
self.default = self.validate(value)