Skip to content

Commit ca9ee25

Browse files
committed
✨ Raise error when users forget to call super init
1 parent 9d635ea commit ca9ee25

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

discord/gears/gear.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ async def on_event(event: Ready) -> None:
8787
def __init__(self) -> None:
8888
self._listeners: dict[type[Event], set[EventCallback[Event]]] = defaultdict(set)
8989
self._once_listeners: set[EventCallback[Event]] = set()
90+
self._init_called: bool = True
9091

9192
self._gears: set[Gear] = set()
9293

@@ -126,6 +127,8 @@ def attach_gear(self, gear: "Gear") -> None:
126127
gear:
127128
The gear to attach.
128129
"""
130+
if not getattr(gear, "_init_called", False):
131+
raise RuntimeError("Cannot attach gear before __init__ has been called. Maybe you forgot to call super().__init__()?")
129132
self._gears.add(gear)
130133

131134
def detach_gear(self, gear: "Gear") -> None:

0 commit comments

Comments
 (0)