Updated DB_Helper by adding firebase methods.
This commit is contained in:
parent
485cc3bbba
commit
c82121d036
1810 changed files with 537281 additions and 1 deletions
|
@ -0,0 +1,374 @@
|
|||
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``
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
pip
|
|
@ -0,0 +1,396 @@
|
|||
Metadata-Version: 2.0
|
||||
Name: requests-toolbelt
|
||||
Version: 0.7.0
|
||||
Summary: A utility belt for advanced users of python-requests
|
||||
Home-page: https://toolbelt.readthedocs.org
|
||||
Author: Ian Cordasco, Cory Benfield
|
||||
Author-email: graffatcolmingov@gmail.com
|
||||
License: Apache 2.0
|
||||
Platform: UNKNOWN
|
||||
Classifier: Development Status :: 5 - Production/Stable
|
||||
Classifier: License :: OSI Approved :: Apache Software License
|
||||
Classifier: Intended Audience :: Developers
|
||||
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 :: Implementation :: CPython
|
||||
Requires-Dist: requests (>=2.0.1,<3.0.0)
|
||||
|
||||
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``
|
||||
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
requests_toolbelt-0.7.0.dist-info/DESCRIPTION.rst,sha256=EiCfIIxCIWvSy3a1hiJZFNgMJc88-uklUJFEcoH4oo0,10622
|
||||
requests_toolbelt-0.7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
requests_toolbelt-0.7.0.dist-info/METADATA,sha256=Bxt6q2Db2QuGHer-9th_GbnSPtIFfg4p44I5xROWU3c,11520
|
||||
requests_toolbelt-0.7.0.dist-info/RECORD,,
|
||||
requests_toolbelt-0.7.0.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110
|
||||
requests_toolbelt-0.7.0.dist-info/metadata.json,sha256=nJwIAwv-HqHByrG5fi3REygHOHIo25ifytQ0lOZK-eE,1038
|
||||
requests_toolbelt-0.7.0.dist-info/top_level.txt,sha256=94d34hHwG8qjeDXYn9Co3jucG_N9CkO-V5kWQ6Cre8w,18
|
||||
requests_toolbelt/__init__.py,sha256=vOJHzqwL9cCZKDZ1c09TYaeWJoIhs5Xhe-crZtNncsY,1181
|
||||
requests_toolbelt/__pycache__/__init__.cpython-36.pyc,,
|
||||
requests_toolbelt/__pycache__/_compat.cpython-36.pyc,,
|
||||
requests_toolbelt/__pycache__/exceptions.cpython-36.pyc,,
|
||||
requests_toolbelt/__pycache__/sessions.cpython-36.pyc,,
|
||||
requests_toolbelt/__pycache__/streaming_iterator.cpython-36.pyc,,
|
||||
requests_toolbelt/_compat.py,sha256=dPBZARpeOwF5VggRys8sfEx5He2PgCbEpWKB7yK_XuY,9464
|
||||
requests_toolbelt/adapters/__init__.py,sha256=aHfAB7Gt5HDtrvNWaRObcmU3JTlfwRLLXXxZIOa9BWk,363
|
||||
requests_toolbelt/adapters/__pycache__/__init__.cpython-36.pyc,,
|
||||
requests_toolbelt/adapters/__pycache__/appengine.cpython-36.pyc,,
|
||||
requests_toolbelt/adapters/__pycache__/fingerprint.cpython-36.pyc,,
|
||||
requests_toolbelt/adapters/__pycache__/host_header_ssl.cpython-36.pyc,,
|
||||
requests_toolbelt/adapters/__pycache__/socket_options.cpython-36.pyc,,
|
||||
requests_toolbelt/adapters/__pycache__/source.cpython-36.pyc,,
|
||||
requests_toolbelt/adapters/__pycache__/ssl.cpython-36.pyc,,
|
||||
requests_toolbelt/adapters/appengine.py,sha256=-qkVsMDLx2XdiutD9UPFIq5EGKY5ZRbabfxsKzZHftw,5303
|
||||
requests_toolbelt/adapters/fingerprint.py,sha256=NRL_75ZO-nIvOOG8KIqgzXLoLN6B6leRKfT78P3cQQE,1404
|
||||
requests_toolbelt/adapters/host_header_ssl.py,sha256=6UbWnM3DYG6PROLPjzuCo3PEw-BxLXTUMtl68sAOIlk,1396
|
||||
requests_toolbelt/adapters/socket_options.py,sha256=PRuOgtNfLrlvdIqa53DtZ2-A4jgTJUnheZBp5A876iU,4295
|
||||
requests_toolbelt/adapters/source.py,sha256=7_glRl-MIN-KVSn72p70-RLhNs_LmdmsApkpGiZEwDw,2607
|
||||
requests_toolbelt/adapters/ssl.py,sha256=QGjVCHwqSTzvP58EIYOb47CdLB9KPg5AmGDNQ7buwwA,2399
|
||||
requests_toolbelt/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
requests_toolbelt/auth/__pycache__/__init__.cpython-36.pyc,,
|
||||
requests_toolbelt/auth/__pycache__/_digest_auth_compat.cpython-36.pyc,,
|
||||
requests_toolbelt/auth/__pycache__/guess.cpython-36.pyc,,
|
||||
requests_toolbelt/auth/__pycache__/handler.cpython-36.pyc,,
|
||||
requests_toolbelt/auth/__pycache__/http_proxy_digest.cpython-36.pyc,,
|
||||
requests_toolbelt/auth/_digest_auth_compat.py,sha256=Japu0u8KwV3IFbRiEmzrxVR6MxINnpmbPYeEqyh_zbM,910
|
||||
requests_toolbelt/auth/guess.py,sha256=QSl22nPByDKiuACvR5uxpVbtGcMby8SwAHjwsPW9sD0,4944
|
||||
requests_toolbelt/auth/handler.py,sha256=0kC45uh-DGcUc4d1mCIZ8vLLONGUK9vrQ96Zovq1c_s,4408
|
||||
requests_toolbelt/auth/http_proxy_digest.py,sha256=LzZOs1Dllk2GvX1Dq9xTtdwFMppUcNC__2DVtWMY5fg,3705
|
||||
requests_toolbelt/cookies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
requests_toolbelt/cookies/__pycache__/__init__.cpython-36.pyc,,
|
||||
requests_toolbelt/cookies/__pycache__/forgetful.cpython-36.pyc,,
|
||||
requests_toolbelt/cookies/forgetful.py,sha256=B3_AB6lyRHJG4WvvKobS5W_MTP31BQ5RrLs3uYVx7cs,213
|
||||
requests_toolbelt/downloadutils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
requests_toolbelt/downloadutils/__pycache__/__init__.cpython-36.pyc,,
|
||||
requests_toolbelt/downloadutils/__pycache__/stream.cpython-36.pyc,,
|
||||
requests_toolbelt/downloadutils/__pycache__/tee.cpython-36.pyc,,
|
||||
requests_toolbelt/downloadutils/stream.py,sha256=ryVjUCEDtVff-QyY8N8tRF8WXIW_sMSyeQsLlBNxBvg,6069
|
||||
requests_toolbelt/downloadutils/tee.py,sha256=qV9Bwq83OZWDg-lW0YsP4Cdzsu0gc797GCSv6w7dPPw,4365
|
||||
requests_toolbelt/exceptions.py,sha256=DXPPoDaUvAb-uZjmMOyBsLG8ZHdlhE3qvqJgWXUUmQ4,696
|
||||
requests_toolbelt/multipart/__init__.py,sha256=DBN8VAhbphNGErpKSrYTIk8QYaofmnddPWtNmn2Ujdc,847
|
||||
requests_toolbelt/multipart/__pycache__/__init__.cpython-36.pyc,,
|
||||
requests_toolbelt/multipart/__pycache__/decoder.cpython-36.pyc,,
|
||||
requests_toolbelt/multipart/__pycache__/encoder.cpython-36.pyc,,
|
||||
requests_toolbelt/multipart/decoder.py,sha256=XC8IXuxFghKETR2lVm1ZG4UoK4-Y6sYb0FQP2R844m8,4818
|
||||
requests_toolbelt/multipart/encoder.py,sha256=OtdADxn8dhHpgubBVOmsFWkBzKyoxYrcqjrsdWB6iaA,17843
|
||||
requests_toolbelt/sessions.py,sha256=dRi6ty0DposGvZHFPp4TodnhgTr98IBT5R9i5wExdTM,2321
|
||||
requests_toolbelt/streaming_iterator.py,sha256=RoBpiFO996ixJ7XBdeTEDcvdt2gO8UifRZHLydRUlQ0,4044
|
||||
requests_toolbelt/threaded/__init__.py,sha256=t2ymrLKiIUW3GgGSn8WdmIBJqbdi_NHeigq9om4PCqc,3226
|
||||
requests_toolbelt/threaded/__pycache__/__init__.cpython-36.pyc,,
|
||||
requests_toolbelt/threaded/__pycache__/pool.cpython-36.pyc,,
|
||||
requests_toolbelt/threaded/__pycache__/thread.cpython-36.pyc,,
|
||||
requests_toolbelt/threaded/pool.py,sha256=UyY1GVnPdeJLNhOLa_WZsSJOBmOtLMU1v89PFt5hoTQ,6628
|
||||
requests_toolbelt/threaded/thread.py,sha256=16UmWaK_lZgDcKkBkS1j-6_K3zKIok314g7Fpllj2Jg,1465
|
||||
requests_toolbelt/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
requests_toolbelt/utils/__pycache__/__init__.cpython-36.pyc,,
|
||||
requests_toolbelt/utils/__pycache__/deprecated.cpython-36.pyc,,
|
||||
requests_toolbelt/utils/__pycache__/dump.cpython-36.pyc,,
|
||||
requests_toolbelt/utils/__pycache__/formdata.cpython-36.pyc,,
|
||||
requests_toolbelt/utils/__pycache__/user_agent.cpython-36.pyc,,
|
||||
requests_toolbelt/utils/deprecated.py,sha256=BLWnMx0EqCQusUltuZZIk3-q4A9tN7n-av0Reu0Wy_o,2342
|
||||
requests_toolbelt/utils/dump.py,sha256=KBkDRyZmNKOp-uDE9Lb2kyWIoaFgjflqsmQRqAxlh8M,6351
|
||||
requests_toolbelt/utils/formdata.py,sha256=ppqpIdkW6V0CNyeFiKAytDU0H9g1yXLzZU0QTuWrjb0,3233
|
||||
requests_toolbelt/utils/user_agent.py,sha256=Oyj1MB9VnDZduhZwtfl9bzbr2eEXWAgZYJuUKZz2p7A,2696
|
|
@ -0,0 +1,6 @@
|
|||
Wheel-Version: 1.0
|
||||
Generator: bdist_wheel (0.29.0)
|
||||
Root-Is-Purelib: true
|
||||
Tag: py2-none-any
|
||||
Tag: py3-none-any
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"classifiers": ["Development Status :: 5 - Production/Stable", "License :: OSI Approved :: Apache Software License", "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython"], "extensions": {"python.details": {"contacts": [{"email": "graffatcolmingov@gmail.com", "name": "Ian Cordasco, Cory Benfield", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://toolbelt.readthedocs.org"}}}, "extras": [], "generator": "bdist_wheel (0.29.0)", "license": "Apache 2.0", "metadata_version": "2.0", "name": "requests-toolbelt", "run_requires": [{"requires": ["requests (>=2.0.1,<3.0.0)"]}], "summary": "A utility belt for advanced users of python-requests", "version": "0.7.0"}
|
|
@ -0,0 +1 @@
|
|||
requests_toolbelt
|
Loading…
Add table
Add a link
Reference in a new issue