Set WindowsProactorEventLoopPolicy after importing sk_function in python3.9+

This commit is contained in:
shenchucheng 2023-09-25 00:48:47 +08:00
parent 7da710eaaf
commit bd064816fc

View file

@ -2,19 +2,22 @@ import platform
import sys
import warnings
if sys.implementation.name == "cpython" and platform.system() == "Windows" and sys.version_info[:2] == (3, 9):
if sys.implementation.name == "cpython" and platform.system() == "Windows":
import asyncio
from asyncio.proactor_events import _ProactorBasePipeTransport
from semantic_kernel.orchestration import sk_function as _ # noqa: F401
if sys.version_info[:2] == (3, 9):
from asyncio.proactor_events import _ProactorBasePipeTransport
# https://github.com/python/cpython/pull/92842
def pacth_del(self, _warn=warnings.warn):
if self._sock is not None:
_warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
self._sock.close()
# https://github.com/python/cpython/pull/92842
def pacth_del(self, _warn=warnings.warn):
if self._sock is not None:
_warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
self._sock.close()
_ProactorBasePipeTransport.__del__ = pacth_del
_ProactorBasePipeTransport.__del__ = pacth_del
# caused by https://github.com/microsoft/semantic-kernel/pull/1416
asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy())
if sys.version_info >= (3, 9, 0):
from semantic_kernel.orchestration import sk_function as _ # noqa: F401
# caused by https://github.com/microsoft/semantic-kernel/pull/1416
asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy())