asyncio.async deprecated since 3.4.4 (#143)

* asyncio.async deprecated since 3.4.4
pull/154/head
Cameron 2018-04-22 02:43:45 +10:00 committed by Ilya Etingof
parent 80b09ebb90
commit 2b27b49db7
2 changed files with 18 additions and 4 deletions

View File

@ -31,6 +31,7 @@
# THE POSSIBILITY OF SUCH DAMAGE.
#
import sys
import platform
import traceback
from pysnmp.carrier.asyncio.base import AbstractAsyncioTransport
from pysnmp.carrier import error
@ -77,13 +78,20 @@ class DgramAsyncioProtocol(asyncio.DatagramProtocol, AbstractAsyncioTransport):
debug.logger & debug.flagIO and debug.logger('connection_lost: invoked')
# AbstractAsyncioTransport API
python344 = platform.python_version_tuple() >= ('3', '4', '4')
def openClientMode(self, iface=None):
try:
c = self.loop.create_datagram_endpoint(
lambda: self, local_addr=iface, family=self.sockFamily
)
self._lport = asyncio.async(c)
# Avoid deprecation warning for asyncio.async()
if python344:
self._lport = asyncio.ensure_future(c)
else: # pragma: no cover
self._lport = asyncio.async(c)
except Exception:
raise error.CarrierError(';'.join(traceback.format_exception(*sys.exc_info())))
return self

View File

@ -31,6 +31,7 @@
# THE POSSIBILITY OF SUCH DAMAGE.
#
import sys
import platform
import traceback
from pysnmp.carrier.base import AbstractTransportDispatcher
from pysnmp.error import PySnmpError
@ -40,6 +41,7 @@ try:
except ImportError:
import trollius as asyncio
python344 = platform.python_version_tuple() >= ('3', '4', '4')
class AsyncioDispatcher(AbstractTransportDispatcher):
"""AsyncioDispatcher based on asyncio event loop"""
@ -66,10 +68,14 @@ class AsyncioDispatcher(AbstractTransportDispatcher):
raise
except Exception:
raise PySnmpError(';'.join(traceback.format_exception(*sys.exc_info())))
def registerTransport(self, tDomain, transport):
if self.loopingcall is None and self.getTimerResolution() > 0:
self.loopingcall = asyncio.async(self.handle_timeout())
# Avoid deprecation warning for asyncio.async()
if python344:
self.loopingcall = asyncio.ensure_future(self.handle_timeout())
else: # pragma: no cover
self.loopingcall = asyncio.async(self.handle_timeout())
AbstractTransportDispatcher.registerTransport(
self, tDomain, transport
)