[Python-modules-commits] [python-dugong] 01/05: Import python-dugong_3.7+dfsg.orig.tar.bz2
Nikolaus Rath
nikratio-guest at moszumanska.debian.org
Thu Jun 15 17:54:42 UTC 2017
This is an automated email from the git hooks/post-receive script.
nikratio-guest pushed a commit to annotated tag archive/debian/3.7.1+dfsg-1
in repository python-dugong.
commit 674ad1f9c1acc452eeb89e478b295c94ee3796ca
Author: Nikolaus Rath <Nikolaus at rath.org>
Date: Mon Jun 20 11:01:26 2016 -0700
Import python-dugong_3.7+dfsg.orig.tar.bz2
[dgit import orig python-dugong_3.7+dfsg.orig.tar.bz2]
---
Changes.rst | 180 ++++
LICENSE | 244 +++++
PKG-INFO | 113 +++
README.rst | 95 ++
dugong.egg-info/PKG-INFO | 113 +++
dugong.egg-info/SOURCES.txt | 78 ++
dugong.egg-info/dependency_links.txt | 1 +
dugong.egg-info/top_level.txt | 1 +
dugong.egg-info/zip-safe | 1 +
dugong/__init__.py | 1749 ++++++++++++++++++++++++++++++++++
examples/extract_links.py | 100 ++
examples/httpcat.py | 72 ++
examples/pipeline1.py | 81 ++
rst/_templates/localtoc.html | 2 +
rst/api.rst | 101 ++
rst/conf.py | 30 +
rst/coroutines.rst | 276 ++++++
rst/index.rst | 23 +
rst/intro.rst | 8 +
rst/issues.rst | 11 +
rst/tutorial.rst | 296 ++++++
rst/whatsnew.rst | 6 +
setup.cfg | 12 +
setup.py | 90 ++
test/ca.crt | 20 +
test/ca.key | 165 ++++
test/conftest.py | 65 ++
test/pytest.ini | 2 +
test/pytest_checklogs.py | 130 +++
test/server.crt | 22 +
test/server.key | 165 ++++
test/test_aio.py | 66 ++
test/test_dugong.py | 1174 +++++++++++++++++++++++
test/test_examples.py | 80 ++
34 files changed, 5572 insertions(+)
diff --git a/Changes.rst b/Changes.rst
new file mode 100644
index 0000000..7005d90
--- /dev/null
+++ b/Changes.rst
@@ -0,0 +1,180 @@
+.. currentmodule:: dugong
+
+Relase 3.7 (2016-06-20)
+=======================
+
+* Dugong now supports server responses that specify just ``Connection:
+ close`` instead of providing the response length or using chunked
+ encoding.
+
+* Dugong now honors the `~ssl.SSLContext.check_hostname` attribute of
+ `~ssl.SSLContext` objects.
+
+Release 3.6 (2016-04-23)
+========================
+
+* Dugong now uses semantic versioning. This means that
+ backwards-incompatible versions (i.e., versions that change the
+ existing API in some way) will be reflected in an increase of the
+ major version number, i.e. the next backwards-incompatible version
+ will have version 4.0.
+
+* Various minor bugfixes.
+
+Release 3.5 (2015-01-31)
+========================
+
+* The `is_temp_network_error` function now knows about more kinds of
+ temporary errors, in particular also about those that do not have a
+ corresponding Python exception (e.g. no route to host).
+
+Release 3.4 (2014-11-29)
+========================
+
+* The :file:`examples/extract_links.py` script is now Python 3.3
+ compatible again.
+
+* Dugong now has proper proxy support for plain HTTP
+ connections. Thanks to Vincent Bernat for the patch.
+
+* Dugong now raises `DNSUnavailable` or `HostnameNotResolvable`
+ exceptions instead of the more generic `socket.gaierror` and
+ `socket.herror` exceptions where possible.
+
+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.
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..49c2cac
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,244 @@
+======================================
+ License for the Dugong Python module
+======================================
+
+This module is copyright (C) Nikolaus Rath <Nikolaus at rath.org>.
+
+It may be distributed under the terms of the Python Software
+Foundation License Version 2, reproduced below.
+
+The included CaseInsensitiveDict implementation is copyright 2013
+Kenneth Reitz and licensed under the Apache License, Version 2.0
+(http://www.apache.org/licenses/LICENSE-2.0, reproduced below.)
+
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+============================================
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+analyze, test, perform and/or display publicly, prepare derivative works,
+distribute, and otherwise use Python alone or in any derivative version,
+provided, however, that PSF's License Agreement and PSF's notice of copyright,
+i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are retained
+in Python alone or in any derivative version prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee. This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+
+Apache License, Version 2.0
+===========================
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..dedc06a
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,113 @@
+Metadata-Version: 1.1
+Name: dugong
+Version: 3.7
+Summary: A HTTP 1.1 client module supporting asynchronous IO, pipelining and `Expect: 100-continue`. Designed for RESTful protocols.
+Home-page: https://bitbucket.org/nikratio/python-dugong
+Author: Nikolaus Rath
+Author-email: Nikolaus at rath.org
+License: PSF
+Description: ==========================
+ The Python Dugong Module
+ ==========================
+
+ .. default-role:: code
+
+ .. start-intro
+
+ The Python Dugong module provides an API for communicating with HTTP
+ 1.1 servers. It is an alternative to the standard library's
+ `http.client` (formerly *httplib*) module. In contrast to
+ `http.client`, Dugong:
+
+ - allows you to send multiple requests right after each other without
+ having to read the responses first.
+
+ - supports waiting for 100-continue before sending the request body.
+
+ - raises an exception instead of silently delivering partial data if the
+ connection is closed before all data has been received.
+
+ - raises one specific exception (`ConnectionClosed`) if the connection
+ has been closed (while `http.client` connection may raise any of
+ `BrokenPipeError`, `~http.client.BadStatusLine`,
+ `ConnectionAbortedError`, `ConnectionResetError`,
+ `~http.client.IncompleteRead` or simply return ``''`` on read)
+
+ - supports non-blocking, asynchronous operation and is compatible with
+ the asyncio_ module.
+
+ - can in most cases distinguish between an unavailable DNS server and
+ an unresolvable hostname.
+
+ - is not compatible with old HTTP 0.9 or 1.0 servers.
+
+ All request and response headers are represented as `str`, but must be
+ encodable in latin1. Request and response body must be `bytes-like
+ objects`_ or binary streams.
+
+ Dugong requires Python 3.3 or newer.
+
+ .. _`bytes-like objects`: http://docs.python.org/3/glossary.html#term-bytes-like-object
+ .. _asyncio: http://docs.python.org/3.4/library/asyncio.html
+
+
+ Installation
+ ============
+
+ As usual: download the tarball from PyPi_, extract it, and run ::
+
+ # python3 setup.py install [--user]
+
+ To run the self-tests, install `py.test`_ with the `pytest-catchlog`_
+ plugin and run ::
+
+ # python3 -m pytest test/
+
+ .. _PyPi: https://pypi.python.org/pypi/dugong/#downloads
+ .. _py.test: http://www.pytest.org/
+ .. _pytest-catchlog: https://github.com/eisensheng/pytest-catchlog
+
+
+ Getting Help
+ ============
+
+ The documentation can be `read online`__ and is also included in the
+ *doc/html* directory of the dugong tarball.
+
+ Please report any bugs on the `BitBucket issue tracker`_. For discussion and
+ questions, please subscribe to the `dugong mailing list`_.
+
+ .. __: http://pythonhosted.org/dugong/
+ .. _dugong mailing list: https://groups.google.com/d/forum/python-dugong
+ .. _`BitBucket issue tracker`: https://bitbucket.org/nikratio/python-dugong/issues
+
+
+ Development Status
+ ==================
+
+ The Dugong API is not yet stable and may change from one release to
+ the other. Starting with version 3.5, Dugong uses semantic
+ versioning. This means changes in the API will be reflected in an
+ increase of the major version number, i.e. the next
+ backwards-incompatible version will be 4.0. Projects designed for
+ e.g. version 3.5 of Dugong are thus recommended to declare a
+ dependency on ``dugong >= 3.5, < 4.0``.
+
+
+ Contributing
+ ============
+
+ The LLFUSE source code is available both on GitHub_ and BitBucket_.
+
+ .. _BitBucket: https://bitbucket.org/nikratio/python-dugong/
+ .. _GitHub: https://github.com/python-dugong/main
+
+Keywords: http
+Platform: UNKNOWN
+Classifier: Programming Language :: Python :: 3
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: Python Software Foundation License
+Classifier: Topic :: Internet :: WWW/HTTP
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Provides: dugong
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..8769189
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,95 @@
+==========================
+ The Python Dugong Module
+==========================
+
+.. default-role:: code
+
+.. start-intro
+
+The Python Dugong module provides an API for communicating with HTTP
+1.1 servers. It is an alternative to the standard library's
+`http.client` (formerly *httplib*) module. In contrast to
+`http.client`, Dugong:
+
+- allows you to send multiple requests right after each other without
+ having to read the responses first.
+
+- supports waiting for 100-continue before sending the request body.
+
+- raises an exception instead of silently delivering partial data if the
+ connection is closed before all data has been received.
+
+- raises one specific exception (`ConnectionClosed`) if the connection
+ has been closed (while `http.client` connection may raise any of
+ `BrokenPipeError`, `~http.client.BadStatusLine`,
+ `ConnectionAbortedError`, `ConnectionResetError`,
+ `~http.client.IncompleteRead` or simply return ``''`` on read)
+
+- supports non-blocking, asynchronous operation and is compatible with
+ the asyncio_ module.
+
+- can in most cases distinguish between an unavailable DNS server and
+ an unresolvable hostname.
+
+- is not compatible with old HTTP 0.9 or 1.0 servers.
+
+All request and response headers are represented as `str`, but must be
+encodable in latin1. Request and response body must be `bytes-like
+objects`_ or binary streams.
+
+Dugong requires Python 3.3 or newer.
+
+.. _`bytes-like objects`: http://docs.python.org/3/glossary.html#term-bytes-like-object
+.. _asyncio: http://docs.python.org/3.4/library/asyncio.html
+
+
+Installation
+============
+
+As usual: download the tarball from PyPi_, extract it, and run ::
+
+ # python3 setup.py install [--user]
+
+To run the self-tests, install `py.test`_ with the `pytest-catchlog`_
+plugin and run ::
+
+ # python3 -m pytest test/
+
+.. _PyPi: https://pypi.python.org/pypi/dugong/#downloads
+.. _py.test: http://www.pytest.org/
+.. _pytest-catchlog: https://github.com/eisensheng/pytest-catchlog
+
+
+Getting Help
+============
+
+The documentation can be `read online`__ and is also included in the
+*doc/html* directory of the dugong tarball.
+
+Please report any bugs on the `BitBucket issue tracker`_. For discussion and
+questions, please subscribe to the `dugong mailing list`_.
+
+.. __: http://pythonhosted.org/dugong/
+.. _dugong mailing list: https://groups.google.com/d/forum/python-dugong
+.. _`BitBucket issue tracker`: https://bitbucket.org/nikratio/python-dugong/issues
+
+
+Development Status
+==================
+
+The Dugong API is not yet stable and may change from one release to
+the other. Starting with version 3.5, Dugong uses semantic
+versioning. This means changes in the API will be reflected in an
+increase of the major version number, i.e. the next
+backwards-incompatible version will be 4.0. Projects designed for
+e.g. version 3.5 of Dugong are thus recommended to declare a
+dependency on ``dugong >= 3.5, < 4.0``.
+
+
+Contributing
+============
+
+The LLFUSE source code is available both on GitHub_ and BitBucket_.
+
+.. _BitBucket: https://bitbucket.org/nikratio/python-dugong/
+.. _GitHub: https://github.com/python-dugong/main
diff --git a/dugong.egg-info/PKG-INFO b/dugong.egg-info/PKG-INFO
new file mode 100644
index 0000000..dedc06a
--- /dev/null
+++ b/dugong.egg-info/PKG-INFO
@@ -0,0 +1,113 @@
+Metadata-Version: 1.1
+Name: dugong
+Version: 3.7
+Summary: A HTTP 1.1 client module supporting asynchronous IO, pipelining and `Expect: 100-continue`. Designed for RESTful protocols.
+Home-page: https://bitbucket.org/nikratio/python-dugong
+Author: Nikolaus Rath
+Author-email: Nikolaus at rath.org
+License: PSF
+Description: ==========================
+ The Python Dugong Module
+ ==========================
+
+ .. default-role:: code
+
+ .. start-intro
+
+ The Python Dugong module provides an API for communicating with HTTP
+ 1.1 servers. It is an alternative to the standard library's
+ `http.client` (formerly *httplib*) module. In contrast to
+ `http.client`, Dugong:
+
+ - allows you to send multiple requests right after each other without
+ having to read the responses first.
+
+ - supports waiting for 100-continue before sending the request body.
+
+ - raises an exception instead of silently delivering partial data if the
+ connection is closed before all data has been received.
+
+ - raises one specific exception (`ConnectionClosed`) if the connection
+ has been closed (while `http.client` connection may raise any of
+ `BrokenPipeError`, `~http.client.BadStatusLine`,
+ `ConnectionAbortedError`, `ConnectionResetError`,
+ `~http.client.IncompleteRead` or simply return ``''`` on read)
+
+ - supports non-blocking, asynchronous operation and is compatible with
+ the asyncio_ module.
+
+ - can in most cases distinguish between an unavailable DNS server and
+ an unresolvable hostname.
+
+ - is not compatible with old HTTP 0.9 or 1.0 servers.
+
+ All request and response headers are represented as `str`, but must be
+ encodable in latin1. Request and response body must be `bytes-like
+ objects`_ or binary streams.
+
+ Dugong requires Python 3.3 or newer.
+
+ .. _`bytes-like objects`: http://docs.python.org/3/glossary.html#term-bytes-like-object
+ .. _asyncio: http://docs.python.org/3.4/library/asyncio.html
+
+
+ Installation
+ ============
+
+ As usual: download the tarball from PyPi_, extract it, and run ::
+
+ # python3 setup.py install [--user]
+
+ To run the self-tests, install `py.test`_ with the `pytest-catchlog`_
+ plugin and run ::
+
+ # python3 -m pytest test/
+
+ .. _PyPi: https://pypi.python.org/pypi/dugong/#downloads
+ .. _py.test: http://www.pytest.org/
+ .. _pytest-catchlog: https://github.com/eisensheng/pytest-catchlog
+
+
+ Getting Help
+ ============
+
+ The documentation can be `read online`__ and is also included in the
+ *doc/html* directory of the dugong tarball.
+
+ Please report any bugs on the `BitBucket issue tracker`_. For discussion and
+ questions, please subscribe to the `dugong mailing list`_.
+
+ .. __: http://pythonhosted.org/dugong/
+ .. _dugong mailing list: https://groups.google.com/d/forum/python-dugong
+ .. _`BitBucket issue tracker`: https://bitbucket.org/nikratio/python-dugong/issues
+
+
+ Development Status
+ ==================
+
+ The Dugong API is not yet stable and may change from one release to
+ the other. Starting with version 3.5, Dugong uses semantic
+ versioning. This means changes in the API will be reflected in an
+ increase of the major version number, i.e. the next
+ backwards-incompatible version will be 4.0. Projects designed for
+ e.g. version 3.5 of Dugong are thus recommended to declare a
+ dependency on ``dugong >= 3.5, < 4.0``.
+
+
+ Contributing
+ ============
+
+ The LLFUSE source code is available both on GitHub_ and BitBucket_.
+
+ .. _BitBucket: https://bitbucket.org/nikratio/python-dugong/
+ .. _GitHub: https://github.com/python-dugong/main
+
+Keywords: http
+Platform: UNKNOWN
+Classifier: Programming Language :: Python :: 3
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: Python Software Foundation License
+Classifier: Topic :: Internet :: WWW/HTTP
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Provides: dugong
diff --git a/dugong.egg-info/SOURCES.txt b/dugong.egg-info/SOURCES.txt
new file mode 100644
index 0000000..b85a6a4
--- /dev/null
+++ b/dugong.egg-info/SOURCES.txt
@@ -0,0 +1,78 @@
+Changes.rst
+LICENSE
+README.rst
+setup.cfg
+setup.py
+./dugong/__init__.py
+doc/html/.buildinfo
+doc/html/api.html
+doc/html/coroutine.html
+doc/html/coroutines.html
+doc/html/expect100.html
+doc/html/genindex.html
+doc/html/index.html
+doc/html/intro.html
+doc/html/issues.html
+doc/html/objects.inv
+doc/html/search.html
+doc/html/searchindex.js
+doc/html/tutorial.html
+doc/html/whatsnew.html
+doc/html/_modules/dugong.html
+doc/html/_modules/index.html
+doc/html/_sources/api.txt
+doc/html/_sources/coroutine.txt
+doc/html/_sources/coroutines.txt
+doc/html/_sources/expect100.txt
+doc/html/_sources/index.txt
+doc/html/_sources/intro.txt
+doc/html/_sources/issues.txt
+doc/html/_sources/tutorial.txt
+doc/html/_sources/whatsnew.txt
+doc/html/_static/ajax-loader.gif
+doc/html/_static/basic.css
+doc/html/_static/comment-bright.png
+doc/html/_static/comment-close.png
+doc/html/_static/comment.png
+doc/html/_static/default.css
+doc/html/_static/doctools.js
+doc/html/_static/down-pressed.png
+doc/html/_static/down.png
+doc/html/_static/file.png
+doc/html/_static/jquery.js
+doc/html/_static/minus.png
+doc/html/_static/plus.png
+doc/html/_static/pygments.css
+doc/html/_static/searchtools.js
+doc/html/_static/sidebar.js
+doc/html/_static/underscore.js
+doc/html/_static/up-pressed.png
+doc/html/_static/up.png
+doc/html/_static/websupport.js
+dugong.egg-info/PKG-INFO
+dugong.egg-info/SOURCES.txt
+dugong.egg-info/dependency_links.txt
+dugong.egg-info/top_level.txt
+dugong.egg-info/zip-safe
+examples/extract_links.py
+examples/httpcat.py
+examples/pipeline1.py
+rst/api.rst
+rst/conf.py
+rst/coroutines.rst
+rst/index.rst
+rst/intro.rst
+rst/issues.rst
+rst/tutorial.rst
+rst/whatsnew.rst
+rst/_templates/localtoc.html
+test/ca.crt
+test/ca.key
+test/conftest.py
+test/pytest.ini
+test/pytest_checklogs.py
+test/server.crt
+test/server.key
+test/test_aio.py
+test/test_dugong.py
+test/test_examples.py
\ No newline at end of file
diff --git a/dugong.egg-info/dependency_links.txt b/dugong.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/dugong.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/dugong.egg-info/top_level.txt b/dugong.egg-info/top_level.txt
new file mode 100644
index 0000000..21bc003
--- /dev/null
+++ b/dugong.egg-info/top_level.txt
@@ -0,0 +1 @@
+dugong
diff --git a/dugong.egg-info/zip-safe b/dugong.egg-info/zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/dugong.egg-info/zip-safe
@@ -0,0 +1 @@
+
diff --git a/dugong/__init__.py b/dugong/__init__.py
new file mode 100644
index 0000000..92e0a52
--- /dev/null
+++ b/dugong/__init__.py
@@ -0,0 +1,1749 @@
+'''
+dugong.py - Python HTTP Client Module
+
+Copyright © 2014 Nikolaus Rath <Nikolaus.org>
+
+This module may be distributed under the terms of the Python Software Foundation
+License Version 2.
+
+The CaseInsensitiveDict implementation is copyright 2013 Kenneth Reitz and
+licensed under the Apache License, Version 2.0
+(http://www.apache.org/licenses/LICENSE-2.0)
+'''
+
+import socket
+import logging
+import errno
+import ssl
+import hashlib
+from inspect import getdoc
+import textwrap
+from base64 import b64encode
+from collections import deque
+from collections.abc import MutableMapping, Mapping
+import email
+import email.policy
+from http.client import (HTTPS_PORT, HTTP_PORT, NO_CONTENT, NOT_MODIFIED)
+from select import POLLIN, POLLOUT
+import select
+import sys
+
+try:
+ import asyncio
+except ImportError:
+ asyncio = None
+
+# Enums are only available in 3.4 and newer
+try:
+ from enum import Enum
+except ImportError:
+ Enum = object
+
+__version__ = '3.7'
+
+log = logging.getLogger(__name__)
+
+#: Internal buffer size
+BUFFER_SIZE = 64*1024
+
+#: Maximal length of HTTP status line. If the server sends a line longer than
+#: this value, `InvalidResponse` will be raised.
+MAX_LINE_SIZE = BUFFER_SIZE-1
+
+#: Maximal length of a response header (i.e., for all header
+#: lines together). If the server sends a header segment longer than
+#: this value, `InvalidResponse` will be raised.
+MAX_HEADER_SIZE = BUFFER_SIZE-1
+
+class Symbol:
+ '''
+ A symbol instance represents a specific state. Its value is
+ not relevant, as it should only ever be assigned to or compared
+ with other variables.
+ '''
+ __slots__ = [ 'name' ]
+
+ def __init__(self, name):
+ self.name = name
+
+ def __str__(self):
... 4821 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-dugong.git
More information about the Python-modules-commits
mailing list