requests-toolbelt


Namerequests-toolbelt JSON
Version 0.7.0 PyPI version JSON
home_pagehttps://toolbelt.readthedocs.org
SummaryA utility belt for advanced users of python-requests
upload_time2016-07-22 13:26:03
maintainer
docs_urlNone
authorIan Cordasco, Cory Benfield
requires_python
licenseApache 2.0
keywords
VCS
bugtrack_url https://github.com/sigmavirus24/requests-toolbelt/issues
requirements No requirements were recorded.
Travis-CI No Travis.
Coveralis test coverage No Coveralis.
            requests toolbelt
=================

This is just a collection of utilities for `python-requests`_, but don't 
really belong in ``requests`` proper. The minimum tested requests version is 
``2.1.0``. In reality, the toolbelt should work with ``2.0.1`` as well, but 
some idiosyncracies prevent effective or sane testing on that version.

``pip install requests-toolbelt`` to get started!


multipart/form-data Encoder
---------------------------

The main attraction is a streaming multipart form-data object, ``MultipartEncoder``.
Its API looks like this:

.. code-block:: python

    from requests_toolbelt import MultipartEncoder
    import requests

    m = MultipartEncoder(
        fields={'field0': 'value', 'field1': 'value',
                'field2': ('filename', open('file.py', 'rb'), 'text/plain')}
        )

    r = requests.post('http://httpbin.org/post', data=m,
                      headers={'Content-Type': m.content_type})


You can also use ``multipart/form-data`` encoding for requests that don't
require files:

.. code-block:: python

    from requests_toolbelt import MultipartEncoder
    import requests

    m = MultipartEncoder(fields={'field0': 'value', 'field1': 'value'})

    r = requests.post('http://httpbin.org/post', data=m,
                      headers={'Content-Type': m.content_type})


Or, you can just create the string and examine the data:

.. code-block:: python

    # Assuming `m` is one of the above
    m.to_string()  # Always returns unicode


User-Agent constructor
----------------------

You can easily construct a requests-style ``User-Agent`` string::

    from requests_toolbelt import user_agent

    headers = {
        'User-Agent': user_agent('my_package', '0.0.1')
        }

    r = requests.get('https://api.github.com/users', headers=headers)


SSLAdapter
----------

The ``SSLAdapter`` was originally published on `Cory Benfield's blog`_. 
This adapter allows the user to choose one of the SSL protocols made available 
in Python's ``ssl`` module for outgoing HTTPS connections:

.. code-block:: python

    from requests_toolbelt import SSLAdapter
    import requests
    import ssl

    s = requests.Session()
    s.mount('https://', SSLAdapter(ssl.PROTOCOL_TLSv1))

cookies/ForgetfulCookieJar
--------------------------

The ``ForgetfulCookieJar`` prevents a particular requests session from storing 
cookies:

.. code-block:: python

    from requests_toolbelt.cookies.forgetful import ForgetfulCookieJar

    session = requests.Session()
    session.cookies = ForgetfulCookieJar()

Known Issues
------------

On Python 3.3.0 and 3.3.1, the standard library's ``http`` module will fail
when passing an instance of the ``MultipartEncoder``. This is fixed in later
minor releases of Python 3.3. Please consider upgrading to a later minor
version or Python 3.4. *There is absolutely nothing this library can do to
work around that bug.*

Contributing
------------

Please read the `suggested workflow
<https://toolbelt.readthedocs.org/en/latest/contributing.html>`_ for
contributing to this project.

.. _Cory Benfield's blog: https://lukasa.co.uk/2013/01/Choosing_SSL_Version_In_Requests/
.. _python-requests: https://github.com/kennethreitz/requests


History
=======

0.7.0 -- 2016-07-21
-------------------

More information about this release can be found on the `0.7.0 milestone`_.

New Features
~~~~~~~~~~~~

- Add ``BaseUrlSession`` to allow developers to have a session that has a
  "Base" URL. See the documentation for more details and examples.

- Split the logic of ``stream_response_to_file`` into two separate functions:

  * ``get_download_file_path`` to generate the file name from the Response.

  * ``stream_response_to_file`` which will use ``get_download_file_path`` if
    necessary

Fixed Bugs
~~~~~~~~~~

- Fixed the issue for people using *very* old versions of Requests where they
  would see an ImportError from ``requests_toolbelt._compat`` when trying to
  import ``connection``.


