Metadata-Version: 2.1 Name: requests-unixsocket Version: 0.2.0 Summary: Use requests to talk HTTP via a UNIX domain socket Home-page: https://github.com/msabramo/requests-unixsocket Author: Marc Abramowitz Author-email: marc@marc-abramowitz.com License: Apache-2 Platform: UNKNOWN Classifier: Development Status :: 3 - Alpha Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Information Technology Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Requires-Dist: requests (>=1.1) Requires-Dist: urllib3 (>=1.8) requests-unixsocket =================== .. image:: https://badge.fury.io/py/requests-unixsocket.svg :target: https://badge.fury.io/py/requests-unixsocket :alt: Latest Version on PyPI .. image:: https://travis-ci.org/msabramo/requests-unixsocket.svg?branch=master :target: https://travis-ci.org/msabramo/requests-unixsocket Use `requests `_ to talk HTTP via a UNIX domain socket Usage ----- Explicit ++++++++ You can use it by instantiating a special ``Session`` object: .. code-block:: python 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: .. code-block:: python 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: .. code-block:: python 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.: .. code-block:: python 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 -------- - https://github.com/httpie/httpie-unixsocket - a plugin for `HTTPie `_ that allows you to interact with UNIX domain sockets