Commit e9438d46 authored by Jason Madden's avatar Jason Madden

Tests for gevent.subprocess run under Python 3.5. Fixes #653.

parent ad97939c
......@@ -9,6 +9,8 @@
- Fix a possible ``ValueError`` from ``gevent.queue.Queue:peek``.
Reported in :issue:`647` by Kevin Chen.
- ``gevent.subprocess`` works under Python 3.5. In general, Python 3.5
has preliminary support. Reported in :issue:`653` by Squeaky.
1.1b4 (Sep 4, 2015)
===================
......
......@@ -21,10 +21,12 @@ for Python 2.5.
Python 3.5 has preliminary support, which means that gevent is
expected to generally run and function with the same level of support
as on Python 3.4, but new features and APIs introduced in 3.5 may not
be properly supported.
be properly supported (e.g., `DevpollSelector`_) and due to the recent
arrival of Python 3.5, the level of testing it has received is lower.
.. _python.org: http://www.python.org/downloads/
.. _PyPy: http://pypy.org
.. _DevpollSelector: https://docs.python.org/3.5/whatsnew/3.5.html#selectors
PyPy Notes
----------
......
......@@ -18,7 +18,7 @@ _version_info = namedtuple('version_info',
version_info = _version_info(1, 1, 0, 'beta', '5')
#: The human-readable PEP 440 version identifier
__version__ = '1.1b5dev0'
__version__ = '1.1b5.dev0'
__all__ = ['get_hub',
......
......@@ -2,7 +2,7 @@
"""gevent friendly implementations of builtin functions."""
from __future__ import absolute_import
import imp
import imp # deprecated since 3.4; issues PendingDeprecationWarning in 3.5
import sys
import gevent.lock
......
......@@ -41,6 +41,7 @@ from gevent.hub import InvalidSwitchError
__all__ = ['Queue', 'PriorityQueue', 'LifoQueue', 'JoinableQueue', 'Channel']
def _safe_remove(deq, item):
# For when the item may have been removed by
# Queue._unlock
......@@ -49,6 +50,7 @@ def _safe_remove(deq, item):
except ValueError:
pass
class Queue(object):
"""
Create a queue object with a given maximum size.
......
......@@ -77,8 +77,22 @@ if sys.version_info[:2] >= (3, 3):
__imports__ += ['DEVNULL',
'getstatusoutput',
'getoutput',
'SubprocessError',
'TimeoutExpired']
if sys.version_info[:2] >= (3, 5):
__imports__ += ['run', # in 3.5, `run` is implemented in terms of `with Popen`
'CompletedProcess',
]
# Removed in Python 3.5:
# https://hg.python.org/cpython/rev/f98b0a5e5ef5
__extra__.remove('MAXFD')
try:
MAXFD = os.sysconf("SC_OPEN_MAX")
except:
MAXFD = 256
for name in __imports__[:]:
try:
value = getattr(__subprocess__, name)
......
......@@ -9,6 +9,7 @@ import functools
__all__ = ['wrap_errors']
class wrap_errors(object):
"""
Helper to make function return an exception, rather than raise it.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment