diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b6a282e11fc..c5fb1ffe8ec 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,6 +10,16 @@ repos: - id: flake8 additional_dependencies: [flake8-bugbear] + - repo: https://github.com/pre-commit/mirrors-mypy + rev: v0.910 + hooks: + - id: mypy + pass_filenames: false + additional_dependencies: + - types-requests + args: + - poetry + - repo: https://github.com/timothycrosley/isort rev: 5.7.0 hooks: diff --git a/mypy.ini b/mypy.ini index 9ab0f390a88..2bc2c873fa3 100644 --- a/mypy.ini +++ b/mypy.ini @@ -6,3 +6,50 @@ strict_optional = True warn_unused_ignores = True warn_redundant_casts = True warn_unused_configs = True + +# The following whitelist is used to allow for incremental adoption +# of Mypy. Modules should be removed from this whitelist as and when +# their respective type errors have been addressed. No new modules +# should be added to this whitelist. +# see https://github.com/python-poetry/poetry/pull/4510. + +[mypy-poetry.config.*] +ignore_errors = True + +[mypy-poetry.console.*] +ignore_errors = True + +[mypy-poetry.factory.*] +ignore_errors = True + +[mypy-poetry.inspection.*] +ignore_errors = True + +[mypy-poetry.installation.*] +ignore_errors = True + +[mypy-poetry.locations.*] +ignore_errors = True + +[mypy-poetry.mixology.*] +ignore_errors = True + +[mypy-poetry.packages.*] +ignore_errors = True + +[mypy-poetry.plugins.*] +ignore_errors = True + +[mypy-poetry.publishing.*] +ignore_errors = True + +[mypy-poetry.puzzle.*] +ignore_errors = True + +[mypy-poetry.repositories.*] +ignore_errors = True + +[mypy-poetry.utils.*] +ignore_errors = True + +# end of whitelist diff --git a/poetry/__init__.py b/poetry/__init__.py index 26cfe4052b1..0bd1cd515c0 100644 --- a/poetry/__init__.py +++ b/poetry/__init__.py @@ -1,4 +1,5 @@ from pkgutil import extend_path +from typing import List -__path__ = extend_path(__path__, __name__) +__path__: List[str] = extend_path(__path__, __name__) diff --git a/poetry/poetry.py b/poetry/poetry.py index 95814330e4a..8365bffec79 100644 --- a/poetry/poetry.py +++ b/poetry/poetry.py @@ -1,6 +1,7 @@ from pathlib import Path from typing import TYPE_CHECKING from typing import List +from typing import Optional from poetry.__version__ import __version__ from poetry.config.source import Source @@ -35,7 +36,7 @@ def __init__( self._locker = locker self._config = config self._pool = Pool() - self._plugin_manager = None + self._plugin_manager: Optional[PluginManager] = None @property def locker(self) -> "Locker":