.. _0.7.0 milestone:
    https://github.com/sigmavirus24/requests-toolbelt/milestones/0.7.0

0.6.2 -- 2016-05-10
-------------------

Fixed Bugs
~~~~~~~~~~

- When passing a timeout via Requests, it was not appropriately translated to
  the timeout that the urllib3 code was expecting.

0.6.1 -- 2016-05-05
-------------------

Fixed Bugs
~~~~~~~~~~

- Remove assertion about request URLs in the AppEngineAdapter.

- Prevent pip from installing requests 3.0.0 when that is released until we
  are ready to handle it.

0.6.0 -- 2016-01-27
-------------------

More information about this release can be found on the `0.6.0 milestone`_.

New Features
~~~~~~~~~~~~

- Add ``AppEngineAdapter`` to support developers using Google's AppEngine
  platform with Requests.

- Add ``GuessProxyAuth`` class to support guessing between Basic and Digest
  Authentication for proxies.

Fixed Bugs
~~~~~~~~~~

- Ensure that proxies use the correct TLS version when using the
  ``SSLAdapter``.

- Fix an ``AttributeError`` when using the ``HTTPProxyDigestAuth`` class.

Miscellaneous
~~~~~~~~~~~~~

- Drop testing support for Python 3.2. virtualenv and pip have stopped
  supporting it meaning that it is harder to test for this with our CI
  infrastructure. Moving forward we will make a best-effort attempt to
  support 3.2 but will not test for it.


.. _0.6.0 milestone:
    https://github.com/sigmavirus24/requests-toolbelt/milestones/0.6.0

0.5.1 -- 2015-12-16
-------------------

More information about this release can be found on the `0.5.1 milestone`_.

Fixed Bugs
~~~~~~~~~~

- Now papers over the differences in requests' ``super_len`` function from
  versions prior to 2.9.0 and versions 2.9.0 and later.


.. _0.5.1 milestone:
    https://github.com/sigmavirus24/requests-toolbelt/milestones/0.5.1

0.5.0 -- 2015-11-24
-------------------

More information about this release can be found on the `milestone
<https://github.com/sigmavirus24/requests-toolbelt/issues?utf8=%E2%9C%93&q=is%3Aall+milestone%3A0.5+>`_
for 0.5.0.

New Features
~~~~~~~~~~~~

- The ``tee`` submodule was added to ``requests_toolbelt.downloadutils``. It
  allows you to iterate over the bytes of a response while also writing them
  to a file. The ``tee.tee`` function, expects you to pass an open file
  object, while ``tee.tee_to_file`` will use the provided file name to open
  the file for you.

- Added a new parameter to ``requests_toolbelt.utils.user_agent`` that allows
  the user to specify additional items.

- Added nested form-data helper,
  ``requests_toolbelt.utils.formdata.urlencode``.

- Added the ``ForgetfulCookieJar`` to ``requests_toolbelt.cookies``.

- Added utilities for dumping the information about a request-response cycle
  in ``requests_toolbelt.utils.dump``.

- Implemented the API described in the ``requests_toolbelt.threaded`` module
  docstring, i.e., added ``requests_toolbelt.threaded.map`` as an available
  function.

Fixed Bugs
~~~~~~~~~~

- Now papers over the API differences in versions of requests installed from
  system packages versus versions of requests installed from PyPI.

- Allow string types for ``SourceAddressAdapter``.

0.4.0 -- 2015-04-03
-------------------

For more information about this release, please see `milestone 0.4.0
<https://github.com/sigmavirus24/requests-toolbelt/issues?q=milestone%3A0.4>`_
on the project's page.

New Features
~~~~~~~~~~~~

- A naive implemenation of a thread pool is now included in the toolbelt. See
  the docs in ``docs/threading.rst`` or on `Read The Docs
  <https://toolbelt.readthedocs.org>`_.

- The ``StreamingIterator`` now accepts files (such as ``sys.stdin``) without
  a specific length and will properly stream them.

- The ``MultipartEncoder`` now accepts exactly the same format of fields as
  requests' ``files`` parameter does. In other words, you can now also pass in
  extra headers to add to a part in the body. You can also now specify a
  custom ``Content-Type`` for a part.

- An implementation of HTTP Digest Authentication for Proxies is now included.

