Skip to content

Commit eee4578

Browse files
committed
Changes for 3.14 related things
1 parent ba17243 commit eee4578

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

chia/seeder/dns_server.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -462,9 +462,9 @@ async def refresh_reliable_peers(self) -> None:
462462
try:
463463
validated_peer = ip_address(peer)
464464
if validated_peer.version == 4:
465-
self.reliable_peers_v4.append(validated_peer)
465+
self.reliable_peers_v4.append(IPv4Address(validated_peer))
466466
elif validated_peer.version == 6:
467-
self.reliable_peers_v6.append(validated_peer)
467+
self.reliable_peers_v6.append(IPv6Address(validated_peer))
468468
except ValueError:
469469
log.error(f"Invalid peer: {peer}")
470470
continue

chia/server/chia_policy.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

362376
def set_chia_policy(connection_limit: int) -> None:

0 commit comments

Comments
 (0)