@@ -4,31 +4,94 @@ import pandas as pd
44
55
66cdef class EventHandler:
7- # TODO: docs
7+ """
8+ Master class for user defined event handlers. `update` method should be considered as abstract.
9+
10+ Attributes
11+ ----------
12+ columns: list
13+ After attaching listener the field contains one-word descriptors of the values in upcoming event the order
14+ coincides
15+ """
816 def __init__ (self ):
917 self .columns = list ()
1018
1119 cdef void __update(self , event) nogil:
1220 with gil:
1321 self .update(event)
1422
15- def update (self , event ):
23+ def update (self , event: list ):
24+ """
25+ Method that is called, when event arrives to related Subscription. Currently (Cython version 0.29.17),
26+ abstract methods are not implemented, so this implementation is sort of stub method.
27+
28+ Parameters
29+ ----------
30+ event: list
31+ List of various data specific to certain event type
32+ """
1633 warn(Warning (' You have not implemented update method in your EventHandler, that is called, when event comes!' ))
1734
1835cdef class DefaultHandler(EventHandler):
19- # TODO: docs
36+ """
37+ The class implements one possible event handler, which is considered as default. This class just stores upcoming
38+ events in deque and has methods to get data as list or as pandas.DataFrame.
39+
40+ Attributes
41+ ----------
42+ data_len: int
43+ The length of internal collections.deque object. Default is 100000.
44+ columns: list
45+ After attaching listener the field contains one-word descriptors of the values in upcoming event the order
46+ coincides.
47+ """
2048 def __init__ (self , data_len: int = 100000 ):
2149 self .__data = deque(maxlen = data_len)
2250
23- def update (self , event ):
51+ def update (self , event: list ):
52+ """
53+ Utility method that is called by underlying Cython level when new event is received. Sores events in
54+ collection.deque.
55+
56+ Parameters
57+ ----------
58+ event: list
59+ List of various data specific to certain event type.
60+ """
2461 self .__data.append(event)
2562
2663 def get_list (self ):
64+ """
65+ Method to get data stored in collections.deque as list.
66+
67+ Returns
68+ -------
69+ data: list
70+ List of received events.
71+ """
2772 data = self .__data.copy()
2873 self .__data.clear()
2974 return list (data)
3075
3176 def get_dataframe (self , keep: bool = True ):
77+ """
78+ Returns received data as pandas.DataFrame object.
79+
80+ Warning
81+ -------
82+ There are no restriction on attaching one event handler to several subscriptions. In this case, method will
83+ work correctly if different subscriptions have same event type. Otherwise error will occur.
84+
85+ Parameters
86+ ----------
87+ keep: bool
88+ When False clears internal collections.deque object after call. Default True.
89+
90+ Returns
91+ -------
92+ df: pandas.DataFrame
93+ Dataframe with received events.
94+ """
3295 df_data = self .__data.copy()
3396 if not keep:
3497 self .__data.clear()
0 commit comments