mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
Misc asyncio improvements from upstream (merge 3.5->3.6)
This commit is contained in:
commit
0035be3fee
8 changed files with 164 additions and 42 deletions
|
|
@ -115,24 +115,16 @@ def _ipaddr_info(host, port, family, type, proto):
|
|||
|
||||
if port is None:
|
||||
port = 0
|
||||
elif isinstance(port, bytes):
|
||||
if port == b'':
|
||||
port = 0
|
||||
else:
|
||||
try:
|
||||
port = int(port)
|
||||
except ValueError:
|
||||
# Might be a service name like b"http".
|
||||
port = socket.getservbyname(port.decode('ascii'))
|
||||
elif isinstance(port, str):
|
||||
if port == '':
|
||||
port = 0
|
||||
else:
|
||||
try:
|
||||
port = int(port)
|
||||
except ValueError:
|
||||
# Might be a service name like "http".
|
||||
port = socket.getservbyname(port)
|
||||
elif isinstance(port, bytes) and port == b'':
|
||||
port = 0
|
||||
elif isinstance(port, str) and port == '':
|
||||
port = 0
|
||||
else:
|
||||
# If port's a service name like "http", don't skip getaddrinfo.
|
||||
try:
|
||||
port = int(port)
|
||||
except (TypeError, ValueError):
|
||||
return None
|
||||
|
||||
if family == socket.AF_UNSPEC:
|
||||
afs = [socket.AF_INET, socket.AF_INET6]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ import subprocess
|
|||
import warnings
|
||||
|
||||
from . import compat
|
||||
from . import futures
|
||||
from . import protocols
|
||||
from . import transports
|
||||
from .coroutines import coroutine
|
||||
|
|
|
|||
|
|
@ -120,8 +120,8 @@ class CoroWrapper:
|
|||
def send(self, value):
|
||||
return self.gen.send(value)
|
||||
|
||||
def throw(self, exc):
|
||||
return self.gen.throw(exc)
|
||||
def throw(self, type, value=None, traceback=None):
|
||||
return self.gen.throw(type, value, traceback)
|
||||
|
||||
def close(self):
|
||||
return self.gen.close()
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import heapq
|
|||
|
||||
from . import compat
|
||||
from . import events
|
||||
from . import futures
|
||||
from . import locks
|
||||
from .coroutines import coroutine
|
||||
|
||||
|
|
|
|||
|
|
@ -594,6 +594,10 @@ def gather(*coros_or_futures, loop=None, return_exceptions=False):
|
|||
"""Return a future aggregating results from the given coroutines
|
||||
or futures.
|
||||
|
||||
Coroutines will be wrapped in a future and scheduled in the event
|
||||
loop. They will not necessarily be scheduled in the same order as
|
||||
passed in.
|
||||
|
||||
All futures must share the same event loop. If all the tasks are
|
||||
done successfully, the returned future's result is the list of
|
||||
results (in the order of the original sequence, not necessarily
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue