Repository: pypa/pip

Issue:
v21.2 does not run on Python 3.6.0 & Python 3.6.1
### Description

v21.2 updated the version of `tenacity` which includes [an explicit dependency on `typing.NoReturn`](https://github.com/pypa/pip/blob/21.2/src/pip/_vendor/tenacity/__init__.py#L193) (which was [added in 3.6.2](https://docs.python.org/3/library/typing.html#typing.NoReturn)). Based on [this issue](https://github.com/jd/tenacity/issues/322), `tenacity` isn't planning making the library compatible with older patch versions of Python 3.6.

This type of issue [has occurred previously](https://github.com/pypa/pip/pull/9835).

### Expected behavior

`pip` should work on all patch versions of Python 3.6.

### pip version

21.2.1

### Python version

3.6.0

### OS

CentOS 7.6

### How to Reproduce

1. Use Python 3.6.0.
2. Install `pip` 21.2.1
3. Attempt to install a package.


### Output

```sh-session
pip3 install -r requirements.lock
Traceback (most recent call last):
  File "/foobar/home/jenkins/venvs/default/bin/pip3", line 7, in <module>
    from pip._internal.cli.main import main
  File "/foobar/home/jenkins/venvs/default/lib64/python3.6/site-packages/pip/_internal/cli/main.py", line 9, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/foobar/home/jenkins/venvs/default/lib64/python3.6/site-packages/pip/_internal/cli/autocompletion.py", line 10, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/foobar/home/jenkins/venvs/default/lib64/python3.6/site-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
  File "/foobar/home/jenkins/venvs/default/lib64/python3.6/site-packages/pip/_internal/cli/cmdoptions.py", line 23, in <module>
    from pip._internal.cli.parser import ConfigOptionParser
  File "/foobar/home/jenkins/venvs/default/lib64/python3.6/site-packages/pip/_internal/cli/parser.py", line 12, in <module>
    from pip._internal.configuration import Configuration, ConfigurationError
  File "/foobar/home/jenkins/venvs/default/lib64/python3.6/site-packages/pip/_internal/configuration.py", line 27, in <module>
    from pip._internal.utils.misc import ensure_dir, enum
  File "/foobar/home/jenkins/venvs/default/lib64/python3.6/site-packages/pip/_internal/utils/misc.py", line 38, in <module>
    from pip._vendor.tenacity import retry, stop_after_delay, wait_fixed
  File "/foobar/home/jenkins/venvs/default/lib64/python3.6/site-packages/pip/_vendor/tenacity/__init__.py", line 186, in <module>
    class RetryError(Exception):
  File "/foobar/home/jenkins/venvs/default/lib64/python3.6/site-packages/pip/_vendor/tenacity/__init__.py", line 193, in RetryError
    def reraise(self) -> t.NoReturn:
AttributeError: module 'typing' has no attribute 'NoReturn'
```


### Code of Conduct

- [X] I agree to follow the [PSF Code of Conduct](https://www.python.org/psf/conduct/).


Discussion:

Resolving patch:
diff --git a/src/pip/_vendor/tenacity/__init__.py b/src/pip/_vendor/tenacity/__init__.py
--- a/src/pip/_vendor/tenacity/__init__.py
+++ b/src/pip/_vendor/tenacity/__init__.py
@@ -190,7 +190,7 @@ def __init__(self, last_attempt: "Future") -> None:
         self.last_attempt = last_attempt
         super().__init__(last_attempt)
 
-    def reraise(self) -> t.NoReturn:
+    def reraise(self) -> "t.NoReturn":
         if self.last_attempt.failed:
             raise self.last_attempt.result()
         raise self


Test patch: