1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
.. currentmodule:: dugong
Release 3.3 (2014-08-06)
========================
* It was possible for some methods to raise `BrokenPipeError`, or
`ConnectionResetError` instead of `ConnectionClosed` (especially
under FreeBSD). This has now been fixed.
* It was possible for methods that need to read data from the server
to raise `AssertionError` in some circumstances. This has been
fixed.
Release 3.2 (2014-07-27)
========================
* A `HTTPConnection` instance can now be used as a context manager.
* If a connection is closed unexpectedly while request body data is
being written to the server (i.e., during a call to
`HTTPConnection.write` or `HTTPConnection.co_write`), dugong now
pretends that the body has been sent to the server completely (while
still raising `ConnectionClosed`).
This makes it possible to catch the exception and nevertheless call
`~HTTPConnection.read_response` (or
`~HTTPConnection.co_read_response`) to try to read an error response
that the server may have sent during the upload (if no response has
been received, `ConnectionClosed` will be raised again).
* `is_temp_network_error` now actively tries to distinguish between
permanent and temporary name resolution problems by attempting to
resolve a number of test hostnames.
* `HTTPConnection` has a new `~HTTPConnection.timeout`
attribute. Regular `HTTPConnection` methods (i.e., no coroutines)
will now raise `ConnectionTimedOut` if no data could be send or
received for *timeout* seconds.
Release 3.1 (2014-06-28)
========================
* Fixed a problem with some testcases failing with a BrokenPipeError.
* Fixed a bug that, in some cases, resulted in additional ``\0`` bytes
being appended at the end of the response body, or in an incorrect
`InvalidResponse` exception being raised.
* When trying to continue reading or writing body data after calling
`HTTPConnection.disconnect`, dugong now raises `ConnectionClosed`
instead of `AttributeError`.
Release 3.0, (2014-04-20)
=========================
* Major version bump because of backwards incompatible changes.
* Added `HTTPConnection.read_raw` method.
* The `PollNeeded` class now uses the `!select.POLLIN` and
`!select.POLLOUT` constants instead of `!select.EPOLLIN` and
`!select.EPOLLOUT` to signal what kind of I/O needs to be
performed. This makes dugong compatible with systems lacking epoll
(e.g. FreeBSD).
* The unit tests now check if the host is reachable before trying to
run the example scripts. This avoids bogus test errors if
there is no internet connection or if the remote host is down.
(issue #7).
Release 2.2 (2014-03-14)
========================
* Unittests requiring the `asyncio` module are now skipped if this
module is not available.
Release 2.1 (2014-03-11)
========================
* Fixed a problem where data was not sent to the server if the syscall
was interrupted by a signal.
* It is no longer necessary to read from response body at least once
even if has zero length.
* `PollNeeded.poll` now uses `select.poll` instead of
`select.select`. This avoids a "filedescriptor out of range"
exception that may be raised by `select.select` when the
filedescriptor exceeds some system-specific value.
Release 2.0 (2014-02-23)
========================
* Renamed module from *httpio* to *dugong*.
* The coroutine based API was completely overhauled.
* Introduced `BodyFollowing` class for use with *body* parameter of
`~HTTPConnection.send_request` method.
* `~HTTPConnection.send_request` now returns a `HTTPResponse` instance
instead of a tuple.
* The :meth:`!HTTPConnection.get_current_response` method has been removed.
* The :meth:`!HTTPConnection.fileno` method has been removed.
* Added `CaseInsensitiveDict` class.
* `~HTTPConnection.send_request` now converts the *header* parameter
to a `CaseInsensitiveDict`.
* `~HTTPConnection.send_request` now automatically generates a
``Content-MD5`` header when the body is passed in as a bytes-like
object.
* `HTTPConnection.read` now accepts `None` for the *len_* parameter.
* `HTTPConnection` instances now support a bare-bones `io.IOBase`
interface so that they can be combined with `io.TextIOWrapper` to
read text response bodies.
* The :meth:`!HTTPConnection.close` method was renamed to
`HTTPConnection.disconnect` to prevent confusion related to the
``closed`` attribute (which may be `True` if the connection is
established, but there is no active response body).
* Repeatedly trying to read more response data after the response body
has been read completely no longer results in `StateError` being
raised, but simply returns ``b''``.
Release 1.0 (2013-07-13)
========================
* Initial release.
|