- A transport adapter that allows a user to specify a specific Certificate
  Fingerprint is now included in the toolbelt.

- A transport adapter that simplifies how users specify socket options is now
  included.

- A transport adapter that simplifies how users can specify TCP Keep-Alive
  options is now included in the toolbelt.

- Deprecated functions from ``requests.utils`` are now included and
  maintained.

- An authentication tool that allows users to specify how to authenticate to
  several different domains at once is now included.

- A function to save streamed responses to disk by analyzing the
  ``Content-Disposition`` header is now included in the toolbelt.

Fixed Bugs
~~~~~~~~~~

- The ``MultipartEncoder`` will now allow users to upload files larger than
  4GB on 32-bit systems.

- The ``MultipartEncoder`` will now accept empty unicode strings for form
  values.

0.3.1 -- 2014-06-23
-------------------

- Fix the fact that 0.3.0 bundle did not include the ``StreamingIterator``

0.3.0 -- 2014-05-21
-------------------

Bug Fixes
~~~~~~~~~

- Complete rewrite of ``MultipartEncoder`` fixes bug where bytes were lost in
  uploads

New Features
~~~~~~~~~~~~

- ``MultipartDecoder`` to accept ``multipart/form-data`` response bodies and
  parse them into an easy to use object.

- ``SourceAddressAdapter`` to allow users to choose a local address to bind
  connections to.

- ``GuessAuth`` which accepts a username and password and uses the
  ``WWW-Authenticate`` header to determine how to authenticate against a
  server.

- ``MultipartEncoderMonitor`` wraps an instance of the ``MultipartEncoder``
  and keeps track of how many bytes were read and will call the provided
  callback.

- ``StreamingIterator`` will wrap an iterator and stream the upload instead of
  chunk it, provided you also provide the length of the content you wish to
  upload.

0.2.0 -- 2014-02-24
-------------------

- Add ability to tell ``MultipartEncoder`` which encoding to use. By default
  it uses 'utf-8'.

- Fix #10 - allow users to install with pip

- Fix #9 - Fix ``MultipartEncoder#to_string`` so that it properly handles file
  objects as fields

0.1.2 -- 2014-01-19
-------------------

- At some point during development we broke how we handle normal file objects.
  Thanks to @konomae this is now fixed.

0.1.1 -- 2014-01-19
-------------------

- Handle ``io.BytesIO``-like objects better

0.1.0 -- 2014-01-18
-------------------

- Add initial implementation of the streaming ``MultipartEncoder``

- Add initial implementation of the ``user_agent`` function

- Add the ``SSLAdapter``



            

