@@ -21,6 +21,28 @@ def log_impression(self, data):
2121 """
2222 pass
2323
24+ class ImpressionListenerBase (ImpressionListener ): # pylint: disable=too-few-public-methods
25+ """
26+ Impression listener safe-execution wrapper.
27+
28+ Wrapper in charge of building all the data that client would require in case
29+ of adding some logic with the treatment and impression results.
30+ """
31+
32+ impression_listener = None
33+
34+ def __init__ (self , impression_listener , sdk_metadata ):
35+ """
36+ Class Constructor.
37+
38+ :param impression_listener: User provided impression listener.
39+ :type impression_listener: ImpressionListener
40+ :param sdk_metadata: SDK version, instance name & IP
41+ :type sdk_metadata: splitio.client.util.SdkMetadata
42+ """
43+ self .impression_listener = impression_listener
44+ self ._metadata = sdk_metadata
45+
2446 def _construct_data (self , impression , attributes ):
2547 data = {}
2648 data ['impression' ] = impression
@@ -29,16 +51,16 @@ def _construct_data(self, impression, attributes):
2951 data ['instance-id' ] = self ._metadata .instance_name
3052 return data
3153
32- class ImpressionListenerWrapper (ImpressionListener ): # pylint: disable=too-few-public-methods
54+ def log_impression (self , impression , attributes = None ):
55+ pass
56+
57+ class ImpressionListenerWrapper (ImpressionListenerBase ): # pylint: disable=too-few-public-methods
3358 """
3459 Impression listener safe-execution wrapper.
3560
3661 Wrapper in charge of building all the data that client would require in case
3762 of adding some logic with the treatment and impression results.
3863 """
39-
40- impression_listener = None
41-
4264 def __init__ (self , impression_listener , sdk_metadata ):
4365 """
4466 Class Constructor.
@@ -48,8 +70,7 @@ def __init__(self, impression_listener, sdk_metadata):
4870 :param sdk_metadata: SDK version, instance name & IP
4971 :type sdk_metadata: splitio.client.util.SdkMetadata
5072 """
51- self .impression_listener = impression_listener
52- self ._metadata = sdk_metadata
73+ ImpressionListenerBase .__init__ (self , impression_listener , sdk_metadata )
5374
5475 def log_impression (self , impression , attributes = None ):
5576 """
@@ -67,16 +88,13 @@ def log_impression(self, impression, attributes=None):
6788 raise ImpressionListenerException ('Error in log_impression user\' s method is throwing exceptions' ) from exc
6889
6990
70- class ImpressionListenerWrapperAsync (ImpressionListener ): # pylint: disable=too-few-public-methods
91+ class ImpressionListenerWrapperAsync (ImpressionListenerBase ): # pylint: disable=too-few-public-methods
7192 """
7293 Impression listener safe-execution wrapper.
7394
7495 Wrapper in charge of building all the data that client would require in case
7596 of adding some logic with the treatment and impression results.
7697 """
77-
78- impression_listener = None
79-
8098 def __init__ (self , impression_listener , sdk_metadata ):
8199 """
82100 Class Constructor.
@@ -86,8 +104,7 @@ def __init__(self, impression_listener, sdk_metadata):
86104 :param sdk_metadata: SDK version, instance name & IP
87105 :type sdk_metadata: splitio.client.util.SdkMetadata
88106 """
89- self .impression_listener = impression_listener
90- self ._metadata = sdk_metadata
107+ ImpressionListenerBase .__init__ (self , impression_listener , sdk_metadata )
91108
92109 async def log_impression (self , impression , attributes = None ):
93110 """
0 commit comments