From b2c500ac5343ea0656ba3d58176f4528b08aeaae Mon Sep 17 00:00:00 2001
From: Mansard <nmansard@laas.fr>
Date: Wed, 16 Feb 2011 12:20:14 +0100
Subject: [PATCH] Added a protection to avoid erasing signal name when setting
 a new value to the signal.

---
 src/dynamic_graph/entity.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/dynamic_graph/entity.py b/src/dynamic_graph/entity.py
index 6830bea..6c8e828 100644
--- a/src/dynamic_graph/entity.py
+++ b/src/dynamic_graph/entity.py
@@ -145,6 +145,12 @@ class Entity (object) :
         except:
             object.__getattr__(self, name)
 
+    def __setattr__(self, name, value):
+        if name in map(lambda s: s.getName().split(':')[-1],self.signals()):
+            raise NameError(name+" already designates a signal. "
+                            "It is not advised to set a new attribute of the same name.")
+        object.__setattr__(self, name, value)
+
     # --- COMMANDS BINDER -----------------------------------------------------
     # List of all the entity classes from the c++ factory, that have been bound
     # bind the py factory.
-- 
GitLab