With: * Python 3.6.10 * mypy 0.770 * requests 2.23.0 * tenacity 6.2.0 the following code: ```Python #!/usr/bin/env python3 from typing import ( Any, Callable, ) import requests import tenacity # Keep trying the request until we connect. @tenacity.retry(retry=tenacity.retry_if_exception_type(requests.exceptions.ConnectionError)) def retry_if_connection_error(func: Callable[..., requests.Response], *args: Any, **kwargs: Any) -> requests.Response: return func(*args, **kwargs) # Keep trying the request unless we connect. @tenacity.retry(retry=tenacity.retry_unless_exception_type(requests.exceptions.ConnectionError)) def retry_unless_connection_error(func: Callable[..., requests.Response], *args: Any, **kwargs: Any) -> requests.Response: return func(*args, **kwargs) ``` produces the following output: ``` $ mypy --strict scripts/dev_test_mypy_tenacity.py scripts/dev_test_mypy_tenacity.py:12: error: Module has no attribute "retry_if_exception_type"; maybe "retry_if_exception", "retry_unless_exception_type", or "retry_if_exception_message"? @tenacity.retry(retry=tenacity.retry_if_exception_type(requests.exceptions.ConnectionError)) ^ scripts/dev_test_mypy_tenacity.py:17: error: Module has no attribute "retry_unless_exception_type"; maybe "retry_if_exception_type"? @tenacity.retry(retry=tenacity.retry_unless_exception_type(requests.exceptions.ConnectionError)) ^ Found 2 errors in 1 file (checked 1 source file) ``` Note that each error message suggests an alternative that the other error message insists does not exist. Tenacity only just added the bare minimum of type hints (jd/tenacity#221), so I don't know if there's some conflict there, but even if that's the case, this seems like a bug in mypy. Possibly related mypy issues: #8220, #8210, #7125, #7029, #6551, #4930