| 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
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
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
|
| |
|
|
|
| |
Closes #137
Closes #148
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes changes to WSGI, websocket, bytes/str/unicode handling,
SSL, backdoor, greenio and tests.
Some comments and conditionals (PY2/PY3) were added for clarity
GH issues:
Closes #106
Closes #111
Closes #118
Closes #141
Incidentally should also close #135 (reopen if didn't)
cc #6
|
| |
|
|
|
|
| |
Closes GH-102
Closes GH-103
Closes GH-104
|
| |
|
|
| |
https://github.com/eventlet/eventlet/issues/101
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- __next__ for iterator interface
- six.next() to get next item
- list(dict.keys())
- popen2.popen4 -> subprocess
- s2b -> b"..." literals
- deprecated assertEquals -> assertEqual
- hub_test test_fork using run_python
- 1L -> 1 long literal
- many PEP-8 fixes
|
| | |
|
| |
|
|
| |
https://github.com/eventlet/eventlet/pull/59
|
| |
|
|
|
|
|
| |
First step to Python 3 compatibility
"2to3 -w -f except ." See [1]
[1] http://docs.python.org/2/library/2to3.html#fixers
|
| |
|
|
|
|
|
|
| |
* try and recover from bad file descriptor error after fork
* remove some stuff in kqueue hub that was added by accident
* skip test_closure test with kqueue hub
kqueue hub cannot detect closures of file descriptors
* simplify _reinit_kqueue()
|
| | |
|
| | |
|
| |
|
|
|
|
| |
to Derk Tegeler
https://bitbucket.org/which_linden/eventlet/issue/136
|
| |
|
|
|
|
| |
kwarg to skip it; Thanks to Peter Portante
https://bitbucket.org/which_linden/eventlet/pull-request/27
|
| |
|
|
|
|
| |
mode; Thanks to Peter pskirko
https://bitbucket.org/which_linden/eventlet/pull-request/15/fix-timeout-bug
|
| |
|
|
| |
https://bitbucket.org/which_linden/eventlet/issue/112
|
| | |
|
| |
|
|
| |
verifies correctness. Thank you!
|
| |
|
|
| |
cracked that nut yet.
|
| | |
|
| |
|
|
| |
GreenPipe(file_name).
|
| |
|
|
|
|
|
|
| |
file.write is not returning number of bytes writen and partial writes were not handled properly.
New implementation is using os module calls which support partial writes.
It also implements missing calls from file object (like seek, tell, truncate, ...).
The later is not very usefull, because regular files never return EAGAIN.
New GreenPipe can be constructed from int, string or file object.
|
| |
|
|
|
|
| |
write larger PIPE_BUF size 4K or 64K on newer systems will be retried in full instead of continued.
I see no way to fix it while using file.write - it does not return written size.
os.write does.
|
| |
|
|
| |
pitfall. Also added defaults to the debug methods so you can call them no-args to reset them.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
strings in 3.x.
tests.s2b function added to convert string to bytes type on 3.x. No-op on 2.x.
/ replaced with // used when integer division was intedned.
Testing for closed file made portable by changing if data=='': to if not data: ('' != b'')
renamed bytes variable, not to clash with 3.x builtin type.
|
| |
|
|
|
|
| |
it was open for reading.
Also write to closed file raises exception immediately - it used to raise exception on flush.
|
| |
|
|
|
|
| |
get_errno added there.
All usage of e[0] replaced with either get_errno(e) or e.args[0] if intnetion was not to extract errno, but first argument
|
| |\ |
|
| | | |
|
| | |\ |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
the basic_usage document a little differently to highlight the convenience functions. Wrote a bunch more serve tests.
|
| |/ /
| |
| |
| |
| |
| | |
work under 3.x python.
Exceptions do not have __getitem__ implemented. e.args[0] still works.
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
errno.EHOSTUNREACH *and* errno.ENETUNREACH
|
| | |
| |
| |
| | |
Clearing exc_info right after squelching exceptions in hubs.
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
GreenSocket.send() wasn't blocking properly or raising a socket.timeout if the
send buffer is full. added a call to trampoline()
added tests for several GreenSocket methods to check for proper socket.timeout
behavior
fixed a couple of other tests with changed behavior due to the send() fix.
|
| |/
|
|
|
| |
- make readuntil() call self._recv() instead of self.fd.read()
- make readline() terminate on '\n' as well as '\r\n'
|
| |
|
|
| |
TimeoutError with Timeout (should be seamless).
|
| | |
|