1
+ from __future__ import annotations
2
+
1
3
from collections import defaultdict
2
4
from dataclasses import dataclass , field
3
5
from enum import Enum
@@ -36,7 +38,7 @@ class EventDetails(ProviderEventDetails):
36
38
@classmethod
37
39
def from_provider_event_details (
38
40
cls , provider_name : str , details : ProviderEventDetails
39
- ) -> " EventDetails" :
41
+ ) -> EventDetails :
40
42
return cls (
41
43
provider_name = provider_name ,
42
44
flags_changed = details .flags_changed ,
@@ -51,14 +53,14 @@ def from_provider_event_details(
51
53
52
54
class EventSupport :
53
55
_global_handlers : Dict [ProviderEvent , List [EventHandler ]]
54
- _client_handlers : Dict [" OpenFeatureClient" , Dict [ProviderEvent , List [EventHandler ]]]
56
+ _client_handlers : Dict [OpenFeatureClient , Dict [ProviderEvent , List [EventHandler ]]]
55
57
56
58
def __init__ (self ) -> None :
57
59
self ._global_handlers = defaultdict (list )
58
60
self ._client_handlers = defaultdict (lambda : defaultdict (list ))
59
61
60
62
def run_client_handlers (
61
- self , client : " OpenFeatureClient" , event : ProviderEvent , details : EventDetails
63
+ self , client : OpenFeatureClient , event : ProviderEvent , details : EventDetails
62
64
) -> None :
63
65
for handler in self ._client_handlers [client ][event ]:
64
66
handler (details )
@@ -68,13 +70,13 @@ def run_global_handlers(self, event: ProviderEvent, details: EventDetails) -> No
68
70
handler (details )
69
71
70
72
def add_client_handler (
71
- self , client : " OpenFeatureClient" , event : ProviderEvent , handler : EventHandler
73
+ self , client : OpenFeatureClient , event : ProviderEvent , handler : EventHandler
72
74
) -> None :
73
75
handlers = self ._client_handlers [client ][event ]
74
76
handlers .append (handler )
75
77
76
78
def remove_client_handler (
77
- self , client : " OpenFeatureClient" , event : ProviderEvent , handler : EventHandler
79
+ self , client : OpenFeatureClient , event : ProviderEvent , handler : EventHandler
78
80
) -> None :
79
81
handlers = self ._client_handlers [client ][event ]
80
82
handlers .remove (handler )
0 commit comments