forked from mirrors/gecko-dev
Note that, as part of adding this packages to the automated vendoring system, some dependencies were automatically added - most notably, dependencies of `taskcluster` that become visible with Python 3.6+. Also, adds `**/.git` to the exclusions because: * `.git` is part of our `.hgignore`, but * `.git` is part of the `aiohttp` `tar.gz` file. Since the file isn't needed for `pip install`-ing `aiohttp`, and since we want `./mach vendor python` to be a no-op when there's no requirement changes, we exclude it. Differential Revision: https://phabricator.services.mozilla.com/D123122
117 lines
3.5 KiB
Text
117 lines
3.5 KiB
Text
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 <http://docs.python-requests.org/>`_ 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 <https://utcc.utoronto.ca/~cks/space/blog/python/AbstractUnixSocketsAndPeercred>`_
|
|
(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 <https://httpie.org/>`_ that allows you to interact with UNIX domain sockets
|
|
|
|
|
|
|