Skip to main content

Use requests to talk HTTP via a UNIX domain socket

Project description

requests-unixsocket2

Latest Version on PyPI pipeline status coverage report Latest Release

Use requests to talk HTTP via a UNIX domain socket.

Usage

Explicit

You can use it by instantiating a special Session object:

import json

import requests_unixsocket

session = requests_unixsocket.Session()

r = session.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info')
registry_config = r.json()['RegistryConfig']
print(json.dumps(registry_config, indent=4))

Implicit (monkeypatching)

Monkeypatching allows you to use the functionality in this module, while making minimal changes to your code. Note that in the above example we had to instantiate a special requests_unixsocket.Session object and call the get method on that object. Calling requests.get(url) (the easiest way to use requests and probably very common), would not work. But we can make it work by doing monkeypatching.

You can monkeypatch globally:

import requests_unixsocket

requests_unixsocket.monkeypatch()

r = requests.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info')
assert r.status_code == 200

or you can do it temporarily using a context manager:

import requests_unixsocket

with requests_unixsocket.monkeypatch():
    r = requests.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info')
    assert r.status_code == 200

Abstract namespace sockets

To connect to an abstract namespace socket (Linux only), prefix the name with a NULL byte (i.e.: \0) - e.g.:

import requests_unixsocket

session = requests_unixsocket.Session()
res = session.get('http+unix://\0test_socket/get')
print(res.text)

For an example program that illustrates this, see examples/abstract_namespace.py in the git repo. Since abstract namespace sockets are specific to Linux, the program will only work on Linux.

See also

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

requests_unixsocket2-0.4.2b0.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

requests_unixsocket2-0.4.2b0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file requests_unixsocket2-0.4.2b0.tar.gz.

File metadata

File hashes

Hashes for requests_unixsocket2-0.4.2b0.tar.gz
Algorithm Hash digest
SHA256 769df08831eb3a4a8e1c25106409cd42a5a54124b341ea50cdcf7c507517cff2
MD5 5f48f11ad00ae624cc1d858c53f388ea
BLAKE2b-256 6d4b54a0b80b8d8dbe2c1a64826ea515f9ae120a8fccadec65ce659af259b490

See more details on using hashes here.

Provenance

File details

Details for the file requests_unixsocket2-0.4.2b0-py3-none-any.whl.

File metadata

File hashes

Hashes for requests_unixsocket2-0.4.2b0-py3-none-any.whl
Algorithm Hash digest
SHA256 79d750c52ac3fc8499231f24aa1a4efeefd73a98f76b7ed04a52c6b076a9bbd2
MD5 cb58f66bde2747a7c76d9caf5bbfda06
BLAKE2b-256 5e28f4c8f364d88e223d8fa43d60488c63386c79318867a2ba533983e4e69edd

See more details on using hashes here.

Provenance

Supported by

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