@@ -348,15 +348,29 @@ def disable_connections(self) -> None:
348348 self ._proactor .disable_connections ()
349349
350350
351- class ChiaPolicy (asyncio .DefaultEventLoopPolicy ):
352- def new_event_loop (self ) -> asyncio .AbstractEventLoop :
353- # overriding https://github.com/python/cpython/blob/v3.11.0/Lib/asyncio/events.py#L689-L695
354- if sys .platform == "win32" :
355- loop_factory = ChiaProactorEventLoop
356- else :
357- loop_factory = ChiaSelectorEventLoop
351+ if sys .version_info >= (3 , 14 ):
352+ # DefaultEventLoopPolicy is deprecated in 3.14 and will be removed in 3.16
353+ # Need to inherit from _BaseDefaultEventLoopPolicy instead
354+ class ChiaPolicy (asyncio .events ._BaseDefaultEventLoopPolicy ):
355+ def new_event_loop (self ) -> asyncio .AbstractEventLoop :
356+ # overriding https://github.com/python/cpython/blob/v3.14.0/Lib/asyncio/events.py#L726-L732
357+ if sys .platform == "win32" :
358+ loop_factory = ChiaProactorEventLoop
359+ else :
360+ loop_factory = ChiaSelectorEventLoop
361+
362+ return loop_factory ()
363+ else :
364+
365+ class ChiaPolicy (asyncio .DefaultEventLoopPolicy ):
366+ def new_event_loop (self ) -> asyncio .AbstractEventLoop :
367+ # overriding https://github.com/python/cpython/blob/v3.11.0/Lib/asyncio/events.py#L689-L695
368+ if sys .platform == "win32" :
369+ loop_factory = ChiaProactorEventLoop
370+ else :
371+ loop_factory = ChiaSelectorEventLoop
358372
359- return loop_factory ()
373+ return loop_factory ()
360374
361375
362376def set_chia_policy (connection_limit : int ) -> None :
0 commit comments