Raw data

            {
    "maintainer": "", 
    "docs_url": null, 
    "requires_python": "", 
    "maintainer_email": "", 
    "cheesecake_code_kwalitee_id": null, 
    "keywords": "", 
    "upload_time": "2016-07-22 13:26:03", 
    "author": "Ian Cordasco, Cory Benfield", 
    "home_page": "https://toolbelt.readthedocs.org", 
    "download_url": "https://pypi.python.org/packages/59/78/1d391d30ebf74079a8e4de6ab66fdca5362903ef2df64496f4697e9bb626/requests-toolbelt-0.7.0.tar.gz", 
    "platform": "", 
    "version": "0.7.0", 
    "cheesecake_documentation_id": null, 
    "description": "requests toolbelt\n=================\n\nThis is just a collection of utilities for `python-requests`_, but don't \nreally belong in ``requests`` proper. The minimum tested requests version is \n``2.1.0``. In reality, the toolbelt should work with ``2.0.1`` as well, but \nsome idiosyncracies prevent effective or sane testing on that version.\n\n``pip install requests-toolbelt`` to get started!\n\n\nmultipart/form-data Encoder\n---------------------------\n\nThe main attraction is a streaming multipart form-data object, ``MultipartEncoder``.\nIts API looks like this:\n\n.. code-block:: python\n\n    from requests_toolbelt import MultipartEncoder\n    import requests\n\n    m = MultipartEncoder(\n        fields={'field0': 'value', 'field1': 'value',\n                'field2': ('filename', open('file.py', 'rb'), 'text/plain')}\n        )\n\n    r = requests.post('http://httpbin.org/post', data=m,\n                      headers={'Content-Type': m.content_type})\n\n\nYou can also use ``multipart/form-data`` encoding for requests that don't\nrequire files:\n\n.. code-block:: python\n\n    from requests_toolbelt import MultipartEncoder\n    import requests\n\n    m = MultipartEncoder(fields={'field0': 'value', 'field1': 'value'})\n\n    r = requests.post('http://httpbin.org/post', data=m,\n                      headers={'Content-Type': m.content_type})\n\n\nOr, you can just create the string and examine the data:\n\n.. code-block:: python\n\n    # Assuming `m` is one of the above\n    m.to_string()  # Always returns unicode\n\n\nUser-Agent constructor\n----------------------\n\nYou can easily construct a requests-style ``User-Agent`` string::\n\n    from requests_toolbelt import user_agent\n\n    headers = {\n        'User-Agent': user_agent('my_package', '0.0.1')\n        }\n\n    r = requests.get('https://api.github.com/users', headers=headers)\n\n\nSSLAdapter\n----------\n\nThe ``SSLAdapter`` was originally published on `Cory Benfield's blog`_. \nThis adapter allows the user to choose one of the SSL protocols made available \nin Python's ``ssl`` module for outgoing HTTPS connections:\n\n.. code-block:: python\n\n    from requests_toolbelt import SSLAdapter\n    import requests\n    import ssl\n\n    s = requests.Session()\n    s.mount('https://', SSLAdapter(ssl.PROTOCOL_TLSv1))\n\ncookies/ForgetfulCookieJar\n--------------------------\n\nThe ``ForgetfulCookieJar`` prevents a particular requests session from storing \ncookies:\n\n.. code-block:: python\n\n    from requests_toolbelt.cookies.forgetful import ForgetfulCookieJar\n\n    session = requests.Session()\n    session.cookies = ForgetfulCookieJar()\n\nKnown Issues\n------------\n\nOn Python 3.3.0 and 3.3.1, the standard library's ``http`` module will fail\nwhen passing an instance of the ``MultipartEncoder``. This is fixed in later\nminor releases of Python 3.3. Please consider upgrading to a later minor\nversion or Python 3.4. *There is absolutely nothing this library can do to\nwork around that bug.*\n\nContributing\n------------\n\nPlease read the `suggested workflow\n<https://toolbelt.readthedocs.org/en/latest/contributing.html>`_ for\ncontributing to this project.\n\n.. _Cory Benfield's blog: https://lukasa.co.uk/2013/01/Choosing_SSL_Version_In_Requests/\n.. _python-requests: https://github.com/kennethreitz/requests\n\n\nHistory\n=======\n\n0.7.0 -- 2016-07-21\n-------------------\n\nMore information about this release can be found on the `0.7.0 milestone`_.\n\nNew Features\n~~~~~~~~~~~~\n\n- Add ``BaseUrlSession`` to allow developers to have a session that has a\n  \"Base\" URL. See the documentation for more details and examples.\n\n- Split the logic of ``stream_response_to_file`` into two separate functions:\n\n  * ``get_download_file_path`` to generate the file name from the Response.\n\n  * ``stream_response_to_file`` which will use ``get_download_file_path`` if\n    necessary\n\nFixed Bugs\n~~~~~~~~~~\n\n- Fixed the issue for people using *very* old versions of Requests where they\n  would see an ImportError from ``requests_toolbelt._compat`` when trying to\n  import ``connection``.\n\n\n.. _0.7.0 milestone:\n    https://github.com/sigmavirus24/requests-toolbelt/milestones/0.7.0\n\n0.6.2 -- 2016-05-10\n-------------------\n\nFixed Bugs\n~~~~~~~~~~\n\n- When passing a timeout via Requests, it was not appropriately translated to\n  the timeout that the urllib3 code was expecting.\n\n0.6.1 -- 2016-05-05\n-------------------\n\nFixed Bugs\n~~~~~~~~~~\n\n- Remove assertion about request URLs in the AppEngineAdapter.\n\n- Prevent pip from installing requests 3.0.0 when that is released until we\n  are ready to handle it.\n\n0.6.0 -- 2016-01-27\n-------------------\n\nMore information about this release can be found on the `0.6.0 milestone`_.\n\nNew Features\n~~~~~~~~~~~~\n\n- Add ``AppEngineAdapter`` to support developers using Google's AppEngine\n  platform with Requests.\n\n- Add ``GuessProxyAuth`` class to support guessing between Basic and Digest\n  Authentication for proxies.\n\nFixed Bugs\n~~~~~~~~~~\n\n- Ensure that proxies use the correct TLS version when using the\n  ``SSLAdapter``.\n\n- Fix an ``AttributeError`` when using the ``HTTPProxyDigestAuth`` class.\n\nMiscellaneous\n~~~~~~~~~~~~~\n\n- Drop testing support for Python 3.2. virtualenv and pip have stopped\n  supporting it meaning that it is harder to test for this with our CI\n  infrastructure. Moving forward we will make a best-effort attempt to\n  support 3.2 but will not test for it.\n\n\n.. _0.6.0 milestone:\n    https://github.com/sigmavirus24/requests-toolbelt/milestones/0.6.0\n\n0.5.1 -- 2015-12-16\n-------------------\n\nMore information about this release can be found on the `0.5.1 milestone`_.\n\nFixed Bugs\n~~~~~~~~~~\n\n- Now papers over the differences in requests' ``super_len`` function from\n  versions prior to 2.9.0 and versions 2.9.0 and later.\n\n\n.. _0.5.1 milestone:\n    https://github.com/sigmavirus24/requests-toolbelt/milestones/0.5.1\n\n0.5.0 -- 2015-11-24\n-------------------\n\nMore information about this release can be found on the `milestone\n<https://github.com/sigmavirus24/requests-toolbelt/issues?utf8=%E2%9C%93&q=is%3Aall+milestone%3A0.5+>`_\nfor 0.5.0.\n\nNew Features\n~~~~~~~~~~~~\n\n- The ``tee`` submodule was added to ``requests_toolbelt.downloadutils``. It\n  allows you to iterate over the bytes of a response while also writing them\n  to a file. The ``tee.tee`` function, expects you to pass an open file\n  object, while ``tee.tee_to_file`` will use the provided file name to open\n  the file for you.\n\n- Added a new parameter to ``requests_toolbelt.utils.user_agent`` that allows\n  the user to specify additional items.\n\n- Added nested form-data helper,\n  ``requests_toolbelt.utils.formdata.urlencode``.\n\n- Added the ``ForgetfulCookieJar`` to ``requests_toolbelt.cookies``.\n\n- Added utilities for dumping the information about a request-response cycle\n  in ``requests_toolbelt.utils.dump``.\n\n- Implemented the API described in the ``requests_toolbelt.threaded`` module\n  docstring, i.e., added ``requests_toolbelt.threaded.map`` as an available\n  function.\n\nFixed Bugs\n~~~~~~~~~~\n\n- Now papers over the API differences in versions of requests installed from\n  system packages versus versions of requests installed from PyPI.\n\n- Allow string types for ``SourceAddressAdapter``.\n\n0.4.0 -- 2015-04-03\n-------------------\n\nFor more information about this release, please see `milestone 0.4.0\n<https://github.com/sigmavirus24/requests-toolbelt/issues?q=milestone%3A0.4>`_\non the project's page.\n\nNew Features\n~~~~~~~~~~~~\n\n- A naive implemenation of a thread pool is now included in the toolbelt. See\n  the docs in ``docs/threading.rst`` or on `Read The Docs\n  <https://toolbelt.readthedocs.org>`_.\n\n- The ``StreamingIterator`` now accepts files (such as ``sys.stdin``) without\n  a specific length and will properly stream them.\n\n- The ``MultipartEncoder`` now accepts exactly the same format of fields as\n  requests' ``files`` parameter does. In other words, you can now also pass in\n  extra headers to add to a part in the body. You can also now specify a\n  custom ``Content-Type`` for a part.\n\n- An implementation of HTTP Digest Authentication for Proxies is now included.\n\n- A transport adapter that allows a user to specify a specific Certificate\n  Fingerprint is now included in the toolbelt.\n\n- A transport adapter that simplifies how users specify socket options is now\n  included.\n\n- A transport adapter that simplifies how users can specify TCP Keep-Alive\n  options is now included in the toolbelt.\n\n- Deprecated functions from ``requests.utils`` are now included and\n  maintained.\n\n- An authentication tool that allows users to specify how to authenticate to\n  several different domains at once is now included.\n\n- A function to save streamed responses to disk by analyzing the\n  ``Content-Disposition`` header is now included in the toolbelt.\n\nFixed Bugs\n~~~~~~~~~~\n\n- The ``MultipartEncoder`` will now allow users to upload files larger than\n  4GB on 32-bit systems.\n\n- The ``MultipartEncoder`` will now accept empty unicode strings for form\n  values.\n\n0.3.1 -- 2014-06-23\n-------------------\n\n- Fix the fact that 0.3.0 bundle did not include the ``StreamingIterator``\n\n0.3.0 -- 2014-05-21\n-------------------\n\nBug Fixes\n~~~~~~~~~\n\n- Complete rewrite of ``MultipartEncoder`` fixes bug where bytes were lost in\n  uploads\n\nNew Features\n~~~~~~~~~~~~\n\n- ``MultipartDecoder`` to accept ``multipart/form-data`` response bodies and\n  parse them into an easy to use object.\n\n- ``SourceAddressAdapter`` to allow users to choose a local address to bind\n  connections to.\n\n- ``GuessAuth`` which accepts a username and password and uses the\n  ``WWW-Authenticate`` header to determine how to authenticate against a\n  server.\n\n- ``MultipartEncoderMonitor`` wraps an instance of the ``MultipartEncoder``\n  and keeps track of how many bytes were read and will call the provided\n  callback.\n\n- ``StreamingIterator`` will wrap an iterator and stream the upload instead of\n  chunk it, provided you also provide the length of the content you wish to\n  upload.\n\n0.2.0 -- 2014-02-24\n-------------------\n\n- Add ability to tell ``MultipartEncoder`` which encoding to use. By default\n  it uses 'utf-8'.\n\n- Fix #10 - allow users to install with pip\n\n- Fix #9 - Fix ``MultipartEncoder#to_string`` so that it properly handles file\n  objects as fields\n\n0.1.2 -- 2014-01-19\n-------------------\n\n- At some point during development we broke how we handle normal file objects.\n  Thanks to @konomae this is now fixed.\n\n0.1.1 -- 2014-01-19\n-------------------\n\n- Handle ``io.BytesIO``-like objects better\n\n0.1.0 -- 2014-01-18\n-------------------\n\n- Add initial implementation of the streaming ``MultipartEncoder``\n\n- Add initial implementation of the ``user_agent`` function\n\n- Add the ``SSLAdapter``\n\n\n", 
    "lcname": "requests-toolbelt", 
    "bugtrack_url": "https://github.com/sigmavirus24/requests-toolbelt/issues", 
    "github": false, 
    "name": "requests-toolbelt", 
    "license": "Apache 2.0", 
    "summary": "A utility belt for advanced users of python-requests", 
    "split_keywords": [], 
    "author_email": "graffatcolmingov@gmail.com", 
    "urls": [
        {
            "has_sig": false, 
            "upload_time": "2016-07-22T13:26:03", 
            "comment_text": "", 
            "python_version": "source", 
            "url": "https://pypi.python.org/packages/59/78/1d391d30ebf74079a8e4de6ab66fdca5362903ef2df64496f4697e9bb626/requests-toolbelt-0.7.0.tar.gz", 
            "md5_digest": "bfe2009905f460f4764c32cfbbf4205f", 
            "downloads": 17010, 
            "filename": "requests-toolbelt-0.7.0.tar.gz", 
            "packagetype": "sdist", 
            "path": "59/78/1d391d30ebf74079a8e4de6ab66fdca5362903ef2df64496f4697e9bb626/requests-toolbelt-0.7.0.tar.gz", 
            "size": 194062
        }, 
        {
            "has_sig": false, 
            "upload_time": "2016-07-22T13:26:01", 
            "comment_text": "", 
            "python_version": "py2.py3", 
            "url": "https://pypi.python.org/packages/57/60/cc85ca45c85585191e70e21687aeaa74ec4e555a1404628ba77b8af7d92e/requests_toolbelt-0.7.0-py2.py3-none-any.whl", 
            "md5_digest": "4f34846168125c651aa2b3bb29b4b7fc", 
            "downloads": 247834, 
            "filename": "requests_toolbelt-0.7.0-py2.py3-none-any.whl", 
            "packagetype": "bdist_wheel", 
            "path": "57/60/cc85ca45c85585191e70e21687aeaa74ec4e555a1404628ba77b8af7d92e/requests_toolbelt-0.7.0-py2.py3-none-any.whl", 
            "size": 52341
        }
    ], 
    "_id": null, 
    "cheesecake_installability_id": null
}