@@ -72,20 +72,28 @@ class EventHelper(object):
7272 }
7373
7474 @staticmethod
75- # event is a python dictionary, the result of from_any() in GenericEventConsumer.
7675 def format_event (event ):
77- for k in event :
78- if type (k ) == dict :
79- EventHelper .format_event (k )
80- elif 'sourceIOR' == k :
81- event [k ] = 'OBJECT_REFERENCE'
82- elif k in EventHelper .ENUM_MAP :
83- v = event [k ]
84- event [k ] = {
85- 'value' : str (v ),
86- 'enumerations' : EventHelper .ENUM_MAP [k ]
76+ formattedEvent = {}
77+
78+ if type (event ) == dict :
79+ for k , v in event .iteritems ():
80+ if k in EventHelper .ENUM_MAP :
81+ formattedEvent [k ] = {
82+ 'value' : str (v ),
83+ 'enumerations' : EventHelper .ENUM_MAP [k ]
8784 }
88- return event
85+ elif type (v ) == list :
86+ formattedEvent [k ] = []
87+ for item in v :
88+ formattedEvent [k ].append (EventHelper .format_event (item ))
89+ else :
90+ formattedEvent [k ] = EventHelper .format_event (v )
91+ elif str (type (event )) == "<type 'instance'>" :
92+ formattedEvent = str (event )
93+ else :
94+ formattedEvent = event
95+
96+ return formattedEvent
8997
9098
9199class TopicConsumer (GenericEventConsumer ):
@@ -110,8 +118,13 @@ def attempt(callback, msg):
110118 except WebSocketClosedError as e :
111119 return False
112120
113- message = EventHelper .format_event (event )
114- self .__listeners [:] = [cb for cb in self .__listeners if attempt (cb , message )]
121+ if type (event ) == list :
122+ for k in event :
123+ self .deliver (k , typecode )
124+ else :
125+ message = EventHelper .format_event (event )
126+ self .__listeners [:] = [cb for cb in self .__listeners if attempt (cb , message )]
127+
115128
116129 def add_listener (self , callbackFn ):
117130 if callbackFn not in self .__listeners :
0 commit comments