Skip to content

Commit e181870

Browse files
authored
rtc.EventEmitter contravariance (#304)
1 parent 6ea5452 commit e181870

File tree

4 files changed

+16
-12
lines changed

4 files changed

+16
-12
lines changed

livekit-api/livekit/api/access_token.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,13 @@ def to_jwt(self) -> str:
154154
{
155155
"sub": self.identity,
156156
"iss": self.api_key,
157-
"nbf": calendar.timegm(datetime.datetime.now(datetime.timezone.utc).utctimetuple()),
157+
"nbf": calendar.timegm(
158+
datetime.datetime.now(datetime.timezone.utc).utctimetuple()
159+
),
158160
"exp": calendar.timegm(
159-
(datetime.datetime.now(datetime.timezone.utc) + self.ttl).utctimetuple()
161+
(
162+
datetime.datetime.now(datetime.timezone.utc) + self.ttl
163+
).utctimetuple()
160164
),
161165
}
162166
)

livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

livekit-rtc/livekit/rtc/_proto/handle_pb2.pyi

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

livekit-rtc/livekit/rtc/event_emitter.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33

44
from .log import logger
55

6-
T = TypeVar("T")
6+
T_contra = TypeVar("T_contra", contravariant=True)
77

88

9-
class EventEmitter(Generic[T]):
9+
class EventEmitter(Generic[T_contra]):
1010
def __init__(self) -> None:
1111
"""
1212
Initialize a new instance of EventEmitter.
1313
"""
14-
self._events: Dict[T, Set[Callable]] = dict()
14+
self._events: Dict[T_contra, Set[Callable]] = dict()
1515

16-
def emit(self, event: T, *args) -> None:
16+
def emit(self, event: T_contra, *args) -> None:
1717
"""
1818
Trigger all callbacks associated with the given event.
1919
@@ -60,7 +60,7 @@ def greet(name):
6060
except Exception:
6161
logger.exception(f"failed to emit event {event}")
6262

63-
def once(self, event: T, callback: Optional[Callable] = None) -> Callable:
63+
def once(self, event: T_contra, callback: Optional[Callable] = None) -> Callable:
6464
"""
6565
Register a callback to be called only once when the event is emitted.
6666
@@ -116,7 +116,7 @@ def decorator(callback: Callable) -> Callable:
116116

117117
return decorator
118118

119-
def on(self, event: T, callback: Optional[Callable] = None) -> Callable:
119+
def on(self, event: T_contra, callback: Optional[Callable] = None) -> Callable:
120120
"""
121121
Register a callback to be called whenever the event is emitted.
122122
@@ -168,7 +168,7 @@ def decorator(callback: Callable) -> Callable:
168168

169169
return decorator
170170

171-
def off(self, event: T, callback: Callable) -> None:
171+
def off(self, event: T_contra, callback: Callable) -> None:
172172
"""
173173
Unregister a callback from an event.
174174

0 commit comments

Comments
 (0)