Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
ac577d7d
Unverified
Kaydet (Commit)
ac577d7d
authored
Kas 28, 2017
tarafından
Victor Stinner
Kaydeden (comit)
GitHub
Kas 28, 2017
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
bpo-32154: Remove asyncio.windows_utils.socketpair (#4609)
üst
4d193bcc
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
21 additions
and
123 deletions
+21
-123
asyncio-eventloop.rst
Doc/library/asyncio-eventloop.rst
+1
-4
asyncio-protocol.rst
Doc/library/asyncio-protocol.rst
+1
-4
asyncio-stream.rst
Doc/library/asyncio-stream.rst
+1
-4
3.7.rst
Doc/whatsnew/3.7.rst
+6
-0
test_utils.py
Lib/asyncio/test_utils.py
+0
-6
windows_utils.py
Lib/asyncio/windows_utils.py
+1
-49
test_events.py
Lib/test/test_asyncio/test_events.py
+6
-6
test_windows_utils.py
Lib/test/test_asyncio/test_windows_utils.py
+0
-50
2017-11-28-15-27-10.bpo-32154.kDox7L.rst
...S.d/next/Library/2017-11-28-15-27-10.bpo-32154.kDox7L.rst
+5
-0
No files found.
Doc/library/asyncio-eventloop.rst
Dosyayı görüntüle @
ac577d7d
...
...
@@ -967,10 +967,7 @@ Wait until a file descriptor received some data using the
:meth:`AbstractEventLoop.add_reader` method and then close the event loop::
import asyncio
try:
from socket import socketpair
except ImportError:
from asyncio.windows_utils import socketpair
from socket import socketpair
# Create a pair of connected file descriptors
rsock, wsock = socketpair()
...
...
Doc/library/asyncio-protocol.rst
Dosyayı görüntüle @
ac577d7d
...
...
@@ -690,10 +690,7 @@ Wait until a socket receives data using the
the event loop ::
import asyncio
try:
from socket import socketpair
except ImportError:
from asyncio.windows_utils import socketpair
from socket import socketpair
# Create a pair of connected sockets
rsock, wsock = socketpair()
...
...
Doc/library/asyncio-stream.rst
Dosyayı görüntüle @
ac577d7d
...
...
@@ -426,10 +426,7 @@ Coroutine waiting until a socket receives data using the
:func:`open_connection` function::
import asyncio
try:
from socket import socketpair
except ImportError:
from asyncio.windows_utils import socketpair
from socket import socketpair
@asyncio.coroutine
def wait_for_data(loop):
...
...
Doc/whatsnew/3.7.rst
Dosyayı görüntüle @
ac577d7d
...
...
@@ -686,6 +686,12 @@ Changes in Python behavior
Changes in the Python API
-------------------------
* The ``asyncio.windows_utils.socketpair()`` function has been
removed: use directly :func:`socket.socketpair` which is available on all
platforms since Python 3.5 (before, it wasn't available on Windows).
``asyncio.windows_utils.socketpair()`` was just an alias to
``socket.socketpair`` on Python 3.5 and newer.
* :mod:`asyncio`: The module doesn't export :mod:`selectors` and
:mod:`_overlapped` modules as ``asyncio.selectors`` and
``asyncio._overlapped``. Replace ``from asyncio import selectors`` with
...
...
Lib/asyncio/test_utils.py
Dosyayı görüntüle @
ac577d7d
...
...
@@ -35,12 +35,6 @@ from .log import logger
from
test
import
support
if
sys
.
platform
==
'win32'
:
# pragma: no cover
from
.windows_utils
import
socketpair
else
:
from
socket
import
socketpair
# pragma: no cover
def
dummy_ssl_context
():
if
ssl
is
None
:
return
None
...
...
Lib/asyncio/windows_utils.py
Dosyayı görüntüle @
ac577d7d
...
...
@@ -17,7 +17,7 @@ import tempfile
import
warnings
__all__
=
[
'
socketpair'
,
'
pipe'
,
'Popen'
,
'PIPE'
,
'PipeHandle'
]
__all__
=
[
'pipe'
,
'Popen'
,
'PIPE'
,
'PipeHandle'
]
# Constants/globals
...
...
@@ -29,54 +29,6 @@ STDOUT = subprocess.STDOUT
_mmap_counter
=
itertools
.
count
()
if
hasattr
(
socket
,
'socketpair'
):
# Since Python 3.5, socket.socketpair() is now also available on Windows
socketpair
=
socket
.
socketpair
else
:
# Replacement for socket.socketpair()
def
socketpair
(
family
=
socket
.
AF_INET
,
type
=
socket
.
SOCK_STREAM
,
proto
=
0
):
"""A socket pair usable as a self-pipe, for Windows.
Origin: https://gist.github.com/4325783, by Geert Jansen.
Public domain.
"""
if
family
==
socket
.
AF_INET
:
host
=
'127.0.0.1'
elif
family
==
socket
.
AF_INET6
:
host
=
'::1'
else
:
raise
ValueError
(
"Only AF_INET and AF_INET6 socket address "
"families are supported"
)
if
type
!=
socket
.
SOCK_STREAM
:
raise
ValueError
(
"Only SOCK_STREAM socket type is supported"
)
if
proto
!=
0
:
raise
ValueError
(
"Only protocol zero is supported"
)
# We create a connected TCP socket. Note the trick with setblocking(0)
# that prevents us from having to create a thread.
lsock
=
socket
.
socket
(
family
,
type
,
proto
)
try
:
lsock
.
bind
((
host
,
0
))
lsock
.
listen
(
1
)
# On IPv6, ignore flow_info and scope_id
addr
,
port
=
lsock
.
getsockname
()[:
2
]
csock
=
socket
.
socket
(
family
,
type
,
proto
)
try
:
csock
.
setblocking
(
False
)
try
:
csock
.
connect
((
addr
,
port
))
except
(
BlockingIOError
,
InterruptedError
):
pass
csock
.
setblocking
(
True
)
ssock
,
_
=
lsock
.
accept
()
except
:
csock
.
close
()
raise
finally
:
lsock
.
close
()
return
(
ssock
,
csock
)
# Replacement for os.pipe() using handles instead of fds
...
...
Lib/test/test_asyncio/test_events.py
Dosyayı görüntüle @
ac577d7d
...
...
@@ -363,7 +363,7 @@ class EventLoopTestsMixin:
self
.
assertNotEqual
(
thread_id
,
threading
.
get_ident
())
def
test_reader_callback
(
self
):
r
,
w
=
test_utils
.
socketpair
()
r
,
w
=
socket
.
socketpair
()
r
.
setblocking
(
False
)
bytes_read
=
bytearray
()
...
...
@@ -391,7 +391,7 @@ class EventLoopTestsMixin:
self
.
assertEqual
(
bytes_read
,
b
'abcdef'
)
def
test_writer_callback
(
self
):
r
,
w
=
test_utils
.
socketpair
()
r
,
w
=
socket
.
socketpair
()
w
.
setblocking
(
False
)
def
writer
(
data
):
...
...
@@ -1568,7 +1568,7 @@ class EventLoopTestsMixin:
@unittest.skipUnless
(
sys
.
platform
!=
'win32'
,
"Don't support pipes for Windows"
)
def
test_write_pipe_disconnect_on_close
(
self
):
rsock
,
wsock
=
test_utils
.
socketpair
()
rsock
,
wsock
=
socket
.
socketpair
()
rsock
.
setblocking
(
False
)
pipeobj
=
io
.
open
(
wsock
.
detach
(),
'wb'
,
1024
)
...
...
@@ -1706,7 +1706,7 @@ class EventLoopTestsMixin:
self
.
assertEqual
(
'CLOSED'
,
write_proto
.
state
)
def
test_prompt_cancellation
(
self
):
r
,
w
=
test_utils
.
socketpair
()
r
,
w
=
socket
.
socketpair
()
r
.
setblocking
(
False
)
f
=
self
.
loop
.
sock_recv
(
r
,
1
)
ov
=
getattr
(
f
,
'ov'
,
None
)
...
...
@@ -1771,7 +1771,7 @@ class EventLoopTestsMixin:
def
test_remove_fds_after_closing
(
self
):
loop
=
self
.
create_event_loop
()
callback
=
lambda
:
None
r
,
w
=
test_utils
.
socketpair
()
r
,
w
=
socket
.
socketpair
()
self
.
addCleanup
(
r
.
close
)
self
.
addCleanup
(
w
.
close
)
loop
.
add_reader
(
r
,
callback
)
...
...
@@ -1783,7 +1783,7 @@ class EventLoopTestsMixin:
def
test_add_fds_after_closing
(
self
):
loop
=
self
.
create_event_loop
()
callback
=
lambda
:
None
r
,
w
=
test_utils
.
socketpair
()
r
,
w
=
socket
.
socketpair
()
self
.
addCleanup
(
r
.
close
)
self
.
addCleanup
(
w
.
close
)
loop
.
close
()
...
...
Lib/test/test_asyncio/test_windows_utils.py
Dosyayı görüntüle @
ac577d7d
...
...
@@ -19,56 +19,6 @@ except ImportError:
from
asyncio
import
test_support
as
support
class
WinsocketpairTests
(
unittest
.
TestCase
):
def
check_winsocketpair
(
self
,
ssock
,
csock
):
csock
.
send
(
b
'xxx'
)
self
.
assertEqual
(
b
'xxx'
,
ssock
.
recv
(
1024
))
csock
.
close
()
ssock
.
close
()
def
test_winsocketpair
(
self
):
ssock
,
csock
=
windows_utils
.
socketpair
()
self
.
check_winsocketpair
(
ssock
,
csock
)
@unittest.skipUnless
(
support
.
IPV6_ENABLED
,
'IPv6 not supported or enabled'
)
def
test_winsocketpair_ipv6
(
self
):
ssock
,
csock
=
windows_utils
.
socketpair
(
family
=
socket
.
AF_INET6
)
self
.
check_winsocketpair
(
ssock
,
csock
)
@unittest.skipIf
(
hasattr
(
socket
,
'socketpair'
),
'socket.socketpair is available'
)
@mock.patch
(
'asyncio.windows_utils.socket'
)
def
test_winsocketpair_exc
(
self
,
m_socket
):
m_socket
.
AF_INET
=
socket
.
AF_INET
m_socket
.
SOCK_STREAM
=
socket
.
SOCK_STREAM
m_socket
.
socket
.
return_value
.
getsockname
.
return_value
=
(
''
,
12345
)
m_socket
.
socket
.
return_value
.
accept
.
return_value
=
object
(),
object
()
m_socket
.
socket
.
return_value
.
connect
.
side_effect
=
OSError
()
self
.
assertRaises
(
OSError
,
windows_utils
.
socketpair
)
def
test_winsocketpair_invalid_args
(
self
):
self
.
assertRaises
(
ValueError
,
windows_utils
.
socketpair
,
family
=
socket
.
AF_UNSPEC
)
self
.
assertRaises
(
ValueError
,
windows_utils
.
socketpair
,
type
=
socket
.
SOCK_DGRAM
)
self
.
assertRaises
(
ValueError
,
windows_utils
.
socketpair
,
proto
=
1
)
@unittest.skipIf
(
hasattr
(
socket
,
'socketpair'
),
'socket.socketpair is available'
)
@mock.patch
(
'asyncio.windows_utils.socket'
)
def
test_winsocketpair_close
(
self
,
m_socket
):
m_socket
.
AF_INET
=
socket
.
AF_INET
m_socket
.
SOCK_STREAM
=
socket
.
SOCK_STREAM
sock
=
mock
.
Mock
()
m_socket
.
socket
.
return_value
=
sock
sock
.
bind
.
side_effect
=
OSError
self
.
assertRaises
(
OSError
,
windows_utils
.
socketpair
)
self
.
assertTrue
(
sock
.
close
.
called
)
class
PipeTests
(
unittest
.
TestCase
):
def
test_pipe_overlapped
(
self
):
...
...
Misc/NEWS.d/next/Library/2017-11-28-15-27-10.bpo-32154.kDox7L.rst
0 → 100644
Dosyayı görüntüle @
ac577d7d
The ``asyncio.windows_utils.socketpair()`` function has been removed: use
directly :func:`socket.socketpair` which is available on all platforms since
Python 3.5 (before, it wasn't available on Windows).
``asyncio.windows_utils.socketpair()`` was just an alias to
``socket.socketpair`` on Python 3.5 and newer.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment