Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tutorius/properties.py
diff options
context:
space:
mode:
authorVincent Vinet <vince.vinet@gmail.com>2009-12-04 05:06:49 (GMT)
committer Vincent Vinet <vince.vinet@gmail.com>2009-12-06 04:06:40 (GMT)
commit8acd9095e8f32ee20a6c4cd105d12a133fa9f346 (patch)
treeec24b60f26bde5eaf92c8bb8495deb733ab2cb69 /tutorius/properties.py
parent3550e7a3feac8726e4747457e14932e6010b397b (diff)
Add Event Sources: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')
-rw-r--r--tutorius/properties.py18
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):
TutoriusProperty.__init__(self)
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)