| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch consists of the following changes:
* Splitting eventlet.greenio into base, py2 and py3 parts
(eventlet.greenio should be exporing the same public objects). This
change is motivated by the size and the number of conditions present
in the current greenio code
* Connected to the first point: implementing almost completely new
GreenPipe callable utilizing parts of old GreenPipe code but dropping
_fileobject/SocketIO inheritance in favour of io.FileIO and making use
of patched _pyio.open function which wraps raw file-like object in
various readers and writers (they take care of the buffering,
encoding/decoding etc.)
* Implementing (from scratch or updating existing versions)
green versions of the following modules:
* http.* (needed by Python 3's urllib)
* selectors (Python >= 3.4, used in subprocess module)
* urllib.* (needed by various tests and we were already exposing green
urllib)
* Modifying some tests to make tests pass, which includes:
* unicode/bytestring issues
* modifying wsgi_test_conntimeout.py to not pass bufsize and close
arguments to ExplodingSocketFile - on Python 3 it inherits from
SocketIO, which doesn't deal with buffering at all as far as I can
see
* Random cleaning up and reorganizing
* Requiring Python 3.x tests to pass for the whole build to pass
Known issues:
* code repetition
* naming inconsistencies
* possibly breaking some external code using private eventlet.greenio attributes
Closes https://github.com/eventlet/eventlet/issues/108
Affects https://github.com/eventlet/eventlet/issues/6 (I'd call it an
experimental support)
Should help for https://github.com/eventlet/eventlet/issues/145
Should help for https://github.com/eventlet/eventlet/issues/157
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
GreenPipe will most likely need to be rewritten for Python 3 but this'll
do for some cases
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
using new multi-dimensional support in 1.8
also update travis file
Closes GH #180
|
| |
|
|
|
|
| |
So that description renders formatted on PyPI.
Closes GH #183
|
| |
|
|
|
|
|
| |
* pip install misspellings
* git ls-files | grep -v locale | misspellings -f -
Closes GH #194
|
| | |
|
| | |
|
| |
|
|
| |
https://github.com/eventlet/eventlet/issues/177
|
| |
|
|
|
|
|
|
|
| |
Closes #178
Some tests will induce behavior that causes the remote end to close
the connection before all of the data has been written. With small
kernel buffer sizes, this can cause an EPIPE error. Since the test
expects an early close, this can be ignored.
|
| | |
|
| |
|
|
| |
The importlib module must use real thread locks, not eventlet.Semaphore.
|
| |
|
|
|
|
|
|
| |
The os.open() function got a new option keyword-only dir_fd parameter in
Python 3.3:
https://docs.python.org/3/library/os.html#os.open
With this change, the open() now accepts the dir_fd parameter.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
If it's determined that a MySQL test should be skipped during setUp(),
but after the parent setUp() has been called, having created and
started a timer, then tearDown() is never called and the timer never
cancelled, but left to expire during some future, unrelated test.
Move call to parent setUp() to end of child setUp() to insure that the
timer is only created and started after it's been determined that the
test shouldn't be skipped (ie create_db()).
|
| |
|
|
|
|
| |
https://github.com/eventlet/eventlet/pull/167
Signal socket bind to 127.0.0.1, '' does not work on Windows
sock.close() to fix ResourceWarning with python3 -Wd
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Some error paths concatenate the output of "type" with a string,
which gives TypeError: cannot concatenate 'str' and 'type' objects,
rather than describing the actual error.
Closes #149 GH
Closes #150 GH
Conflicts:
eventlet/hubs/twistedr.py
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
order in the class constructor so it uses the same order as the actual class
from Python 3.3 and above.
TimeoutExpired from Python 3.3 takes arguments in the following order:
cmd, timeout, output.
See https://github.com/python/cpython/blob/master/Lib/subprocess.py#L388
|
| | |
|
| | |
|
| |
|
|
| |
This restores tests removed in 23beb7d43e
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Closes #161 (GH)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes:
* patching more tests to pass
* removing few unit tests which I think are redundant
* repeating SSL socket reads in a loop to read all data (I suspect this is
related to the fact that writelines is used in the server code there and
Python 3 writelines calls write/send repeatedly while on Python 2 it
calls it once; on one hand there's no guarantee that single recv/read
will return all data sent by the server, on the other hand it's quite
suspicious that the number of required reads seems to be connected to
the number of sends on the other side of the connection)
* working through Python 2/Python 3 threading and thread differences; the
lock code I used is the simplest way I could make the tests pass but
will likely need to be modified in order to match the original
This commit includes 6bcb1dc and closes GH #153
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per HTTP RFC 7231 (http://tools.ietf.org/html/rfc7231#section-6.2)
a client is required to be able to process one or more 100 continue
responses.
-- RFC 7231 --------------------
6.2. Informational 1xx
[snip]
A client MUST be able to parse one or more 1xx responses received
prior to a final response, even if the client does not expect one.
A user agent MAY ignore unexpected 1xx responses.
...
--------------------------------
This patch adds a send_hundred_continue_headers() public API method
to wsgi.input, thus allowing WSGI apps to send more than one 100-
continue response. This does not change existing semantics for the
first 100-continue response sent on read() or readline().
|
| |
|
|
|
|
|
|
|
| |
This patch:
* exposes eventlet.greenthread.kill function so Sphinx generates
its documentation and fixes broken links to :func:`kill`
* adds warning about wsgi.server waiting for active connections to
finish before returning
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Closes #137
Closes #148
|
| | |
|
| | |
|
| | |
|