Skip to main content

A HTTP 1.1 client module supporting asynchronous IO, pipelining and `Expect: 100-continue`. Designed for RESTful protocols.

Project description

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.

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/

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.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dugong-3.7.1.tar.bz2 (194.2 kB view details)

Uploaded Source

File details

Details for the file dugong-3.7.1.tar.bz2.

File metadata

  • Download URL: dugong-3.7.1.tar.bz2
  • Upload date:
  • Size: 194.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dugong-3.7.1.tar.bz2
Algorithm Hash digest
SHA256 3bf01631c4ccd1be2b07aa0adcda94b8627457207cd5cd7f8438c0d7fad63509
MD5 f60aefb6c7e2e5866f8ea0a7facc9ad5
BLAKE2b-256 3fdedfb52f1967d57e0f20bbf9548662f6797bcdf5064bde37db68d5da0f7ca5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page