ACK
On Jun 15, 2011, at 6:45 AM, Mark McLoughlin wrote:
And use it for ImageFactoryAgent.managedObjects
imagefactory/props.py | 25 ++++++++++--------------- imagefactory/qmfagent/ImageFactoryAgent.py | 8 +------- 2 files changed, 11 insertions(+), 22 deletions(-)
diff --git a/imagefactory/props.py b/imagefactory/props.py index cc2616e..b7eadd0 100644 --- a/imagefactory/props.py +++ b/imagefactory/props.py @@ -16,37 +16,32 @@ # also available at http://www.gnu.org/copyleft/gpl.html.
# -# TODO: -# - add support for read-only properties -#
-# -# Return a copy of dict d with the specified keys filtered out -# -def filter_dict(d, keys):
- return dict(map(lambda k: [k, d[k]], filter(lambda k: not k in keys, d.keys())))
-# # Return a property backed by the given attribute # -def prop(attr, doc = None): +def prop(attr, doc = None, ro = None): def fget(self): return getattr(self, attr) def fset(self, value): setattr(self, attr, value) def fdel(self): delattr(self, attr)
- return property(**filter_dict(locals().copy(), ['attr']))
- return property(fget, fset if not ro else None, fdel if not ro else None, doc)
+def ro_prop(attr, doc = None):
- return prop(attr, doc, True)
# # A variant of the above where the property is backed by an # attribute of an attribute # -def subprop(attr, subattr, doc = None): +def subprop(attr, subattr, doc = None, ro = False): def fget(self): return getattr(getattr(self, attr), subattr) def fset(self, value): setattr(getattr(self, attr), subattr, value) def fdel(self): delattr(getattr(self, attr), subattr)
- return property(**filter_dict(locals().copy(), ['attr', 'subattr']))
- return property(fget, fset if not ro else None, fdel if not ro else None, doc)
+def ro_subprop(attr, subattr, doc = None):
- return prop(attr, subattr, doc, True)
diff --git a/imagefactory/qmfagent/ImageFactoryAgent.py b/imagefactory/qmfagent/ImageFactoryAgent.py index 73cd1db..0017cec 100644 --- a/imagefactory/qmfagent/ImageFactoryAgent.py +++ b/imagefactory/qmfagent/ImageFactoryAgent.py @@ -26,13 +26,7 @@ from imagefactory import props class ImageFactoryAgent(AgentHandler):
qmf_object = props.prop("_qmf_object", "The qmf_object property.")
- def managedObjects():
doc = "The managedObjects property."
def fget(self):
return self._managedObjects
return locals()
- managedObjects = property(**managedObjects())
managedObjects = props.ro_prop("_managedObjects", "The managedObjects property.")
def __init__(self, url): self.log = logging.getLogger('%s.%s' % (__name__, self.__class__.__name__))
-- 1.7.4.4