-
Notifications
You must be signed in to change notification settings - Fork 12
Requests 2.20.0 to 2.22.0
mickael e edited this page Aug 16, 2019
·
1 revision
99dcfdaaeb17caf6e526f32b6a7b780461512ab3f1d992187801694cba42770c requests-2.20.0.tar.gz
11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4 requests-2.22.0.tar.gz
0 nateprewitt (501) staff (501) 229 2018-10-17 00:57:13.000000 requests-2.20.0/tests/test_packages.py
│ │ -drwxr-xr-x 0 nateprewitt (501) staff (501) 0 2018-10-18 15:45:26.000000 requests-2.20.0/tests/testserver/
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 3721 2018-06-15 13:32:47.000000 requests-2.20.0/tests/testserver/server.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 0 2017-09-12 04:31:44.000000 requests-2.20.0/tests/testserver/__init__.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 5603 2018-10-18 15:41:46.000000 requests-2.20.0/tests/test_testserver.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 333 2018-06-15 13:32:47.000000 requests-2.20.0/tests/compat.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 369 2018-06-15 13:32:47.000000 requests-2.20.0/tests/__init__.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 444 2018-06-15 13:32:47.000000 requests-2.20.0/tests/test_hooks.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 90047 2018-10-18 15:41:46.000000 requests-2.20.0/tests/test_requests.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 391 2018-06-15 13:32:47.000000 requests-2.20.0/tests/utils.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 866 2018-10-18 15:41:46.000000 requests-2.20.0/tests/test_help.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 11522 2018-10-18 15:41:46.000000 requests-2.20.0/tests/test_lowlevel.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 122 2018-10-17 00:57:13.000000 requests-2.20.0/MANIFEST.in
│ │ -drwxr-xr-x 0 nateprewitt (501) staff (501) 0 2018-10-18 15:45:26.000000 requests-2.20.0/requests/
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 18430 2018-10-18 15:41:45.000000 requests-2.20.0/requests/cookies.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 10206 2018-10-18 15:41:45.000000 requests-2.20.0/requests/auth.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 28958 2018-10-18 15:41:46.000000 requests-2.20.0/requests/sessions.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 757 2018-10-18 15:41:46.000000 requests-2.20.0/requests/hooks.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 1678 2018-10-18 15:41:45.000000 requests-2.20.0/requests/compat.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 34209 2018-10-18 15:41:46.000000 requests-2.20.0/requests/models.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 453 2018-06-15 13:32:47.000000 requests-2.20.0/requests/certs.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 3921 2018-10-18 15:41:45.000000 requests-2.20.0/requests/__init__.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 4129 2018-10-17 00:57:13.000000 requests-2.20.0/requests/status_codes.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 542 2018-10-17 00:57:13.000000 requests-2.20.0/requests/packages.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 436 2018-10-18 15:41:45.000000 requests-2.20.0/requests/__version__.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 6253 2018-10-17 00:57:37.000000 requests-2.20.0/requests/api.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 1096 2018-06-15 13:32:47.000000 requests-2.20.0/requests/_internal_utils.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 29994 2018-10-18 15:41:46.000000 requests-2.20.0/requests/utils.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 3185 2018-10-17 00:57:13.000000 requests-2.20.0/requests/exceptions.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 2981 2018-10-17 00:57:13.000000 requests-2.20.0/requests/structures.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 3515 2018-10-18 15:41:46.000000 requests-2.20.0/requests/help.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 21344 2018-10-18 15:41:45.000000 requests-2.20.0/requests/adapters.py
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 3965 2018-10-17 00:57:13.000000 requests-2.20.0/README.md
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 423 2018-10-17 04:33:51.000000 requests-2.20.0/Pipfile
│ │ --rwxr-xr-x 0 nateprewitt (501) staff (501) 3334 2018-10-18 15:41:46.000000 requests-2.20.0/setup.py
│ │ -drwxr-xr-x 0 nateprewitt (501) staff (501) 0 2018-10-18 15:45:26.000000 requests-2.20.0/requests.egg-info/
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 5885 2018-10-18 15:45:25.000000 requests-2.20.0/requests.egg-info/PKG-INFO
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 1 2018-10-18 15:45:25.000000 requests-2.20.0/requests.egg-info/not-zip-safe
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 951 2018-10-18 15:45:25.000000 requests-2.20.0/requests.egg-info/SOURCES.txt
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 245 2018-10-18 15:45:25.000000 requests-2.20.0/requests.egg-info/requires.txt
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 9 2018-10-18 15:45:25.000000 requests-2.20.0/requests.egg-info/top_level.txt
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 1 2018-10-18 15:45:25.000000 requests-2.20.0/requests.egg-info/dependency_links.txt
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 102 2018-10-18 15:45:26.000000 requests-2.20.0/setup.cfg
│ │ --rw-r--r-- 0 nateprewitt (501) staff (501) 31469 2018-10-17 00:57:13.000000 requests-2.20.0/Pipfile.lock
│ │ +drwxr-xr-x 0 nateprewitt (501) staff (501) 0 2019-05-16 14:36:36.000000 requests-2.22.0/
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 5888 2019-05-16 14:36:36.000000 requests-2.22.0/PKG-INFO
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 33 2019-05-16 14:18:16.000000 requests-2.22.0/pytest.ini
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 582 2019-05-16 14:18:16.000000 requests-2.22.0/LICENSE
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 48996 2019-05-16 14:22:45.000000 requests-2.22.0/HISTORY.md
│ │ +drwxr-xr-x 0 nateprewitt (501) staff (501) 0 2019-05-16 14:36:36.000000 requests-2.22.0/tests/
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 26017 2019-05-16 14:18:16.000000 requests-2.22.0/tests/test_utils.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 474 2019-05-16 14:18:16.000000 requests-2.22.0/tests/conftest.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 2250 2019-05-16 14:18:16.000000 requests-2.22.0/tests/test_structures.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 229 2019-05-16 14:18:16.000000 requests-2.22.0/tests/test_packages.py
│ │ +drwxr-xr-x 0 nateprewitt (501) staff (501) 0 2019-05-16 14:36:36.000000 requests-2.22.0/tests/testserver/
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 3721 2019-05-16 14:18:16.000000 requests-2.22.0/tests/testserver/server.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 0 2019-05-16 14:18:16.000000 requests-2.22.0/tests/testserver/__init__.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 5603 2019-05-16 14:18:16.000000 requests-2.22.0/tests/test_testserver.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 333 2019-05-16 14:18:16.000000 requests-2.22.0/tests/compat.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 369 2019-05-16 14:18:16.000000 requests-2.22.0/tests/__init__.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 444 2019-05-16 14:18:16.000000 requests-2.22.0/tests/test_hooks.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 90878 2019-05-16 14:18:16.000000 requests-2.22.0/tests/test_requests.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 391 2019-05-16 14:18:16.000000 requests-2.22.0/tests/utils.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 866 2019-05-16 14:18:16.000000 requests-2.22.0/tests/test_help.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 11522 2019-05-16 14:18:16.000000 requests-2.22.0/tests/test_lowlevel.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 122 2019-05-16 14:18:16.000000 requests-2.22.0/MANIFEST.in
│ │ +drwxr-xr-x 0 nateprewitt (501) staff (501) 0 2019-05-16 14:36:36.000000 requests-2.22.0/requests/
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 18430 2019-05-16 14:18:16.000000 requests-2.22.0/requests/cookies.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 10206 2019-05-16 14:18:16.000000 requests-2.22.0/requests/auth.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 29332 2019-05-16 14:18:16.000000 requests-2.22.0/requests/sessions.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 757 2019-05-16 14:18:16.000000 requests-2.22.0/requests/hooks.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 1678 2019-05-16 14:18:16.000000 requests-2.22.0/requests/compat.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 34210 2019-05-16 14:18:16.000000 requests-2.22.0/requests/models.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 453 2019-05-16 14:18:16.000000 requests-2.22.0/requests/certs.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 3921 2019-05-16 14:22:45.000000 requests-2.22.0/requests/__init__.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 4129 2019-05-16 14:18:16.000000 requests-2.22.0/requests/status_codes.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 542 2019-05-16 14:18:16.000000 requests-2.22.0/requests/packages.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 436 2019-05-16 14:22:45.000000 requests-2.22.0/requests/__version__.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 6271 2019-05-16 14:18:16.000000 requests-2.22.0/requests/api.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 1096 2019-05-16 14:18:16.000000 requests-2.22.0/requests/_internal_utils.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 30049 2019-05-16 14:18:16.000000 requests-2.22.0/requests/utils.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 3185 2019-05-16 14:18:16.000000 requests-2.22.0/requests/exceptions.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 2981 2019-05-16 14:18:16.000000 requests-2.22.0/requests/structures.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 3515 2019-05-16 14:18:16.000000 requests-2.22.0/requests/help.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 21344 2019-05-16 14:18:16.000000 requests-2.22.0/requests/adapters.py
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 3962 2019-05-16 14:23:42.000000 requests-2.22.0/README.md
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 442 2019-05-16 14:22:45.000000 requests-2.22.0/Pipfile
│ │ +-rwxr-xr-x 0 nateprewitt (501) staff (501) 3312 2019-05-16 14:22:45.000000 requests-2.22.0/setup.py
│ │ +drwxr-xr-x 0 nateprewitt (501) staff (501) 0 2019-05-16 14:36:36.000000 requests-2.22.0/requests.egg-info/
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 5888 2019-05-16 14:36:35.000000 requests-2.22.0/requests.egg-info/PKG-INFO
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 1 2018-12-10 15:39:29.000000 requests-2.22.0/requests.egg-info/not-zip-safe
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 951 2019-05-16 14:36:35.000000 requests-2.22.0/requests.egg-info/SOURCES.txt
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 263 2019-05-16 14:36:35.000000 requests-2.22.0/requests.egg-info/requires.txt
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 9 2019-05-16 14:36:35.000000 requests-2.22.0/requests.egg-info/top_level.txt
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 1 2019-05-16 14:36:35.000000 requests-2.22.0/requests.egg-info/dependency_links.txt
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 102 2019-05-16 14:36:36.000000 requests-2.22.0/setup.cfg
│ │ +-rw-r--r-- 0 nateprewitt (501) staff (501) 36746 2019-05-16 14:22:45.000000 requests-2.22.0/Pipfile.lock
│ --- requests-2.20.0/requests/status_codes.py
├── +++ requests-2.22.0/requests/status_codes.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests.egg-info/PKG-INFO
├── +++ requests-2.22.0/requests.egg-info/PKG-INFO
│┄ Files similar despite different names (difference score: 18)
│ │ @@ -1,36 +1,34 @@
│ │ -Metadata-Version: 1.2
│ │ +Metadata-Version: 2.1
│ │ Name: requests
│ │ -Version: 2.20.0
│ │ +Version: 2.22.0
│ │ Summary: Python HTTP for Humans.
│ │ Home-page: http://python-requests.org
│ │ Author: Kenneth Reitz
│ │ Author-email: me@kennethreitz.org
│ │ License: Apache 2.0
│ │ -Description-Content-Type: text/markdown
│ │ Description: Requests: HTTP for Humans™
│ │ ==========================
│ │
│ │ [![image](https://img.shields.io/pypi/v/requests.svg)](https://pypi.org/project/requests/)
│ │ [![image](https://img.shields.io/pypi/l/requests.svg)](https://pypi.org/project/requests/)
│ │ [![image](https://img.shields.io/pypi/pyversions/requests.svg)](https://pypi.org/project/requests/)
│ │ [![codecov.io](https://codecov.io/github/requests/requests/coverage.svg?branch=master)](https://codecov.io/github/requests/requests)
│ │ [![image](https://img.shields.io/github/contributors/requests/requests.svg)](https://github.com/requests/requests/graphs/contributors)
│ │ [![image](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/kennethreitz)
│ │
│ │ - **If you're interested in financially supporting Kenneth Reitz open source, consider [visiting this link](https://cash.me/$KennethReitz). Your support helps tremendously with sustainability of motivation, as Open Source is no longer part of my day job.**
│ │ -
│ │ Requests is the only *Non-GMO* HTTP library for Python, safe for human
│ │ consumption.
│ │
│ │ ![image](https://farm5.staticflickr.com/4317/35198386374_1939af3de6_k_d.jpg)
│ │
│ │ Behold, the power of Requests:
│ │
│ │ ``` {.sourceCode .python}
│ │ + >>> import requests
│ │ >>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
│ │ >>> r.status_code
│ │ 200
│ │ >>> r.headers['content-type']
│ │ 'application/json; charset=utf8'
│ │ >>> r.encoding
│ │ 'utf-8'
│ │ @@ -96,38 +94,41 @@
│ │
│ │ Fantastic documentation is available at
│ │ <http://docs.python-requests.org/>, for a limited time only.
│ │
│ │ How to Contribute
│ │ -----------------
│ │
│ │ - 1. Check for open issues or open a fresh issue to start a discussion
│ │ + 1. Become more familiar with the project by reading our [Contributor's Guide](http://docs.python-requests.org/en/latest/dev/contributing/) and our [development philosophy](http://docs.python-requests.org/en/latest/dev/philosophy/).
│ │ + 2. Check for open issues or open a fresh issue to start a discussion
│ │ around a feature idea or a bug. There is a [Contributor
│ │ Friendly](https://github.com/requests/requests/issues?direction=desc&labels=Contributor+Friendly&page=1&sort=updated&state=open)
│ │ tag for issues that should be ideal for people who are not very
│ │ familiar with the codebase yet.
│ │ - 2. Fork [the repository](https://github.com/requests/requests) on
│ │ + 3. Fork [the repository](https://github.com/requests/requests) on
│ │ GitHub to start making your changes to the **master** branch (or
│ │ branch off of it).
│ │ - 3. Write a test which shows that the bug was fixed or that the feature
│ │ + 4. Write a test which shows that the bug was fixed or that the feature
│ │ works as expected.
│ │ - 4. Send a pull request and bug the maintainer until it gets merged and
│ │ + 5. Send a pull request and bug the maintainer until it gets merged and
│ │ published. :) Make sure to add yourself to
│ │ [AUTHORS](https://github.com/requests/requests/blob/master/AUTHORS.rst).
│ │
│ │
│ │ Platform: UNKNOWN
│ │ Classifier: Development Status :: 5 - Production/Stable
│ │ Classifier: Intended Audience :: Developers
│ │ Classifier: Natural Language :: English
│ │ Classifier: License :: OSI Approved :: Apache Software License
│ │ 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.4
│ │ Classifier: Programming Language :: Python :: 3.5
│ │ Classifier: Programming Language :: Python :: 3.6
│ │ Classifier: Programming Language :: Python :: 3.7
│ │ Classifier: Programming Language :: Python :: Implementation :: CPython
│ │ Classifier: Programming Language :: Python :: Implementation :: PyPy
│ │ -Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
│ │ +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
│ │ +Description-Content-Type: text/markdown
│ │ +Provides-Extra: security
│ │ +Provides-Extra: socks
│ --- requests-2.20.0/tests/test_requests.py
├── +++ requests-2.22.0/tests/test_requests.py
│┄ Files similar despite different names (difference score: 8)
│ │ @@ -5,14 +5,15 @@
│ │ from __future__ import division
│ │ import json
│ │ import os
│ │ import pickle
│ │ import collections
│ │ import contextlib
│ │ import warnings
│ │ +import re
│ │
│ │ import io
│ │ import requests
│ │ import pytest
│ │ from requests.adapters import HTTPAdapter
│ │ from requests.auth import HTTPDigestAuth, _basic_auth_str
│ │ from requests.compat import (
│ │ @@ -1607,14 +1608,25 @@
│ │ assert s.should_strip_auth('http://example.com:8080/foo', 'https://example.com/bar')
│ │ assert s.should_strip_auth('http://example.com/foo', 'https://example.com:8443/bar')
│ │
│ │ def test_should_strip_auth_port_change(self):
│ │ s = requests.Session()
│ │ assert s.should_strip_auth('http://example.com:1234/foo', 'https://example.com:4321/bar')
│ │
│ │ + @pytest.mark.parametrize(
│ │ + 'old_uri, new_uri', (
│ │ + ('https://example.com:443/foo', 'https://example.com/bar'),
│ │ + ('http://example.com:80/foo', 'http://example.com/bar'),
│ │ + ('https://example.com/foo', 'https://example.com:443/bar'),
│ │ + ('http://example.com/foo', 'http://example.com:80/bar')
│ │ + ))
│ │ + def test_should_strip_auth_default_port(self, old_uri, new_uri):
│ │ + s = requests.Session()
│ │ + assert not s.should_strip_auth(old_uri, new_uri)
│ │ +
│ │ def test_manual_redirect_with_partial_body_read(self, httpbin):
│ │ s = requests.Session()
│ │ r1 = s.get(httpbin('redirect/2'), allow_redirects=False, stream=True)
│ │ assert r1.is_redirect
│ │ rg = s.resolve_redirects(r1, r1.request, stream=True)
│ │
│ │ # read only the first eight bytes of the response body,
│ │ @@ -2403,17 +2415,25 @@
│ │ (
│ │ u'http://[1200:0000:ab00:1234:0000:2552:7777:1313]:12345/',
│ │ u'http://[1200:0000:ab00:1234:0000:2552:7777:1313]:12345/'
│ │ )
│ │ )
│ │ )
│ │ def test_preparing_url(self, url, expected):
│ │ +
│ │ + def normalize_percent_encode(x):
│ │ + # Helper function that normalizes equivalent
│ │ + # percent-encoded bytes before comparisons
│ │ + for c in re.findall(r'%[a-fA-F0-9]{2}', x):
│ │ + x = x.replace(c, c.upper())
│ │ + return x
│ │ +
│ │ r = requests.Request('GET', url=url)
│ │ p = r.prepare()
│ │ - assert p.url == expected
│ │ + assert normalize_percent_encode(p.url) == expected
│ │
│ │ @pytest.mark.parametrize(
│ │ 'url',
│ │ (
│ │ b"http://*.google.com",
│ │ b"http://*",
│ │ u"http://*.google.com",
│ --- requests-2.20.0/README.md
├── +++ requests-2.22.0/README.md
│┄ Files similar despite different names (difference score: 22)
│ │ @@ -4,24 +4,23 @@
│ │ [![image](https://img.shields.io/pypi/v/requests.svg)](https://pypi.org/project/requests/)
│ │ [![image](https://img.shields.io/pypi/l/requests.svg)](https://pypi.org/project/requests/)
│ │ [![image](https://img.shields.io/pypi/pyversions/requests.svg)](https://pypi.org/project/requests/)
│ │ [![codecov.io](https://codecov.io/github/requests/requests/coverage.svg?branch=master)](https://codecov.io/github/requests/requests)
│ │ [![image](https://img.shields.io/github/contributors/requests/requests.svg)](https://github.com/requests/requests/graphs/contributors)
│ │ [![image](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/kennethreitz)
│ │
│ │ -**If you're interested in financially supporting Kenneth Reitz open source, consider [visiting this link](https://cash.me/$KennethReitz). Your support helps tremendously with sustainability of motivation, as Open Source is no longer part of my day job.**
│ │ -
│ │ Requests is the only *Non-GMO* HTTP library for Python, safe for human
│ │ consumption.
│ │
│ │ ![image](https://farm5.staticflickr.com/4317/35198386374_1939af3de6_k_d.jpg)
│ │
│ │ Behold, the power of Requests:
│ │
│ │ ``` {.sourceCode .python}
│ │ +>>> import requests
│ │ >>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
│ │ >>> r.status_code
│ │ 200
│ │ >>> r.headers['content-type']
│ │ 'application/json; charset=utf8'
│ │ >>> r.encoding
│ │ 'utf-8'
│ │ @@ -87,21 +86,22 @@
│ │
│ │ Fantastic documentation is available at
│ │ <http://docs.python-requests.org/>, for a limited time only.
│ │
│ │ How to Contribute
│ │ -----------------
│ │
│ │ -1. Check for open issues or open a fresh issue to start a discussion
│ │ +1. Become more familiar with the project by reading our [Contributor's Guide](http://docs.python-requests.org/en/latest/dev/contributing/) and our [development philosophy](http://docs.python-requests.org/en/latest/dev/philosophy/).
│ │ +2. Check for open issues or open a fresh issue to start a discussion
│ │ around a feature idea or a bug. There is a [Contributor
│ │ Friendly](https://github.com/requests/requests/issues?direction=desc&labels=Contributor+Friendly&page=1&sort=updated&state=open)
│ │ tag for issues that should be ideal for people who are not very
│ │ familiar with the codebase yet.
│ │ -2. Fork [the repository](https://github.com/requests/requests) on
│ │ +3. Fork [the repository](https://github.com/requests/requests) on
│ │ GitHub to start making your changes to the **master** branch (or
│ │ branch off of it).
│ │ -3. Write a test which shows that the bug was fixed or that the feature
│ │ +4. Write a test which shows that the bug was fixed or that the feature
│ │ works as expected.
│ │ -4. Send a pull request and bug the maintainer until it gets merged and
│ │ +5. Send a pull request and bug the maintainer until it gets merged and
│ │ published. :) Make sure to add yourself to
│ │ [AUTHORS](https://github.com/requests/requests/blob/master/AUTHORS.rst).
│ --- requests-2.20.0/requests/__init__.py
├── +++ requests-2.22.0/requests/__init__.py
│┄ Files similar despite different names (difference score: 4)
│ │ @@ -53,18 +53,18 @@
│ │ # Sometimes, urllib3 only reports its version as 16.1.
│ │ if len(urllib3_version) == 2:
│ │ urllib3_version.append('0')
│ │
│ │ # Check urllib3 for compatibility.
│ │ major, minor, patch = urllib3_version # noqa: F811
│ │ major, minor, patch = int(major), int(minor), int(patch)
│ │ - # urllib3 >= 1.21.1, <= 1.24
│ │ + # urllib3 >= 1.21.1, <= 1.25
│ │ assert major == 1
│ │ assert minor >= 21
│ │ - assert minor <= 24
│ │ + assert minor <= 25
│ │
│ │ # Check chardet for compatibility.
│ │ major, minor, patch = chardet_version.split('.')[:3]
│ │ major, minor, patch = int(major), int(minor), int(patch)
│ │ # chardet >= 3.0.2, < 3.1.0
│ │ assert major == 3
│ │ assert minor < 1
│ --- requests-2.20.0/requests/structures.py
├── +++ requests-2.22.0/requests/structures.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests/models.py
├── +++ requests-2.22.0/requests/models.py
│┄ Files similar despite different names (difference score: 4)
│ │ @@ -777,15 +777,15 @@
│ │ chunks = reused_chunks if self._content_consumed else stream_chunks
│ │
│ │ if decode_unicode:
│ │ chunks = stream_decode_response_unicode(chunks, self)
│ │
│ │ return chunks
│ │
│ │ - def iter_lines(self, chunk_size=ITER_CHUNK_SIZE, decode_unicode=None, delimiter=None):
│ │ + def iter_lines(self, chunk_size=ITER_CHUNK_SIZE, decode_unicode=False, delimiter=None):
│ │ """Iterates over the response data, one line at a time. When
│ │ stream=True is set on the request, this avoids reading the
│ │ content at once into memory for large responses.
│ │
│ │ .. note:: This method is not reentrant safe.
│ │ """
│ --- requests-2.20.0/requests/compat.py
├── +++ requests-2.22.0/requests/compat.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests/auth.py
├── +++ requests-2.22.0/requests/auth.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/tests/test_lowlevel.py
├── +++ requests-2.22.0/tests/test_lowlevel.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/tests/test_help.py
├── +++ requests-2.22.0/tests/test_help.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests/hooks.py
├── +++ requests-2.22.0/requests/hooks.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests/api.py
├── +++ requests-2.22.0/requests/api.py
│┄ Files similar despite different names (difference score: 9)
│ │ @@ -15,15 +15,15 @@
│ │
│ │ def request(method, url, **kwargs):
│ │ """Constructs and sends a :class:`Request <Request>`.
│ │
│ │ :param method: method for the new :class:`Request` object.
│ │ :param url: URL for the new :class:`Request` object.
│ │ :param params: (optional) Dictionary, list of tuples or bytes to send
│ │ - in the body of the :class:`Request`.
│ │ + in the query string for the :class:`Request`.
│ │ :param data: (optional) Dictionary, list of tuples, bytes, or file-like
│ │ object to send in the body of the :class:`Request`.
│ │ :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
│ │ :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
│ │ :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
│ │ :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload.
│ │ ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
│ │ @@ -61,15 +61,15 @@
│ │
│ │
│ │ def get(url, params=None, **kwargs):
│ │ r"""Sends a GET request.
│ │
│ │ :param url: URL for the new :class:`Request` object.
│ │ :param params: (optional) Dictionary, list of tuples or bytes to send
│ │ - in the body of the :class:`Request`.
│ │ + in the query string for the :class:`Request`.
│ │ :param \*\*kwargs: Optional arguments that ``request`` takes.
│ │ :return: :class:`Response <Response>` object
│ │ :rtype: requests.Response
│ │ """
│ │
│ │ kwargs.setdefault('allow_redirects', True)
│ │ return request('get', url, params=params, **kwargs)
│ --- requests-2.20.0/PKG-INFO
├── +++ requests-2.22.0/PKG-INFO
│┄ Files similar despite different names (difference score: 18)
│ │ @@ -1,36 +1,34 @@
│ │ -Metadata-Version: 1.2
│ │ +Metadata-Version: 2.1
│ │ Name: requests
│ │ -Version: 2.20.0
│ │ +Version: 2.22.0
│ │ Summary: Python HTTP for Humans.
│ │ Home-page: http://python-requests.org
│ │ Author: Kenneth Reitz
│ │ Author-email: me@kennethreitz.org
│ │ License: Apache 2.0
│ │ -Description-Content-Type: text/markdown
│ │ Description: Requests: HTTP for Humans™
│ │ ==========================
│ │
│ │ [![image](https://img.shields.io/pypi/v/requests.svg)](https://pypi.org/project/requests/)
│ │ [![image](https://img.shields.io/pypi/l/requests.svg)](https://pypi.org/project/requests/)
│ │ [![image](https://img.shields.io/pypi/pyversions/requests.svg)](https://pypi.org/project/requests/)
│ │ [![codecov.io](https://codecov.io/github/requests/requests/coverage.svg?branch=master)](https://codecov.io/github/requests/requests)
│ │ [![image](https://img.shields.io/github/contributors/requests/requests.svg)](https://github.com/requests/requests/graphs/contributors)
│ │ [![image](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/kennethreitz)
│ │
│ │ - **If you're interested in financially supporting Kenneth Reitz open source, consider [visiting this link](https://cash.me/$KennethReitz). Your support helps tremendously with sustainability of motivation, as Open Source is no longer part of my day job.**
│ │ -
│ │ Requests is the only *Non-GMO* HTTP library for Python, safe for human
│ │ consumption.
│ │
│ │ ![image](https://farm5.staticflickr.com/4317/35198386374_1939af3de6_k_d.jpg)
│ │
│ │ Behold, the power of Requests:
│ │
│ │ ``` {.sourceCode .python}
│ │ + >>> import requests
│ │ >>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
│ │ >>> r.status_code
│ │ 200
│ │ >>> r.headers['content-type']
│ │ 'application/json; charset=utf8'
│ │ >>> r.encoding
│ │ 'utf-8'
│ │ @@ -96,38 +94,41 @@
│ │
│ │ Fantastic documentation is available at
│ │ <http://docs.python-requests.org/>, for a limited time only.
│ │
│ │ How to Contribute
│ │ -----------------
│ │
│ │ - 1. Check for open issues or open a fresh issue to start a discussion
│ │ + 1. Become more familiar with the project by reading our [Contributor's Guide](http://docs.python-requests.org/en/latest/dev/contributing/) and our [development philosophy](http://docs.python-requests.org/en/latest/dev/philosophy/).
│ │ + 2. Check for open issues or open a fresh issue to start a discussion
│ │ around a feature idea or a bug. There is a [Contributor
│ │ Friendly](https://github.com/requests/requests/issues?direction=desc&labels=Contributor+Friendly&page=1&sort=updated&state=open)
│ │ tag for issues that should be ideal for people who are not very
│ │ familiar with the codebase yet.
│ │ - 2. Fork [the repository](https://github.com/requests/requests) on
│ │ + 3. Fork [the repository](https://github.com/requests/requests) on
│ │ GitHub to start making your changes to the **master** branch (or
│ │ branch off of it).
│ │ - 3. Write a test which shows that the bug was fixed or that the feature
│ │ + 4. Write a test which shows that the bug was fixed or that the feature
│ │ works as expected.
│ │ - 4. Send a pull request and bug the maintainer until it gets merged and
│ │ + 5. Send a pull request and bug the maintainer until it gets merged and
│ │ published. :) Make sure to add yourself to
│ │ [AUTHORS](https://github.com/requests/requests/blob/master/AUTHORS.rst).
│ │
│ │
│ │ Platform: UNKNOWN
│ │ Classifier: Development Status :: 5 - Production/Stable
│ │ Classifier: Intended Audience :: Developers
│ │ Classifier: Natural Language :: English
│ │ Classifier: License :: OSI Approved :: Apache Software License
│ │ 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.4
│ │ Classifier: Programming Language :: Python :: 3.5
│ │ Classifier: Programming Language :: Python :: 3.6
│ │ Classifier: Programming Language :: Python :: 3.7
│ │ Classifier: Programming Language :: Python :: Implementation :: CPython
│ │ Classifier: Programming Language :: Python :: Implementation :: PyPy
│ │ -Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
│ │ +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
│ │ +Description-Content-Type: text/markdown
│ │ +Provides-Extra: security
│ │ +Provides-Extra: socks
│ --- requests-2.20.0/requests.egg-info/SOURCES.txt
├── +++ requests-2.22.0/requests.egg-info/SOURCES.txt
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests/adapters.py
├── +++ requests-2.22.0/requests/adapters.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests/cookies.py
├── +++ requests-2.22.0/requests/cookies.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests/help.py
├── +++ requests-2.22.0/requests/help.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/setup.py
├── +++ requests-2.22.0/setup.py
│┄ Files similar despite different names (difference score: 20)
│ │ @@ -39,16 +39,16 @@
│ │ os.system('twine upload dist/*')
│ │ sys.exit()
│ │
│ │ packages = ['requests']
│ │
│ │ requires = [
│ │ 'chardet>=3.0.2,<3.1.0',
│ │ - 'idna>=2.5,<2.8',
│ │ - 'urllib3>=1.21.1,<1.25',
│ │ + 'idna>=2.5,<2.9',
│ │ + 'urllib3>=1.21.1,<1.26,!=1.25.0,!=1.25.1',
│ │ 'certifi>=2017.4.17'
│ │
│ │ ]
│ │ test_requirements = [
│ │ 'pytest-httpbin==0.0.7',
│ │ 'pytest-cov',
│ │ 'pytest-mock',
│ │ @@ -75,28 +75,27 @@
│ │ author=about['__author__'],
│ │ author_email=about['__author_email__'],
│ │ url=about['__url__'],
│ │ packages=packages,
│ │ package_data={'': ['LICENSE', 'NOTICE'], 'requests': ['*.pem']},
│ │ package_dir={'requests': 'requests'},
│ │ include_package_data=True,
│ │ - python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
│ │ + python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*",
│ │ install_requires=requires,
│ │ license=about['__license__'],
│ │ zip_safe=False,
│ │ classifiers=[
│ │ 'Development Status :: 5 - Production/Stable',
│ │ 'Intended Audience :: Developers',
│ │ 'Natural Language :: English',
│ │ 'License :: OSI Approved :: Apache Software License',
│ │ 'Programming Language :: Python',
│ │ 'Programming Language :: Python :: 2',
│ │ 'Programming Language :: Python :: 2.7',
│ │ 'Programming Language :: Python :: 3',
│ │ - 'Programming Language :: Python :: 3.4',
│ │ 'Programming Language :: Python :: 3.5',
│ │ 'Programming Language :: Python :: 3.6',
│ │ 'Programming Language :: Python :: 3.7',
│ │ 'Programming Language :: Python :: Implementation :: CPython',
│ │ 'Programming Language :: Python :: Implementation :: PyPy'
│ │ ],
│ │ cmdclass={'test': PyTest},
│ --- requests-2.20.0/requests/_internal_utils.py
├── +++ requests-2.22.0/requests/_internal_utils.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/Pipfile.lock
├── +++ requests-2.22.0/Pipfile.lock
│┄ Files similar despite different names (difference score: 39)
│ │ @@ -1,29 +1,29 @@
│ │ {
│ │ "_meta": {
│ │ "hash": {
│ │ - "sha256": "0735b243455d8e924fbd05188ed435bfd3917f4acdade9b9e8f14741f3fc47e9"
│ │ + "sha256": "33206a3ef69c36187f33224ccf8e694a323ff4f7b2cc92c35fe8e71898b525a0"
│ │ },
│ │ "pipfile-spec": 6,
│ │ "requires": {},
│ │ "sources": [
│ │ {
│ │ "name": "pypi",
│ │ "url": "https://pypi.org/simple/",
│ │ "verify_ssl": true
│ │ }
│ │ ]
│ │ },
│ │ "default": {
│ │ "certifi": {
│ │ "hashes": [
│ │ - "sha256:13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7",
│ │ - "sha256:9fa520c1bacfb634fa7af20a76bcbd3d5fb390481724c597da32c719a7dca4b0"
│ │ + "sha256:59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5",
│ │ + "sha256:b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae"
│ │ ],
│ │ - "version": "==2018.4.16"
│ │ + "version": "==2019.3.9"
│ │ },
│ │ "chardet": {
│ │ "hashes": [
│ │ "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
│ │ "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
│ │ ],
│ │ "version": "==3.0.4"
│ │ @@ -33,69 +33,94 @@
│ │ "extras": [
│ │ "socks"
│ │ ],
│ │ "path": "."
│ │ },
│ │ "idna": {
│ │ "hashes": [
│ │ - "sha256:2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f",
│ │ - "sha256:8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4"
│ │ + "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407",
│ │ + "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"
│ │ ],
│ │ - "version": "==2.6"
│ │ + "version": "==2.8"
│ │ },
│ │ "pysocks": {
│ │ "hashes": [
│ │ - "sha256:3fe52c55890a248676fd69dc9e3c4e811718b777834bcaab7a8125cf9deac672"
│ │ + "sha256:15d38914b60dbcb231d276f64882a20435c049450160e953ca7d313d1405f16f",
│ │ + "sha256:32238918ac0f19e9fd870a8692ac9bd14f5e8752b3c62624cda5851424642210",
│ │ + "sha256:d9031ea45fdfacbe59a99273e9f0448ddb33c1580fe3831c1b09557c5718977c"
│ │ ],
│ │ - "version": "==1.6.8"
│ │ + "version": "==1.7.0"
│ │ + },
│ │ + "requests": {
│ │ + "editable": true,
│ │ + "extras": [
│ │ + "socks"
│ │ + ],
│ │ + "path": ".",
│ │ + "version": "==2.22.0"
│ │ },
│ │ "urllib3": {
│ │ "hashes": [
│ │ - "sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b",
│ │ - "sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"
│ │ + "sha256:a53063d8b9210a7bdec15e7b272776b9d42b2fd6816401a0d43006ad2f9902db",
│ │ + "sha256:d363e3607d8de0c220d31950a8f38b18d5ba7c0830facd71a1c6b1036b7ce06c"
│ │ ],
│ │ - "version": "==1.22"
│ │ + "version": "==1.25.2"
│ │ + },
│ │ + "win-inet-pton": {
│ │ + "hashes": [
│ │ + "sha256:dd03d942c0d3e2b1cf8bab511844546dfa5f74cb61b241699fa379ad707dea4f",
│ │ + "sha256:eaf0193cbe7152ac313598a0da7313fb479f769343c0c16c5308f64887dc885b"
│ │ + ],
│ │ + "markers": "sys_platform == 'win32' and python_version == '2.7'",
│ │ + "version": "==1.1.0"
│ │ }
│ │ },
│ │ "develop": {
│ │ "alabaster": {
│ │ "hashes": [
│ │ - "sha256:2eef172f44e8d301d25aff8068fddd65f767a3f04b5f15b0f4922f113aa1c732",
│ │ - "sha256:37cdcb9e9954ed60912ebc1ca12a9d12178c26637abdf124e3cde2341c257fe0"
│ │ + "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359",
│ │ + "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"
│ │ ],
│ │ "index": "pypi",
│ │ - "version": "==0.7.10"
│ │ + "version": "==0.7.12"
│ │ },
│ │ "apipkg": {
│ │ "hashes": [
│ │ - "sha256:2e38399dbe842891fe85392601aab8f40a8f4cc5a9053c326de35a1cc0297ac6",
│ │ - "sha256:65d2aa68b28e7d31233bb2ba8eb31cda40e4671f8ac2d6b241e358c9652a74b9"
│ │ + "sha256:37228cda29411948b422fae072f57e31d3396d2ee1c9783775980ee9c9990af6",
│ │ + "sha256:58587dd4dc3daefad0487f6d9ae32b4542b185e1c36db6993290e7c41ca2b47c"
│ │ ],
│ │ - "version": "==1.4"
│ │ + "version": "==1.5"
│ │ + },
│ │ + "atomicwrites": {
│ │ + "hashes": [
│ │ + "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4",
│ │ + "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6"
│ │ + ],
│ │ + "version": "==1.3.0"
│ │ },
│ │ "attrs": {
│ │ "hashes": [
│ │ - "sha256:4b90b09eeeb9b88c35bc642cbac057e45a5fd85367b985bd2809c62b7b939265",
│ │ - "sha256:e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b"
│ │ + "sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79",
│ │ + "sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399"
│ │ ],
│ │ - "version": "==18.1.0"
│ │ + "version": "==19.1.0"
│ │ },
│ │ "babel": {
│ │ "hashes": [
│ │ - "sha256:8ce4cb6fdd4393edd323227cba3a077bceb2a6ce5201c902c65e730046f41f14",
│ │ - "sha256:ad209a68d7162c4cff4b29cdebe3dec4cef75492df501b0049a9433c96ce6f80"
│ │ + "sha256:6778d85147d5d85345c14a26aada5e478ab04e39b078b0745ee6870c2b5cf669",
│ │ + "sha256:8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23"
│ │ ],
│ │ - "version": "==2.5.3"
│ │ + "version": "==2.6.0"
│ │ },
│ │ "bleach": {
│ │ "hashes": [
│ │ - "sha256:b8fa79e91f96c2c2cd9fd1f9eda906efb1b88b483048978ba62fef680e962b34",
│ │ - "sha256:eb7386f632349d10d9ce9d4a838b134d4731571851149f9cc2c05a9a837a9a44"
│ │ + "sha256:213336e49e102af26d9cde77dd2d0397afabc5a6bf2fed985dc35b5d1e285a16",
│ │ + "sha256:3fdf7f77adcf649c9911387df51254b813185e32b2c6619f690b593a617e19fa"
│ │ ],
│ │ - "version": "==2.1.3"
│ │ + "version": "==3.1.0"
│ │ },
│ │ "blinker": {
│ │ "hashes": [
│ │ "sha256:471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6"
│ │ ],
│ │ "version": "==1.4"
│ │ },
│ │ @@ -131,464 +156,519 @@
│ │ "sha256:dc6c5ee0df9732a44d08edab32f8a616b769cc5a4155a12d2d010d248eb3fb07",
│ │ "sha256:fd1d1c64214af5d90014d82cee5d8141b13d44c92ada7a0c0ec0679c6f15a471"
│ │ ],
│ │ "version": "==0.7.0"
│ │ },
│ │ "certifi": {
│ │ "hashes": [
│ │ - "sha256:13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7",
│ │ - "sha256:9fa520c1bacfb634fa7af20a76bcbd3d5fb390481724c597da32c719a7dca4b0"
│ │ + "sha256:59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5",
│ │ + "sha256:b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae"
│ │ ],
│ │ - "version": "==2018.4.16"
│ │ + "version": "==2019.3.9"
│ │ },
│ │ "cffi": {
│ │ "hashes": [
│ │ - "sha256:151b7eefd035c56b2b2e1eb9963c90c6302dc15fbd8c1c0a83a163ff2c7d7743",
│ │ - "sha256:1553d1e99f035ace1c0544050622b7bc963374a00c467edafac50ad7bd276aef",
│ │ - "sha256:1b0493c091a1898f1136e3f4f991a784437fac3673780ff9de3bcf46c80b6b50",
│ │ - "sha256:2ba8a45822b7aee805ab49abfe7eec16b90587f7f26df20c71dd89e45a97076f",
│ │ - "sha256:3c85641778460581c42924384f5e68076d724ceac0f267d66c757f7535069c93",
│ │ - "sha256:3eb6434197633b7748cea30bf0ba9f66727cdce45117a712b29a443943733257",
│ │ - "sha256:4c91af6e967c2015729d3e69c2e51d92f9898c330d6a851bf8f121236f3defd3",
│ │ - "sha256:770f3782b31f50b68627e22f91cb182c48c47c02eb405fd689472aa7b7aa16dc",
│ │ - "sha256:79f9b6f7c46ae1f8ded75f68cf8ad50e5729ed4d590c74840471fc2823457d04",
│ │ - "sha256:7a33145e04d44ce95bcd71e522b478d282ad0eafaf34fe1ec5bbd73e662f22b6",
│ │ - "sha256:857959354ae3a6fa3da6651b966d13b0a8bed6bbc87a0de7b38a549db1d2a359",
│ │ - "sha256:87f37fe5130574ff76c17cab61e7d2538a16f843bb7bca8ebbc4b12de3078596",
│ │ - "sha256:95d5251e4b5ca00061f9d9f3d6fe537247e145a8524ae9fd30a2f8fbce993b5b",
│ │ - "sha256:9d1d3e63a4afdc29bd76ce6aa9d58c771cd1599fbba8cf5057e7860b203710dd",
│ │ - "sha256:a36c5c154f9d42ec176e6e620cb0dd275744aa1d804786a71ac37dc3661a5e95",
│ │ - "sha256:ae5e35a2c189d397b91034642cb0eab0e346f776ec2eb44a49a459e6615d6e2e",
│ │ - "sha256:b0f7d4a3df8f06cf49f9f121bead236e328074de6449866515cea4907bbc63d6",
│ │ - "sha256:b75110fb114fa366b29a027d0c9be3709579602ae111ff61674d28c93606acca",
│ │ - "sha256:ba5e697569f84b13640c9e193170e89c13c6244c24400fc57e88724ef610cd31",
│ │ - "sha256:be2a9b390f77fd7676d80bc3cdc4f8edb940d8c198ed2d8c0be1319018c778e1",
│ │ - "sha256:d5d8555d9bfc3f02385c1c37e9f998e2011f0db4f90e250e5bc0c0a85a813085",
│ │ - "sha256:e55e22ac0a30023426564b1059b035973ec82186ddddbac867078435801c7801",
│ │ - "sha256:e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4",
│ │ - "sha256:ecbb7b01409e9b782df5ded849c178a0aa7c906cf8c5a67368047daab282b184",
│ │ - "sha256:ed01918d545a38998bfa5902c7c00e0fee90e957ce036a4000a88e3fe2264917",
│ │ - "sha256:edabd457cd23a02965166026fd9bfd196f4324fe6032e866d0f3bd0301cd486f",
│ │ - "sha256:fdf1c1dc5bafc32bc5d08b054f94d659422b05aba244d6be4ddc1c72d9aa70fb"
│ │ + "sha256:041c81822e9f84b1d9c401182e174996f0bae9991f33725d059b771744290774",
│ │ + "sha256:046ef9a22f5d3eed06334d01b1e836977eeef500d9b78e9ef693f9380ad0b83d",
│ │ + "sha256:066bc4c7895c91812eff46f4b1c285220947d4aa46fa0a2651ff85f2afae9c90",
│ │ + "sha256:066c7ff148ae33040c01058662d6752fd73fbc8e64787229ea8498c7d7f4041b",
│ │ + "sha256:2444d0c61f03dcd26dbf7600cf64354376ee579acad77aef459e34efcb438c63",
│ │ + "sha256:300832850b8f7967e278870c5d51e3819b9aad8f0a2c8dbe39ab11f119237f45",
│ │ + "sha256:34c77afe85b6b9e967bd8154e3855e847b70ca42043db6ad17f26899a3df1b25",
│ │ + "sha256:46de5fa00f7ac09f020729148ff632819649b3e05a007d286242c4882f7b1dc3",
│ │ + "sha256:4aa8ee7ba27c472d429b980c51e714a24f47ca296d53f4d7868075b175866f4b",
│ │ + "sha256:4d0004eb4351e35ed950c14c11e734182591465a33e960a4ab5e8d4f04d72647",
│ │ + "sha256:4e3d3f31a1e202b0f5a35ba3bc4eb41e2fc2b11c1eff38b362de710bcffb5016",
│ │ + "sha256:50bec6d35e6b1aaeb17f7c4e2b9374ebf95a8975d57863546fa83e8d31bdb8c4",
│ │ + "sha256:55cad9a6df1e2a1d62063f79d0881a414a906a6962bc160ac968cc03ed3efcfb",
│ │ + "sha256:5662ad4e4e84f1eaa8efce5da695c5d2e229c563f9d5ce5b0113f71321bcf753",
│ │ + "sha256:59b4dc008f98fc6ee2bb4fd7fc786a8d70000d058c2bbe2698275bc53a8d3fa7",
│ │ + "sha256:73e1ffefe05e4ccd7bcea61af76f36077b914f92b76f95ccf00b0c1b9186f3f9",
│ │ + "sha256:a1f0fd46eba2d71ce1589f7e50a9e2ffaeb739fb2c11e8192aa2b45d5f6cc41f",
│ │ + "sha256:a2e85dc204556657661051ff4bab75a84e968669765c8a2cd425918699c3d0e8",
│ │ + "sha256:a5457d47dfff24882a21492e5815f891c0ca35fefae8aa742c6c263dac16ef1f",
│ │ + "sha256:a8dccd61d52a8dae4a825cdbb7735da530179fea472903eb871a5513b5abbfdc",
│ │ + "sha256:ae61af521ed676cf16ae94f30fe202781a38d7178b6b4ab622e4eec8cefaff42",
│ │ + "sha256:b012a5edb48288f77a63dba0840c92d0504aa215612da4541b7b42d849bc83a3",
│ │ + "sha256:d2c5cfa536227f57f97c92ac30c8109688ace8fa4ac086d19d0af47d134e2909",
│ │ + "sha256:d42b5796e20aacc9d15e66befb7a345454eef794fdb0737d1af593447c6c8f45",
│ │ + "sha256:dee54f5d30d775f525894d67b1495625dd9322945e7fee00731952e0368ff42d",
│ │ + "sha256:e070535507bd6aa07124258171be2ee8dfc19119c28ca94c9dfb7efd23564512",
│ │ + "sha256:e1ff2748c84d97b065cc95429814cdba39bcbd77c9c85c89344b317dc0d9cbff",
│ │ + "sha256:ed851c75d1e0e043cbf5ca9a8e1b13c4c90f3fbd863dacb01c0808e2b5204201"
│ │ ],
│ │ - "version": "==1.11.5"
│ │ + "version": "==1.12.3"
│ │ },
│ │ "chardet": {
│ │ "hashes": [
│ │ "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
│ │ "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
│ │ ],
│ │ "version": "==3.0.4"
│ │ },
│ │ "click": {
│ │ "hashes": [
│ │ - "sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d",
│ │ - "sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b"
│ │ + "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13",
│ │ + "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"
│ │ ],
│ │ - "version": "==6.7"
│ │ - },
│ │ - "cmarkgfm": {
│ │ - "hashes": [
│ │ - "sha256:0186dccca79483e3405217993b83b914ba4559fe9a8396efc4eea56561b74061",
│ │ - "sha256:1a625afc6f62da428df96ec325dc30866cc5781520cbd904ff4ec44cf018171c",
│ │ - "sha256:275905bb371a99285c74931700db3f0c078e7603bed383e8cf1a09f3ee05a3de",
│ │ - "sha256:50098f1c4950722521f0671e54139e0edc1837d63c990cf0f3d2c49607bb51a2",
│ │ - "sha256:50ed116d0b60a07df0dc7b180c28569064b9d37d1578d4c9021cff04d725cb63",
│ │ - "sha256:61a72def110eed903cd1848245897bcb80d295cd9d13944d4f9f30cba5b76655",
│ │ - "sha256:64186fb75d973a06df0e6ea12879533b71f6e7ba1ab01ffee7fc3e7534758889",
│ │ - "sha256:665303d34d7f14f10d7b0651082f25ebf7107f29ef3d699490cac16cdc0fc8ce",
│ │ - "sha256:70b18f843aec58e4e64aadce48a897fe7c50426718b7753aaee399e72df64190",
│ │ - "sha256:761ee7b04d1caee2931344ac6bfebf37102ffb203b136b676b0a71a3f0ea3c87",
│ │ - "sha256:811527e9b7280b136734ed6cb6845e5fbccaeaa132ddf45f0246cbe544016957",
│ │ - "sha256:987b0e157f70c72a84f3c2f9ef2d7ab0f26c08f2bf326c12c087ff9eebcb3ff5",
│ │ - "sha256:9fc6a2183d0a9b0974ec7cdcdad42bd78a3be674cc3e65f87dd694419b3b0ab7",
│ │ - "sha256:c573ea89dd95d41b6d8cf36799c34b6d5b1eac4aed0212dee0f0a11fb7b01e8f",
│ │ - "sha256:c5f1b9e8592d2c448c44e6bc0d91224b16ea5f8293908b1561de1f6d2d0658b1",
│ │ - "sha256:cbe581456357d8f0674d6a590b1aaf46c11d01dd0a23af147a51a798c3818034",
│ │ - "sha256:cf219bec69e601fe27e3974b7307d2f06082ab385d42752738ad2eb630a47d65",
│ │ - "sha256:d08bad67fa18f7e8ff738c090628ee0cbf0505d74a991c848d6d04abfe67b697",
│ │ - "sha256:d6f716d7b1182bf35862b5065112f933f43dd1aa4f8097c9bcfb246f71528a34",
│ │ - "sha256:e08e479102627641c7cb4ece421c6ed4124820b1758765db32201136762282d9",
│ │ - "sha256:e20ac21418af0298437d29599f7851915497ce9f2866bc8e86b084d8911ee061",
│ │ - "sha256:e25f53c37e319241b9a412382140dffac98ca756ba8f360ac7ab5e30cad9670a",
│ │ - "sha256:f20900f16377f2109783ae9348d34bc80530808439591c3d3df73d5c7ef1a00c"
│ │ - ],
│ │ - "version": "==0.4.2"
│ │ + "version": "==7.0"
│ │ },
│ │ "codecov": {
│ │ "hashes": [
│ │ "sha256:8ed8b7c6791010d359baed66f84f061bba5bd41174bf324c31311e8737602788",
│ │ "sha256:ae00d68e18d8a20e9c3288ba3875ae03db3a8e892115bf9b83ef20507732bed4"
│ │ ],
│ │ "index": "pypi",
│ │ "version": "==2.0.15"
│ │ },
│ │ "configparser": {
│ │ "hashes": [
│ │ - "sha256:5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a"
│ │ + "sha256:8be81d89d6e7b4c0d4e44bcc525845f6da25821de80cb5e06e7e0238a2899e32",
│ │ + "sha256:da60d0014fd8c55eb48c1c5354352e363e2d30bbf7057e5e171a468390184c75"
│ │ ],
│ │ "markers": "python_version < '3.2'",
│ │ - "version": "==3.5.0"
│ │ + "version": "==3.7.4"
│ │ },
│ │ "contextlib2": {
│ │ "hashes": [
│ │ "sha256:509f9419ee91cdd00ba34443217d5ca51f5a364a404e1dce9e8979cea969ca48",
│ │ "sha256:f5260a6e679d2ff42ec91ec5252f4eeffdcf21053db9113bd0a8e4d953769c00"
│ │ ],
│ │ "markers": "python_version < '3.2'",
│ │ "version": "==0.5.5"
│ │ },
│ │ "coverage": {
│ │ "hashes": [
│ │ - "sha256:03481e81d558d30d230bc12999e3edffe392d244349a90f4ef9b88425fac74ba",
│ │ - "sha256:0b136648de27201056c1869a6c0d4e23f464750fd9a9ba9750b8336a244429ed",
│ │ - "sha256:104ab3934abaf5be871a583541e8829d6c19ce7bde2923b2751e0d3ca44db60a",
│ │ - "sha256:15b111b6a0f46ee1a485414a52a7ad1d703bdf984e9ed3c288a4414d3871dcbd",
│ │ - "sha256:198626739a79b09fa0a2f06e083ffd12eb55449b5f8bfdbeed1df4910b2ca640",
│ │ - "sha256:1c383d2ef13ade2acc636556fd544dba6e14fa30755f26812f54300e401f98f2",
│ │ - "sha256:28b2191e7283f4f3568962e373b47ef7f0392993bb6660d079c62bd50fe9d162",
│ │ - "sha256:2eb564bbf7816a9d68dd3369a510be3327f1c618d2357fa6b1216994c2e3d508",
│ │ - "sha256:337ded681dd2ef9ca04ef5d93cfc87e52e09db2594c296b4a0a3662cb1b41249",
│ │ - "sha256:3a2184c6d797a125dca8367878d3b9a178b6fdd05fdc2d35d758c3006a1cd694",
│ │ - "sha256:3c79a6f7b95751cdebcd9037e4d06f8d5a9b60e4ed0cd231342aa8ad7124882a",
│ │ - "sha256:3d72c20bd105022d29b14a7d628462ebdc61de2f303322c0212a054352f3b287",
│ │ - "sha256:3eb42bf89a6be7deb64116dd1cc4b08171734d721e7a7e57ad64cc4ef29ed2f1",
│ │ - "sha256:4635a184d0bbe537aa185a34193898eee409332a8ccb27eea36f262566585000",
│ │ - "sha256:56e448f051a201c5ebbaa86a5efd0ca90d327204d8b059ab25ad0f35fbfd79f1",
│ │ - "sha256:5a13ea7911ff5e1796b6d5e4fbbf6952381a611209b736d48e675c2756f3f74e",
│ │ - "sha256:69bf008a06b76619d3c3f3b1983f5145c75a305a0fea513aca094cae5c40a8f5",
│ │ - "sha256:6bc583dc18d5979dc0f6cec26a8603129de0304d5ae1f17e57a12834e7235062",
│ │ - "sha256:701cd6093d63e6b8ad7009d8a92425428bc4d6e7ab8d75efbb665c806c1d79ba",
│ │ - "sha256:7608a3dd5d73cb06c531b8925e0ef8d3de31fed2544a7de6c63960a1e73ea4bc",
│ │ - "sha256:76ecd006d1d8f739430ec50cc872889af1f9c1b6b8f48e29941814b09b0fd3cc",
│ │ - "sha256:7aa36d2b844a3e4a4b356708d79fd2c260281a7390d678a10b91ca595ddc9e99",
│ │ - "sha256:7d3f553904b0c5c016d1dad058a7554c7ac4c91a789fca496e7d8347ad040653",
│ │ - "sha256:7e1fe19bd6dce69d9fd159d8e4a80a8f52101380d5d3a4d374b6d3eae0e5de9c",
│ │ - "sha256:8c3cb8c35ec4d9506979b4cf90ee9918bc2e49f84189d9bf5c36c0c1119c6558",
│ │ - "sha256:9d6dd10d49e01571bf6e147d3b505141ffc093a06756c60b053a859cb2128b1f",
│ │ - "sha256:9e112fcbe0148a6fa4f0a02e8d58e94470fc6cb82a5481618fea901699bf34c4",
│ │ - "sha256:ac4fef68da01116a5c117eba4dd46f2e06847a497de5ed1d64bb99a5fda1ef91",
│ │ - "sha256:b8815995e050764c8610dbc82641807d196927c3dbed207f0a079833ffcf588d",
│ │ - "sha256:be6cfcd8053d13f5f5eeb284aa8a814220c3da1b0078fa859011c7fffd86dab9",
│ │ - "sha256:c1bb572fab8208c400adaf06a8133ac0712179a334c09224fb11393e920abcdd",
│ │ - "sha256:de4418dadaa1c01d497e539210cb6baa015965526ff5afc078c57ca69160108d",
│ │ - "sha256:e05cb4d9aad6233d67e0541caa7e511fa4047ed7750ec2510d466e806e0255d6",
│ │ - "sha256:e4d96c07229f58cb686120f168276e434660e4358cc9cf3b0464210b04913e77",
│ │ - "sha256:f3f501f345f24383c0000395b26b726e46758b71393267aeae0bd36f8b3ade80",
│ │ - "sha256:f8a923a85cb099422ad5a2e345fe877bbc89a8a8b23235824a93488150e45f6e"
│ │ + "sha256:0c5fe441b9cfdab64719f24e9684502a59432df7570521563d7b1aff27ac755f",
│ │ + "sha256:2b412abc4c7d6e019ce7c27cbc229783035eef6d5401695dccba80f481be4eb3",
│ │ + "sha256:3684fabf6b87a369017756b551cef29e505cb155ddb892a7a29277b978da88b9",
│ │ + "sha256:39e088da9b284f1bd17c750ac672103779f7954ce6125fd4382134ac8d152d74",
│ │ + "sha256:3c205bc11cc4fcc57b761c2da73b9b72a59f8d5ca89979afb0c1c6f9e53c7390",
│ │ + "sha256:42692db854d13c6c5e9541b6ffe0fe921fe16c9c446358d642ccae1462582d3b",
│ │ + "sha256:465ce53a8c0f3a7950dfb836438442f833cf6663d407f37d8c52fe7b6e56d7e8",
│ │ + "sha256:48020e343fc40f72a442c8a1334284620f81295256a6b6ca6d8aa1350c763bbe",
│ │ + "sha256:4ec30ade438d1711562f3786bea33a9da6107414aed60a5daa974d50a8c2c351",
│ │ + "sha256:5296fc86ab612ec12394565c500b412a43b328b3907c0d14358950d06fd83baf",
│ │ + "sha256:5f61bed2f7d9b6a9ab935150a6b23d7f84b8055524e7be7715b6513f3328138e",
│ │ + "sha256:6899797ac384b239ce1926f3cb86ffc19996f6fa3a1efbb23cb49e0c12d8c18c",
│ │ + "sha256:68a43a9f9f83693ce0414d17e019daee7ab3f7113a70c79a3dd4c2f704e4d741",
│ │ + "sha256:6b8033d47fe22506856fe450470ccb1d8ba1ffb8463494a15cfc96392a288c09",
│ │ + "sha256:7ad7536066b28863e5835e8cfeaa794b7fe352d99a8cded9f43d1161be8e9fbd",
│ │ + "sha256:7bacb89ccf4bedb30b277e96e4cc68cd1369ca6841bde7b005191b54d3dd1034",
│ │ + "sha256:839dc7c36501254e14331bcb98b27002aa415e4af7ea039d9009409b9d2d5420",
│ │ + "sha256:8e679d1bde5e2de4a909efb071f14b472a678b788904440779d2c449c0355b27",
│ │ + "sha256:8f9a95b66969cdea53ec992ecea5406c5bd99c9221f539bca1e8406b200ae98c",
│ │ + "sha256:932c03d2d565f75961ba1d3cec41ddde00e162c5b46d03f7423edcb807734eab",
│ │ + "sha256:93f965415cc51604f571e491f280cff0f5be35895b4eb5e55b47ae90c02a497b",
│ │ + "sha256:988529edadc49039d205e0aa6ce049c5ccda4acb2d6c3c5c550c17e8c02c05ba",
│ │ + "sha256:998d7e73548fe395eeb294495a04d38942edb66d1fa61eb70418871bc621227e",
│ │ + "sha256:9de60893fb447d1e797f6bf08fdf0dbcda0c1e34c1b06c92bd3a363c0ea8c609",
│ │ + "sha256:9e80d45d0c7fcee54e22771db7f1b0b126fb4a6c0a2e5afa72f66827207ff2f2",
│ │ + "sha256:a545a3dfe5082dc8e8c3eb7f8a2cf4f2870902ff1860bd99b6198cfd1f9d1f49",
│ │ + "sha256:a5d8f29e5ec661143621a8f4de51adfb300d7a476224156a39a392254f70687b",
│ │ + "sha256:a9abc8c480e103dc05d9b332c6cc9fb1586330356fc14f1aa9c0ca5745097d19",
│ │ + "sha256:aca06bfba4759bbdb09bf52ebb15ae20268ee1f6747417837926fae990ebc41d",
│ │ + "sha256:bb23b7a6fd666e551a3094ab896a57809e010059540ad20acbeec03a154224ce",
│ │ + "sha256:bfd1d0ae7e292105f29d7deaa9d8f2916ed8553ab9d5f39ec65bcf5deadff3f9",
│ │ + "sha256:c22ab9f96cbaff05c6a84e20ec856383d27eae09e511d3e6ac4479489195861d",
│ │ + "sha256:c62ca0a38958f541a73cf86acdab020c2091631c137bd359c4f5bddde7b75fd4",
│ │ + "sha256:c709d8bda72cf4cd348ccec2a4881f2c5848fd72903c185f363d361b2737f773",
│ │ + "sha256:c968a6aa7e0b56ecbd28531ddf439c2ec103610d3e2bf3b75b813304f8cb7723",
│ │ + "sha256:ca58eba39c68010d7e87a823f22a081b5290e3e3c64714aac3c91481d8b34d22",
│ │ + "sha256:df785d8cb80539d0b55fd47183264b7002077859028dfe3070cf6359bf8b2d9c",
│ │ + "sha256:f406628ca51e0ae90ae76ea8398677a921b36f0bd71aab2099dfed08abd0322f",
│ │ + "sha256:f46087bbd95ebae244a0eda01a618aff11ec7a069b15a3ef8f6b520db523dcf1",
│ │ + "sha256:f8019c5279eb32360ca03e9fac40a12667715546eed5c5eb59eb381f2f501260",
│ │ + "sha256:fc5f4d209733750afd2714e9109816a29500718b32dd9a5db01c0cb3a019b96a"
│ │ ],
│ │ - "version": "==4.5.1"
│ │ + "version": "==4.5.3"
│ │ },
│ │ "decorator": {
│ │ "hashes": [
│ │ - "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82",
│ │ - "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c"
│ │ + "sha256:86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de",
│ │ + "sha256:f069f3a01830ca754ba5258fde2278454a0b5b79e0d7f5c13b3b97e57d4acff6"
│ │ ],
│ │ - "version": "==4.3.0"
│ │ + "version": "==4.4.0"
│ │ },
│ │ "detox": {
│ │ "hashes": [
│ │ - "sha256:cb24895a0e4f95c0bcb1087a201c453600e075568af00848e91518fb2b984568",
│ │ - "sha256:f3119bca4444f1e8a1d7189b064c52cfdd9a89ad3a1c921d78b49bf7f5dc5b1b"
│ │ + "sha256:e650f95f0c7f5858578014b3b193e5dac76c89285c1bbe4bae598fd641bf9cd3",
│ │ + "sha256:fcad009e2d20ce61176dc826a2c1562bd712fe53953ca603b455171cf819080f"
│ │ ],
│ │ "index": "pypi",
│ │ - "version": "==0.12"
│ │ + "version": "==0.19"
│ │ + },
│ │ + "dnspython": {
│ │ + "hashes": [
│ │ + "sha256:36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01",
│ │ + "sha256:f69c21288a962f4da86e56c4905b49d11aba7938d3d740e80d9e366ee4f1632d"
│ │ + ],
│ │ + "version": "==1.16.0"
│ │ },
│ │ "docutils": {
│ │ "hashes": [
│ │ "sha256:02aec4bd92ab067f6ff27a38a38a41173bf01bed8f89157768c1573f53e474a6",
│ │ "sha256:51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274",
│ │ "sha256:7a4bd47eaf6596e1295ecb11361139febe29b084a87bf005bf899f9a42edc3c6"
│ │ ],
│ │ "index": "pypi",
│ │ "version": "==0.14"
│ │ },
│ │ + "entrypoints": {
│ │ + "hashes": [
│ │ + "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19",
│ │ + "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451"
│ │ + ],
│ │ + "version": "==0.3"
│ │ + },
│ │ "enum34": {
│ │ "hashes": [
│ │ "sha256:2d81cbbe0e73112bdfe6ef8576f2238f2ba27dd0d55752a776c41d38b7da2850",
│ │ "sha256:644837f692e5f550741432dd3f223bbb9852018674981b1664e5dc339387588a",
│ │ "sha256:6bd0f6ad48ec2aa117d3d141940d484deccda84d4fcd884f5c3d93c23ecd8c79",
│ │ "sha256:8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1"
│ │ ],
│ │ "markers": "python_version < '3.4'",
│ │ "version": "==1.1.6"
│ │ },
│ │ "eventlet": {
│ │ "hashes": [
│ │ - "sha256:06cffa55b335cc4fc32d0079242a81e8a9cddf2581d64d5f0543e2d412b26ca8",
│ │ - "sha256:554a50dad7abee0a9775b0780ce9d9c0bd9123dda4743c46d4314170267c6c47"
│ │ + "sha256:c584163e006e613707e224552fafc63e4e0aa31d7de0ab18b481ac0b385254c8",
│ │ + "sha256:d9d31a3c8dbcedbcce5859a919956d934685b17323fc80e1077cb344a2ffa68d"
│ │ ],
│ │ - "version": "==0.23.0"
│ │ + "version": "==0.24.1"
│ │ },
│ │ "execnet": {
│ │ "hashes": [
│ │ - "sha256:a7a84d5fa07a089186a329528f127c9d73b9de57f1a1131b82bb5320ee651f6a",
│ │ - "sha256:fc155a6b553c66c838d1a22dba1dc9f5f505c43285a878c6f74a79c024750b83"
│ │ + "sha256:027ee5d961afa01e97b90d6ccc34b4ed976702bc58e7f092b3c513ea288cb6d2",
│ │ + "sha256:752a3786f17416d491f833a29217dda3ea4a471fc5269c492eebcee8cc4772d3"
│ │ + ],
│ │ + "version": "==1.6.0"
│ │ + },
│ │ + "filelock": {
│ │ + "hashes": [
│ │ + "sha256:b8d5ca5ca1c815e1574aee746650ea7301de63d87935b3463d26368b76e31633",
│ │ + "sha256:d610c1bb404daf85976d7a82eb2ada120f04671007266b708606565dd03b5be6"
│ │ ],
│ │ - "version": "==1.5.0"
│ │ + "version": "==3.0.10"
│ │ },
│ │ "flake8": {
│ │ "hashes": [
│ │ - "sha256:7253265f7abd8b313e3892944044a365e3f4ac3fcdcfb4298f55ee9ddf188ba0",
│ │ - "sha256:c7841163e2b576d435799169b78703ad6ac1bbb0f199994fc05f700b2a90ea37"
│ │ + "sha256:859996073f341f2670741b51ec1e67a01da142831aa1fdc6242dbf88dffbe661",
│ │ + "sha256:a796a115208f5c03b18f332f7c11729812c8c3ded6c46319c59b53efd3819da8"
│ │ ],
│ │ "index": "pypi",
│ │ - "version": "==3.5.0"
│ │ + "version": "==3.7.7"
│ │ },
│ │ "flask": {
│ │ "hashes": [
│ │ "sha256:2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48",
│ │ "sha256:a080b744b7e345ccfcbc77954861cb05b3c63786e93f2b3875e0913d44b43f05"
│ │ ],
│ │ "version": "==1.0.2"
│ │ },
│ │ "funcsigs": {
│ │ "hashes": [
│ │ "sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca",
│ │ "sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50"
│ │ ],
│ │ - "markers": "python_version < '3.3'",
│ │ + "markers": "python_version < '3.0'",
│ │ "version": "==1.0.2"
│ │ },
│ │ - "future": {
│ │ + "functools32": {
│ │ "hashes": [
│ │ - "sha256:e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
│ │ + "sha256:89d824aa6c358c421a234d7f9ee0bd75933a67c29588ce50aaa3acdf4d403fa0",
│ │ + "sha256:f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d"
│ │ ],
│ │ - "version": "==0.16.0"
│ │ + "markers": "python_version < '3.2'",
│ │ + "version": "==3.2.3.post2"
│ │ },
│ │ "greenlet": {
│ │ "hashes": [
│ │ - "sha256:09ef2636ea35782364c830f07127d6c7a70542b178268714a9a9ba16318e7e8b",
│ │ - "sha256:0fef83d43bf87a5196c91e73cb9772f945a4caaff91242766c5916d1dd1381e4",
│ │ - "sha256:1b7df09c6598f5cfb40f843ade14ed1eb40596e75cd79b6fa2efc750ba01bb01",
│ │ - "sha256:1fff21a2da5f9e03ddc5bd99131a6b8edf3d7f9d6bc29ba21784323d17806ed7",
│ │ - "sha256:42118bf608e0288e35304b449a2d87e2ba77d1e373e8aa221ccdea073de026fa",
│ │ - "sha256:50643fd6d54fd919f9a0a577c5f7b71f5d21f0959ab48767bd4bb73ae0839500",
│ │ - "sha256:58798b5d30054bb4f6cf0f712f08e6092df23a718b69000786634a265e8911a9",
│ │ - "sha256:5b49b3049697aeae17ef7bf21267e69972d9e04917658b4e788986ea5cc518e8",
│ │ - "sha256:75c413551a436b462d5929255b6dc9c0c3c2b25cbeaee5271a56c7fda8ca49c0",
│ │ - "sha256:769b740aeebd584cd59232be84fdcaf6270b8adc356596cdea5b2152c82caaac",
│ │ - "sha256:ad2383d39f13534f3ca5c48fe1fc0975676846dc39c2cece78c0f1f9891418e0",
│ │ - "sha256:b417bb7ff680d43e7bd7a13e2e08956fa6acb11fd432f74c97b7664f8bdb6ec1",
│ │ - "sha256:b6ef0cabaf5a6ecb5ac122e689d25ba12433a90c7b067b12e5f28bdb7fb78254",
│ │ - "sha256:c2de19c88bdb0366c976cc125dca1002ec1b346989d59524178adfd395e62421",
│ │ - "sha256:c7b04a6dc74087b1598de8d713198de4718fa30ec6cbb84959b26426c198e041",
│ │ - "sha256:f8f2a0ae8de0b49c7b5b2daca4f150fdd9c1173e854df2cce3b04123244f9f45",
│ │ - "sha256:fcfadaf4bf68a27e5dc2f42cbb2f4b4ceea9f05d1d0b8f7787e640bed2801634"
│ │ + "sha256:000546ad01e6389e98626c1367be58efa613fa82a1be98b0c6fc24b563acc6d0",
│ │ + "sha256:0d48200bc50cbf498716712129eef819b1729339e34c3ae71656964dac907c28",
│ │ + "sha256:23d12eacffa9d0f290c0fe0c4e81ba6d5f3a5b7ac3c30a5eaf0126bf4deda5c8",
│ │ + "sha256:37c9ba82bd82eb6a23c2e5acc03055c0e45697253b2393c9a50cef76a3985304",
│ │ + "sha256:51503524dd6f152ab4ad1fbd168fc6c30b5795e8c70be4410a64940b3abb55c0",
│ │ + "sha256:8041e2de00e745c0e05a502d6e6db310db7faa7c979b3a5877123548a4c0b214",
│ │ + "sha256:81fcd96a275209ef117e9ec91f75c731fa18dcfd9ffaa1c0adbdaa3616a86043",
│ │ + "sha256:853da4f9563d982e4121fed8c92eea1a4594a2299037b3034c3c898cb8e933d6",
│ │ + "sha256:8b4572c334593d449113f9dc8d19b93b7b271bdbe90ba7509eb178923327b625",
│ │ + "sha256:9416443e219356e3c31f1f918a91badf2e37acf297e2fa13d24d1cc2380f8fbc",
│ │ + "sha256:9854f612e1b59ec66804931df5add3b2d5ef0067748ea29dc60f0efdcda9a638",
│ │ + "sha256:99a26afdb82ea83a265137a398f570402aa1f2b5dfb4ac3300c026931817b163",
│ │ + "sha256:a19bf883b3384957e4a4a13e6bd1ae3d85ae87f4beb5957e35b0be287f12f4e4",
│ │ + "sha256:a9f145660588187ff835c55a7d2ddf6abfc570c2651c276d3d4be8a2766db490",
│ │ + "sha256:ac57fcdcfb0b73bb3203b58a14501abb7e5ff9ea5e2edfa06bb03035f0cff248",
│ │ + "sha256:bcb530089ff24f6458a81ac3fa699e8c00194208a724b644ecc68422e1111939",
│ │ + "sha256:beeabe25c3b704f7d56b573f7d2ff88fc99f0138e43480cecdfcaa3b87fe4f87",
│ │ + "sha256:d634a7ea1fc3380ff96f9e44d8d22f38418c1c381d5fac680b272d7d90883720",
│ │ + "sha256:d97b0661e1aead761f0ded3b769044bb00ed5d33e1ec865e891a8b128bf7c656"
│ │ ],
│ │ - "version": "==0.4.13"
│ │ - },
│ │ - "html5lib": {
│ │ - "hashes": [
│ │ - "sha256:20b159aa3badc9d5ee8f5c647e5efd02ed2a66ab8d354930bd9ff139fc1dc0a3",
│ │ - "sha256:66cb0dcfdbbc4f9c3ba1a63fdb511ffdbd4f513b2b6d81b80cd26ce6b3fb3736"
│ │ - ],
│ │ - "version": "==1.0.1"
│ │ + "version": "==0.4.15"
│ │ },
│ │ "httpbin": {
│ │ "hashes": [
│ │ "sha256:7a04b5904c80b7aa04dd0a6af6520d68ce17a5db175e66a64b971f8e93d73a26",
│ │ "sha256:cbb37790c91575f4f15757f42ad41d9f729eb227d5edbe89e4ec175486db8dfa"
│ │ ],
│ │ "index": "pypi",
│ │ "version": "==0.7.0"
│ │ },
│ │ "idna": {
│ │ "hashes": [
│ │ - "sha256:2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f",
│ │ - "sha256:8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4"
│ │ + "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407",
│ │ + "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"
│ │ ],
│ │ - "version": "==2.6"
│ │ + "version": "==2.8"
│ │ },
│ │ "imagesize": {
│ │ "hashes": [
│ │ - "sha256:3620cc0cadba3f7475f9940d22431fc4d407269f1be59ec9b8edcca26440cf18",
│ │ - "sha256:5b326e4678b6925158ccc66a9fa3122b6106d7c876ee32d7de6ce59385b96315"
│ │ + "sha256:3f349de3eb99145973fefb7dbe38554414e5c30abd0c8e4b970a7c9d09f3a1d8",
│ │ + "sha256:f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5"
│ │ ],
│ │ - "version": "==1.0.0"
│ │ + "version": "==1.1.0"
│ │ },
│ │ "itsdangerous": {
│ │ "hashes": [
│ │ - "sha256:cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519"
│ │ + "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19",
│ │ + "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"
│ │ ],
│ │ - "version": "==0.24"
│ │ + "version": "==1.1.0"
│ │ },
│ │ "jinja2": {
│ │ "hashes": [
│ │ - "sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd",
│ │ - "sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4"
│ │ + "sha256:065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013",
│ │ + "sha256:14dd6caf1527abb21f08f86c784eac40853ba93edb79552aa1e4b8aef1b61c7b"
│ │ ],
│ │ - "version": "==2.10"
│ │ + "version": "==2.10.1"
│ │ },
│ │ "markupsafe": {
│ │ "hashes": [
│ │ - "sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665"
│ │ + "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
│ │ + "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
│ │ + "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
│ │ + "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
│ │ + "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
│ │ + "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
│ │ + "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
│ │ + "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
│ │ + "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
│ │ + "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
│ │ + "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
│ │ + "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
│ │ + "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
│ │ + "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
│ │ + "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
│ │ + "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
│ │ + "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
│ │ + "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
│ │ + "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
│ │ + "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
│ │ + "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
│ │ + "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
│ │ + "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
│ │ + "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
│ │ + "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
│ │ + "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
│ │ + "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
│ │ + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"
│ │ ],
│ │ - "version": "==1.0"
│ │ + "version": "==1.1.1"
│ │ },
│ │ "mccabe": {
│ │ "hashes": [
│ │ "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42",
│ │ "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"
│ │ ],
│ │ "version": "==0.6.1"
│ │ },
│ │ "mock": {
│ │ "hashes": [
│ │ - "sha256:5ce3c71c5545b472da17b72268978914d0252980348636840bd34a00b5cc96c1",
│ │ - "sha256:b158b6df76edd239b8208d481dc46b6afd45a846b7812ff0ce58971cf5bc8bba"
│ │ + "sha256:83657d894c90d5681d62155c82bda9c1187827525880eda8ff5df4ec813437c3",
│ │ + "sha256:d157e52d4e5b938c550f39eb2fd15610db062441a9c2747d3dbfa9298211d0f8"
│ │ ],
│ │ "markers": "python_version < '3.0'",
│ │ - "version": "==2.0.0"
│ │ + "version": "==3.0.5"
│ │ + },
│ │ + "monotonic": {
│ │ + "hashes": [
│ │ + "sha256:23953d55076df038541e648a53676fb24980f7a1be290cdda21300b3bc21dfb0",
│ │ + "sha256:552a91f381532e33cbd07c6a2655a21908088962bb8fa7239ecbcc6ad1140cc7"
│ │ + ],
│ │ + "version": "==1.5"
│ │ },
│ │ "more-itertools": {
│ │ "hashes": [
│ │ - "sha256:0dd8f72eeab0d2c3bd489025bb2f6a1b8342f9b198f6fc37b52d15cfa4531fea",
│ │ - "sha256:11a625025954c20145b37ff6309cd54e39ca94f72f6bb9576d1195db6fa2442e",
│ │ - "sha256:c9ce7eccdcb901a2c75d326ea134e0886abfbea5f93e91cc95de9507c0816c44"
│ │ + "sha256:38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4",
│ │ + "sha256:c0a5785b1109a6bd7fac76d6837fd1feca158e54e521ccd2ae8bfe393cc9d4fc",
│ │ + "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9"
│ │ ],
│ │ - "version": "==4.1.0"
│ │ + "version": "==5.0.0"
│ │ },
│ │ - "pbr": {
│ │ + "pathlib2": {
│ │ "hashes": [
│ │ - "sha256:680bf5ba9b28dd56e08eb7c267991a37c7a5f90a92c2e07108829931a50ff80a",
│ │ - "sha256:6874feb22334a1e9a515193cba797664e940b763440c88115009ec323a7f2df5"
│ │ + "sha256:25199318e8cc3c25dcb45cbe084cc061051336d5a9ea2a12448d3d8cb748f742",
│ │ + "sha256:5887121d7f7df3603bca2f710e7219f3eca0eb69e0b7cc6e0a022e155ac931a7"
│ │ ],
│ │ - "version": "==4.0.3"
│ │ + "markers": "python_version < '3.6'",
│ │ + "version": "==2.3.3"
│ │ },
│ │ "pluggy": {
│ │ "hashes": [
│ │ - "sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff",
│ │ - "sha256:d345c8fe681115900d6da8d048ba67c25df42973bda370783cd58826442dcd7c",
│ │ - "sha256:e160a7fcf25762bb60efc7e171d4497ff1d8d2d75a3d0df7a21b76821ecbf5c5"
│ │ + "sha256:25a1bc1d148c9a640211872b4ff859878d422bccb59c9965e04eed468a0aa180",
│ │ + "sha256:964cedd2b27c492fbf0b7f58b3284a09cf7f99b0f715941fb24a439b3af1bd1a"
│ │ ],
│ │ - "version": "==0.6.0"
│ │ + "version": "==0.11.0"
│ │ },
│ │ "py": {
│ │ "hashes": [
│ │ - "sha256:29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881",
│ │ - "sha256:983f77f3331356039fdd792e9220b7b8ee1aa6bd2b25f567a963ff1de5a64f6a"
│ │ + "sha256:64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa",
│ │ + "sha256:dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53"
│ │ ],
│ │ - "version": "==1.5.3"
│ │ + "version": "==1.8.0"
│ │ },
│ │ "pycodestyle": {
│ │ "hashes": [
│ │ - "sha256:682256a5b318149ca0d2a9185d365d8864a768a28db66a84a2ea946bcc426766",
│ │ - "sha256:6c4245ade1edfad79c3446fadfc96b0de2759662dc29d07d80a6f27ad1ca6ba9"
│ │ + "sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56",
│ │ + "sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c"
│ │ ],
│ │ - "version": "==2.3.1"
│ │ + "version": "==2.5.0"
│ │ },
│ │ "pycparser": {
│ │ "hashes": [
│ │ - "sha256:99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226"
│ │ + "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3"
│ │ ],
│ │ - "version": "==2.18"
│ │ + "version": "==2.19"
│ │ },
│ │ "pyflakes": {
│ │ "hashes": [
│ │ - "sha256:08bd6a50edf8cffa9fa09a463063c425ecaaf10d1eb0335a7e8b1401aef89e6f",
│ │ - "sha256:8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805"
│ │ + "sha256:17dbeb2e3f4d772725c777fabc446d5634d1038f234e77343108ce445ea69ce0",
│ │ + "sha256:d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2"
│ │ ],
│ │ - "version": "==1.6.0"
│ │ + "version": "==2.1.1"
│ │ },
│ │ "pygments": {
│ │ "hashes": [
│ │ - "sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d",
│ │ - "sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc"
│ │ + "sha256:31cba6ffb739f099a85e243eff8cb717089fdd3c7300767d9fc34cb8e1b065f5",
│ │ + "sha256:5ad302949b3c98dd73f8d9fcdc7e9cb592f120e32a18e23efd7f3dc51194472b"
│ │ ],
│ │ - "version": "==2.2.0"
│ │ + "version": "==2.4.0"
│ │ },
│ │ "pysocks": {
│ │ "hashes": [
│ │ - "sha256:3fe52c55890a248676fd69dc9e3c4e811718b777834bcaab7a8125cf9deac672"
│ │ + "sha256:15d38914b60dbcb231d276f64882a20435c049450160e953ca7d313d1405f16f",
│ │ + "sha256:32238918ac0f19e9fd870a8692ac9bd14f5e8752b3c62624cda5851424642210",
│ │ + "sha256:d9031ea45fdfacbe59a99273e9f0448ddb33c1580fe3831c1b09557c5718977c"
│ │ ],
│ │ - "version": "==1.6.8"
│ │ + "version": "==1.7.0"
│ │ },
│ │ "pytest": {
│ │ "hashes": [
│ │ - "sha256:54713b26c97538db6ff0703a12b19aeaeb60b5e599de542e7fca0ec83b9038e8",
│ │ - "sha256:829230122facf05a5f81a6d4dfe6454a04978ea3746853b2b84567ecf8e5c526"
│ │ + "sha256:3f193df1cfe1d1609d4c583838bea3d532b18d6160fd3f55c9447fdca30848ec",
│ │ + "sha256:e246cf173c01169b9617fc07264b7b1316e78d7a650055235d6d897bc80d9660"
│ │ ],
│ │ "index": "pypi",
│ │ - "version": "==3.5.1"
│ │ + "version": "==3.10.1"
│ │ },
│ │ "pytest-cov": {
│ │ "hashes": [
│ │ - "sha256:03aa752cf11db41d281ea1d807d954c4eda35cfa1b21d6971966cc041bbf6e2d",
│ │ - "sha256:890fe5565400902b0c78b5357004aab1c814115894f4f21370e2433256a3eeec"
│ │ + "sha256:2b097cde81a302e1047331b48cadacf23577e431b61e9c6f49a1170bbe3d3da6",
│ │ + "sha256:e00ea4fdde970725482f1f35630d12f074e121a23801aabf2ae154ec6bdd343a"
│ │ ],
│ │ "index": "pypi",
│ │ - "version": "==2.5.1"
│ │ + "version": "==2.7.1"
│ │ },
│ │ "pytest-forked": {
│ │ "hashes": [
│ │ - "sha256:e4500cd0509ec4a26535f7d4112a8cc0f17d3a41c29ffd4eab479d2a55b30805",
│ │ - "sha256:f275cb48a73fc61a6710726348e1da6d68a978f0ec0c54ece5a5fae5977e5a08"
│ │ + "sha256:5fe33fbd07d7b1302c95310803a5e5726a4ff7f19d5a542b7ce57c76fed8135f",
│ │ + "sha256:d352aaced2ebd54d42a65825722cb433004b4446ab5d2044851d9cc7a00c9e38"
│ │ ],
│ │ - "version": "==0.2"
│ │ + "version": "==1.0.2"
│ │ },
│ │ "pytest-httpbin": {
│ │ "hashes": [
│ │ "sha256:8cd57e27418a7d7d205fcc9802eea246ed06170e3065abfa76c6d9b40553592c",
│ │ "sha256:d3919c5df0b644454129c0066a8ae62db40ac54bacb4cfd89d8cfa58615a4b42"
│ │ ],
│ │ "index": "pypi",
│ │ "version": "==0.3.0"
│ │ },
│ │ "pytest-mock": {
│ │ "hashes": [
│ │ - "sha256:53801e621223d34724926a5c98bd90e8e417ce35264365d39d6c896388dcc928",
│ │ - "sha256:d89a8209d722b8307b5e351496830d5cc5e192336003a485443ae9adeb7dd4c0"
│ │ + "sha256:43ce4e9dd5074993e7c021bb1c22cbb5363e612a2b5a76bc6d956775b10758b7",
│ │ + "sha256:5bf5771b1db93beac965a7347dc81c675ec4090cb841e49d9d34637a25c30568"
│ │ ],
│ │ "index": "pypi",
│ │ - "version": "==1.10.0"
│ │ + "version": "==1.10.4"
│ │ },
│ │ "pytest-xdist": {
│ │ "hashes": [
│ │ - "sha256:be2662264b035920ba740ed6efb1c816a83c8a22253df7766d129f6a7bfdbd35",
│ │ - "sha256:e8f5744acc270b3e7d915bdb4d5f471670f049b6fbd163d4cbd52203b075d30f"
│ │ + "sha256:96f893094c89fddeaff3f4783f4807f7aeb138be1a0d87a8805057b6af1201b5",
│ │ + "sha256:aab1402f2b063df48bf044b042707610f8fcc4c49d0eb9c10e79e30b3f26074f"
│ │ ],
│ │ "index": "pypi",
│ │ - "version": "==1.22.2"
│ │ + "version": "==1.25.0"
│ │ },
│ │ "pytz": {
│ │ "hashes": [
│ │ - "sha256:65ae0c8101309c45772196b21b74c46b2e5d11b6275c45d251b150d5da334555",
│ │ - "sha256:c06425302f2cf668f1bba7a0a03f3c1d34d4ebeef2c72003da308b3947c7f749"
│ │ + "sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda",
│ │ + "sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141"
│ │ ],
│ │ - "version": "==2018.4"
│ │ + "version": "==2019.1"
│ │ },
│ │ "raven": {
│ │ + "extras": [
│ │ + "flask"
│ │ + ],
│ │ "hashes": [
│ │ - "sha256:1c641e5ebc2d4185560608e253970ca0d4b98475f4edf67735015a415f9e1d48",
│ │ - "sha256:95aecf76c414facaddbb056f3e98c7936318123e467728f2e50b3a66b65a6ef7"
│ │ + "sha256:3fa6de6efa2493a7c827472e984ce9b020797d0da16f1db67197bcc23c8fae54",
│ │ + "sha256:44a13f87670836e153951af9a3c80405d36b43097db869a36e92809673692ce4"
│ │ ],
│ │ - "version": "==6.8.0"
│ │ + "version": "==6.10.0"
│ │ },
│ │ "readme-renderer": {
│ │ "hashes": [
│ │ - "sha256:bde909eaa84d65b7942f7e6998c8b427b90b568b2630ff0306f4ca75f6d2a909",
│ │ - "sha256:e7e43a7ba49f08c3cb660d0f2e25b561f6b10b36c63f029060230aab2dc2875e"
│ │ + "sha256:bb16f55b259f27f75f640acf5e00cf897845a8b3e4731b5c1a436e4b8529202f",
│ │ + "sha256:c8532b79afc0375a85f10433eca157d6b50f7d6990f337fa498c96cd4bfc203d"
│ │ ],
│ │ "index": "pypi",
│ │ - "version": "==20.0"
│ │ + "version": "==24.0"
│ │ },
│ │ "requests": {
│ │ + "editable": true,
│ │ + "extras": [
│ │ + "socks"
│ │ + ],
│ │ + "path": ".",
│ │ + "version": "==2.22.0"
│ │ + },
│ │ + "scandir": {
│ │ "hashes": [
│ │ - "sha256:6a1b267aa90cac58ac3a765d067950e7dbbf75b1da07e895d1f594193a40a38b",
│ │ - "sha256:9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e"
│ │ + "sha256:2586c94e907d99617887daed6c1d102b5ca28f1085f90446554abf1faf73123e",
│ │ + "sha256:2ae41f43797ca0c11591c0c35f2f5875fa99f8797cb1a1fd440497ec0ae4b022",
│ │ + "sha256:2b8e3888b11abb2217a32af0766bc06b65cc4a928d8727828ee68af5a967fa6f",
│ │ + "sha256:2c712840c2e2ee8dfaf36034080108d30060d759c7b73a01a52251cc8989f11f",
│ │ + "sha256:4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae",
│ │ + "sha256:67f15b6f83e6507fdc6fca22fedf6ef8b334b399ca27c6b568cbfaa82a364173",
│ │ + "sha256:7d2d7a06a252764061a020407b997dd036f7bd6a175a5ba2b345f0a357f0b3f4",
│ │ + "sha256:8c5922863e44ffc00c5c693190648daa6d15e7c1207ed02d6f46a8dcc2869d32",
│ │ + "sha256:92c85ac42f41ffdc35b6da57ed991575bdbe69db895507af88b9f499b701c188",
│ │ + "sha256:b24086f2375c4a094a6b51e78b4cf7ca16c721dcee2eddd7aa6494b42d6d519d",
│ │ + "sha256:cb925555f43060a1745d0a321cca94bcea927c50114b623d73179189a4e100ac"
│ │ ],
│ │ - "version": "==2.18.4"
│ │ + "markers": "python_version < '3.5'",
│ │ + "version": "==1.10.0"
│ │ },
│ │ "six": {
│ │ "hashes": [
│ │ - "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
│ │ - "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
│ │ + "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c",
│ │ + "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73"
│ │ ],
│ │ - "version": "==1.11.0"
│ │ + "version": "==1.12.0"
│ │ },
│ │ "snowballstemmer": {
│ │ "hashes": [
│ │ "sha256:919f26a68b2c17a7634da993d91339e288964f93c274f1343e3bbbe2096e1128",
│ │ "sha256:9f3bcd3c401c3e862ec0ebe6d2c069ebc012ce142cce209c098ccb5b09136e89"
│ │ ],
│ │ "version": "==1.2.1"
│ │ @@ -597,45 +677,62 @@
│ │ "hashes": [
│ │ "sha256:11f271e7a9398385ed730e90f0bb41dc3815294bdcd395b46ed2d033bc2e7d87",
│ │ "sha256:4064ea6c56feeb268838cb8fbbee507d0c3d5d92fa63a7df935a916b52c9e2f5"
│ │ ],
│ │ "index": "pypi",
│ │ "version": "==1.5.5"
│ │ },
│ │ + "toml": {
│ │ + "hashes": [
│ │ + "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c",
│ │ + "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e",
│ │ + "sha256:f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3"
│ │ + ],
│ │ + "version": "==0.10.0"
│ │ + },
│ │ "tox": {
│ │ "hashes": [
│ │ - "sha256:96efa09710a3daeeb845561ebbe1497641d9cef2ee0aea30db6969058b2bda2f",
│ │ - "sha256:9ee7de958a43806402a38c0d2aa07fa8553f4d2c20a15b140e9f771c2afeade0"
│ │ + "sha256:2a8d8a63660563e41e64e3b5b677e81ce1ffa5e2a93c2c565d3768c287445800",
│ │ + "sha256:edfca7809925f49bdc110d0a2d9966bbf35a0c25637216d9586e7a5c5de17bfb"
│ │ ],
│ │ "index": "pypi",
│ │ - "version": "==3.0.0"
│ │ + "version": "==3.6.1"
│ │ + },
│ │ + "typing": {
│ │ + "hashes": [
│ │ + "sha256:4027c5f6127a6267a435201981ba156de91ad0d1d98e9ddc2aa173453453492d",
│ │ + "sha256:57dcf675a99b74d64dacf6fba08fb17cf7e3d5fdff53d4a30ea2a5e7e52543d4",
│ │ + "sha256:a4c8473ce11a65999c8f59cb093e70686b6c84c98df58c1dae9b3b196089858a"
│ │ + ],
│ │ + "markers": "python_version < '3.5'",
│ │ + "version": "==3.6.6"
│ │ },
│ │ "urllib3": {
│ │ "hashes": [
│ │ - "sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b",
│ │ - "sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"
│ │ + "sha256:a53063d8b9210a7bdec15e7b272776b9d42b2fd6816401a0d43006ad2f9902db",
│ │ + "sha256:d363e3607d8de0c220d31950a8f38b18d5ba7c0830facd71a1c6b1036b7ce06c"
│ │ ],
│ │ - "version": "==1.22"
│ │ + "version": "==1.25.2"
│ │ },
│ │ "virtualenv": {
│ │ "hashes": [
│ │ - "sha256:1d7e241b431e7afce47e77f8843a276f652699d1fa4f93b9d8ce0076fd7b0b54",
│ │ - "sha256:e8e05d4714a1c51a2f5921e62f547fcb0f713ebbe959e0a7f585cc8bef71d11f"
│ │ + "sha256:99acaf1e35c7ccf9763db9ba2accbca2f4254d61d1912c5ee364f9cc4a8942a0",
│ │ + "sha256:fe51cdbf04e5d8152af06c075404745a7419de27495a83f0d72518ad50be3ce8"
│ │ ],
│ │ - "version": "==15.2.0"
│ │ + "version": "==16.6.0"
│ │ },
│ │ "webencodings": {
│ │ "hashes": [
│ │ "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78",
│ │ "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"
│ │ ],
│ │ "version": "==0.5.1"
│ │ },
│ │ "werkzeug": {
│ │ "hashes": [
│ │ - "sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c",
│ │ - "sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b"
│ │ + "sha256:865856ebb55c4dcd0630cdd8f3331a1847a819dda7e8c750d3db6f2aa6c0209c",
│ │ + "sha256:a0b915f0815982fb2a09161cb8f31708052d0951c3ba433ccc5e1aa276507ca6"
│ │ ],
│ │ - "version": "==0.14.1"
│ │ + "version": "==0.15.4"
│ │ }
│ │ }
│ │ }
│ --- requests-2.20.0/tests/test_structures.py
├── +++ requests-2.22.0/tests/test_structures.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests/sessions.py
├── +++ requests-2.22.0/requests/sessions.py
│┄ Files similar despite different names (difference score: 6)
│ │ @@ -15,15 +15,15 @@
│ │ from .auth import _basic_auth_str
│ │ from .compat import cookielib, is_py3, OrderedDict, urljoin, urlparse, Mapping
│ │ from .cookies import (
│ │ cookiejar_from_dict, extract_cookies_to_jar, RequestsCookieJar, merge_cookies)
│ │ from .models import Request, PreparedRequest, DEFAULT_REDIRECT_LIMIT
│ │ from .hooks import default_hooks, dispatch_hook
│ │ from ._internal_utils import to_native_string
│ │ -from .utils import to_key_val_list, default_headers
│ │ +from .utils import to_key_val_list, default_headers, DEFAULT_PORTS
│ │ from .exceptions import (
│ │ TooManyRedirects, InvalidSchema, ChunkedEncodingError, ContentDecodingError)
│ │
│ │ from .structures import CaseInsensitiveDict
│ │ from .adapters import HTTPAdapter
│ │
│ │ from .utils import (
│ │ @@ -124,16 +124,25 @@
│ │ # Special case: allow http -> https redirect when using the standard
│ │ # ports. This isn't specified by RFC 7235, but is kept to avoid
│ │ # breaking backwards compatibility with older versions of requests
│ │ # that allowed any redirects on the same host.
│ │ if (old_parsed.scheme == 'http' and old_parsed.port in (80, None)
│ │ and new_parsed.scheme == 'https' and new_parsed.port in (443, None)):
│ │ return False
│ │ +
│ │ + # Handle default port usage corresponding to scheme.
│ │ + changed_port = old_parsed.port != new_parsed.port
│ │ + changed_scheme = old_parsed.scheme != new_parsed.scheme
│ │ + default_port = (DEFAULT_PORTS.get(old_parsed.scheme, None), None)
│ │ + if (not changed_scheme and old_parsed.port in default_port
│ │ + and new_parsed.port in default_port):
│ │ + return False
│ │ +
│ │ # Standard case: root URI must match
│ │ - return old_parsed.port != new_parsed.port or old_parsed.scheme != new_parsed.scheme
│ │ + return changed_port or changed_scheme
│ │
│ │ def resolve_redirects(self, resp, req, stream=False, timeout=None,
│ │ verify=True, cert=None, proxies=None, yield_requests=False, **adapter_kwargs):
│ │ """Receives a Response. Returns a generator of Responses or Requests."""
│ │
│ │ hist = [] # keep track of history
│ --- requests-2.20.0/requests/exceptions.py
├── +++ requests-2.22.0/requests/exceptions.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/tests/test_utils.py
├── +++ requests-2.22.0/tests/test_utils.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests/packages.py
├── +++ requests-2.22.0/requests/packages.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/HISTORY.md
├── +++ requests-2.22.0/HISTORY.md
│┄ Files similar despite different names (difference score: 5)
│ │ @@ -4,14 +4,41 @@
│ │ dev
│ │ ---
│ │
│ │ **Bugfixes**
│ │
│ │ - \[Short description of non-trivial change.\]
│ │
│ │ +2.22.0 (2019-05-15)
│ │ +-------------------
│ │ +
│ │ +**Dependencies**
│ │ +
│ │ +- Requests now supports urllib3 v1.25.2.
│ │ + (note: 1.25.0 and 1.25.1 are incompatible)
│ │ +
│ │ +**Deprecations**
│ │ +
│ │ +- Requests has officially stopped support for Python 3.4.
│ │ +
│ │ +2.21.0 (2018-12-10)
│ │ +-------------------
│ │ +
│ │ +**Dependencies**
│ │ +
│ │ +- Requests now supports idna v2.8.
│ │ +
│ │ +2.20.1 (2018-11-08)
│ │ +-------------------
│ │ +
│ │ +**Bugfixes**
│ │ +
│ │ +- Fixed bug with unintended Authorization header stripping for
│ │ + redirects using default ports (http/80, https/443).
│ │ +
│ │ 2.20.0 (2018-10-18)
│ │ -------------------
│ │
│ │ **Bugfixes**
│ │
│ │ - Content-Type header parsing is now case-insensitive (e.g.
│ │ charset=utf8 v Charset=utf8).
│ --- requests-2.20.0/LICENSE
├── +++ requests-2.22.0/LICENSE
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/requests/utils.py
├── +++ requests-2.22.0/requests/utils.py
│┄ Files similar despite different names (difference score: 2)
│ │ @@ -34,14 +34,16 @@
│ │ from .exceptions import (
│ │ InvalidURL, InvalidHeader, FileModeWarning, UnrewindableBodyError)
│ │
│ │ NETRC_FILES = ('.netrc', '_netrc')
│ │
│ │ DEFAULT_CA_BUNDLE_PATH = certs.where()
│ │
│ │ +DEFAULT_PORTS = {'http': 80, 'https': 443}
│ │ +
│ │
│ │ if sys.platform == 'win32':
│ │ # provide a proxy_bypass version on Windows without DNS lookups
│ │
│ │ def proxy_bypass_registry(host):
│ │ try:
│ │ if is_py3:
│ │ @@ -260,15 +262,15 @@
│ │ OrderedDict, e.g.,
│ │
│ │ ::
│ │
│ │ >>> from_key_val_list([('key', 'val')])
│ │ OrderedDict([('key', 'val')])
│ │ >>> from_key_val_list('string')
│ │ - ValueError: need more than 1 value to unpack
│ │ + ValueError: cannot encode objects that are not 2-tuples
│ │ >>> from_key_val_list({'key': 'val'})
│ │ OrderedDict([('key', 'val')])
│ │
│ │ :rtype: OrderedDict
│ │ """
│ │ if value is None:
│ │ return None
│ --- requests-2.20.0/tests/test_testserver.py
├── +++ requests-2.22.0/tests/test_testserver.py
│┄ Files similar despite different names (difference score: 0)
│ --- requests-2.20.0/tests/testserver/server.py
├── +++ requests-2.22.0/tests/testserver/server.py
│┄ Files similar despite different names (difference score: 0)