Skip to main content

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 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 source code is available on GitHub.

Metadata

Release files for dugong 3.8.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dugong 3.8.2
File Size Uploaded
dugong-3.8.2.tar.gz 317.5 kB Details

Release files / dugong-3.8.2.tar.gz

Download URL dugong-3.8.2.tar.gz
Size 317.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f46ab34d74207445f268e3d9537a72e648c2c81a74e40d5d0e32306d24ff81bb
BLAKE2b-256 checksum
How to use checksums
10902110a0201f34bd12ac75e67ddffb67b14f3de2732474e89cbb04123c4b16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.7

Release history Release notifications | RSS feed

This release

3.8.2 This release

1 release file

3.8.1

1 release file

3.8.0

1 release file

3.7.5

1 release file

3.7.4

1 release file

3.7.3

1 release file

3.7.2

1 release file

3.7.1

1 release file

3.7

1 release file

3.6

1 release file

3.5

1 release file

3.4

1 release file

3.3

1 release file

3.2

1 release file

3.1

1 release file

3.0

1 release file

2.2

1 release file

2.1

1 release file

2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page