When byte-compiled, base.py in the bgp protocol service generates a large 
number of SyntaxErrors for me.
This patch cleans up the SyntaxErrors, while retaining the original (intended?) 
semantics.

Signed-off-by: Victor J. Orlikowski <[email protected]>

diff --git a/ryu/services/protocols/bgp/operator/views/base.py 
b/ryu/services/protocols/bgp/operator/views/base.py
index 185c880..efe27e0 100644
--- a/ryu/services/protocols/bgp/operator/views/base.py
+++ b/ryu/services/protocols/bgp/operator/views/base.py
@@ -120,9 +120,11 @@ class OperatorDetailView(OperatorAbstractView):
         return f.get(self._obj)
 
     def encode(self):
-        return {field_name: field.get(self._obj)
-                for field_name, field in self._fields.items()
-                if isinstance(field, fields.DataField)}
+        encoded = {}
+        for field_name, field in self._fields.items():
+            if isinstance(field, fields.DataField):
+                encoded[field_name] = field.get(self._obj)
+        return encoded
 
     def rel(self, field_name):
         f = self._fields[field_name]
@@ -150,12 +152,14 @@ class OperatorListView(OperatorAbstractView):
         return RdyToFlattenList([f.get(obj) for obj in self.model])
 
     def encode(self):
-        return RdyToFlattenList(
-            [{field_name: field.get(obj)
-              for field_name, field in self._fields.items()
-              if isinstance(field, fields.DataField)}
-             for obj in self.model]
-        )
+        encoded_list = []
+        for obj in self.model:
+            encoded_item = {}
+            for field_name, field in self._fields.items():
+                if isinstance(field, fields.DataField):
+                    encoded_item[field_name] = field.get(obj)
+            encoded_list.append(encoded_item)
+        return RdyToFlattenList(encoded_list)
 
     @property
     def model(self):
@@ -179,17 +183,20 @@ class OperatorDictView(OperatorAbstractView):
 
     def get_field(self, field_name):
         f = self._fields[field_name]
-        return RdyToFlattenDict(
-            {key: f.get(obj) for key, obj in self.model.items()}
-        )
+        dict_to_flatten = {}
+        for key, obj in self.model.items():
+            dict_to_flatten[key] = f.get(obj)
+        return RdyToFlattenDict(dict_to_flatten)
 
     def encode(self):
-        return RdyToFlattenDict(
-            {key: {field_name: field.get(obj)
-                   for field_name, field in self._fields.items()
-                   if isinstance(field, fields.DataField)}
-             for key, obj in self.model.items()}
-        )
+        outer_dict_to_flatten = {}
+        for key, obj in self.model.items():
+            inner_dict_to_flatten = {}
+            for field_name, field in self._fields.items():
+                if isinstance(field, fields.DataField):
+                    inner_dict_to_flatten[field_name] = field.get(obj)
+            outer_dict_to_flatten[key] = inner_dict_to_flatten
+        return RdyToFlattenDict(outer_dict_to_flatten)
 
     @property
     def model(self):
@@ -280,8 +287,10 @@ def create_dict_view_class(detail_view_class, name):
     encode = None
     if 'encode' in dir(detail_view_class):
         def encode(self):
-            return RdyToFlattenDict({key: detail_view_class(obj).encode()
-                                     for key, obj in self.model.items()})
+            dict_to_flatten = {}
+            for key, obj in self.model.items():
+                dict_to_flatten[key] = detail_view_class(obj).encode()
+            return RdyToFlattenDict(dict_to_flatten)
 
     return _create_collection_view(
         detail_view_class, name, encode, OperatorDictView


Best,
Victor
--
Victor J. Orlikowski <> vjo@[cs.]duke.edu


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to