Skip to content

Commit

Permalink
strict flake8-type-checking (#508)
Browse files Browse the repository at this point in the history
recent flake8-type-checking encourages `cast()` using the name of the
class rather than the actual class, presumably with the aim that you
might find more things you don't need to import at runtime
  • Loading branch information
dimbleby committed Oct 23, 2022
1 parent 3d0d3dc commit 653c7ae
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 23 deletions.
2 changes: 1 addition & 1 deletion .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ban-relative-imports = True
format-greedy = 1
inline-quotes = double
enable-extensions = TC, TC1
type-checking-exempt-modules = typing, typing-extensions
type-checking-strict = true
eradicate-whitelist-extend = ^-.*;
extend-ignore =
# E203: Whitespace before ':' (pycqa/pycodestyle#373)
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ repos:
- flake8-quotes==3.3.1
- flake8-simplify==0.19.3
- flake8-tidy-imports==4.8.0
- flake8-type-checking==2.1.2
- flake8-type-checking==2.2.0
- flake8-typing-imports==1.12.0
- flake8-use-fstring==1.4
- pep8-naming==0.13.1
Expand Down
2 changes: 1 addition & 1 deletion src/poetry/core/masonry/utils/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,4 @@ def distribution_name(name: NormalizedName) -> DistributionName:
respectively), and replace dash (-) characters with underscore (_) characters ...
"""
distribution_name = name.replace("-", "_")
return cast(DistributionName, distribution_name)
return cast("DistributionName", distribution_name)
2 changes: 1 addition & 1 deletion tests/packages/test_directory_dependency.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def _test_directory_dependency_pep_508(
)

assert dep.is_directory()
dep = cast(DirectoryDependency, dep)
dep = cast("DirectoryDependency", dep)
assert dep.name == name
assert dep.path == path
assert dep.to_pep_508() == (pep_508_output or pep_508_input)
Expand Down
2 changes: 1 addition & 1 deletion tests/packages/test_file_dependency.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def _test_file_dependency_pep_508(
dep.marker = marker

assert dep.is_file()
dep = cast(FileDependency, dep)
dep = cast("FileDependency", dep)
assert dep.name == name
assert dep.path == path
assert dep.to_pep_508() == (pep_508_output or pep_508_input)
Expand Down
18 changes: 11 additions & 7 deletions tests/packages/test_main.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
from __future__ import annotations

from typing import TYPE_CHECKING
from typing import cast

from poetry.core.constraints.version import Version
from poetry.core.packages.dependency import Dependency
from poetry.core.packages.url_dependency import URLDependency
from poetry.core.packages.vcs_dependency import VCSDependency


if TYPE_CHECKING:
from poetry.core.packages.url_dependency import URLDependency
from poetry.core.packages.vcs_dependency import VCSDependency


def test_dependency_from_pep_508() -> None:
Expand Down Expand Up @@ -186,7 +190,7 @@ def test_dependency_from_pep_508_with_git_url() -> None:

assert dep.name == "django-utils"
assert dep.is_vcs()
dep = cast(VCSDependency, dep)
dep = cast("VCSDependency", dep)
assert dep.vcs == "git"
assert dep.source == "ssh://git@corp-gitlab.com/corp-utils.git"
assert dep.reference == "1.2"
Expand All @@ -202,7 +206,7 @@ def test_dependency_from_pep_508_with_git_url_and_subdirectory() -> None:

assert dep.name == "django-utils"
assert dep.is_vcs()
dep = cast(VCSDependency, dep)
dep = cast("VCSDependency", dep)
assert dep.vcs == "git"
assert dep.source == "ssh://git@corp-gitlab.com/corp-utils.git"
assert dep.reference == "1.2"
Expand All @@ -219,7 +223,7 @@ def test_dependency_from_pep_508_with_git_url_and_comment_and_extra() -> None:

assert dep.name == "poetry"
assert dep.is_vcs()
dep = cast(VCSDependency, dep)
dep = cast("VCSDependency", dep)
assert dep.vcs == "git"
assert dep.source == "https://github.com/python-poetry/poetry.git"
assert dep.reference == "b;ar;"
Expand All @@ -233,7 +237,7 @@ def test_dependency_from_pep_508_with_url() -> None:

assert dep.name == "django-utils"
assert dep.is_url()
dep = cast(URLDependency, dep)
dep = cast("URLDependency", dep)
assert dep.url == "https://example.com/django-utils-1.0.0.tar.gz"


Expand All @@ -247,7 +251,7 @@ def test_dependency_from_pep_508_with_url_and_subdirectory() -> None:

assert dep.name == "django-utils"
assert dep.is_url()
dep = cast(URLDependency, dep)
dep = cast("URLDependency", dep)
assert dep.url == "https://example.com/django-utils-1.0.0.tar.gz"
assert dep.directory == "django"

Expand Down
20 changes: 12 additions & 8 deletions tests/packages/test_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import random

from pathlib import Path
from typing import TYPE_CHECKING
from typing import cast

import pytest
Expand All @@ -11,12 +12,15 @@
from poetry.core.factory import Factory
from poetry.core.packages.dependency import Dependency
from poetry.core.packages.dependency_group import DependencyGroup
from poetry.core.packages.directory_dependency import DirectoryDependency
from poetry.core.packages.file_dependency import FileDependency
from poetry.core.packages.package import Package
from poetry.core.packages.project_package import ProjectPackage
from poetry.core.packages.url_dependency import URLDependency
from poetry.core.packages.vcs_dependency import VCSDependency


if TYPE_CHECKING:
from poetry.core.packages.directory_dependency import DirectoryDependency
from poetry.core.packages.file_dependency import FileDependency
from poetry.core.packages.url_dependency import URLDependency
from poetry.core.packages.vcs_dependency import VCSDependency


@pytest.fixture()
Expand Down Expand Up @@ -350,7 +354,7 @@ def test_to_dependency_for_directory() -> None:
assert dep.constraint == package.version
assert dep.features == frozenset({"bar", "baz"})
assert dep.is_directory()
dep = cast(DirectoryDependency, dep)
dep = cast("DirectoryDependency", dep)
assert dep.path == path
assert dep.source_type == "directory"
assert dep.source_url == path.as_posix()
Expand All @@ -373,7 +377,7 @@ def test_to_dependency_for_file() -> None:
assert dep.constraint == package.version
assert dep.features == frozenset({"bar", "baz"})
assert dep.is_file()
dep = cast(FileDependency, dep)
dep = cast("FileDependency", dep)
assert dep.path == path
assert dep.source_type == "file"
assert dep.source_url == path.as_posix()
Expand All @@ -394,7 +398,7 @@ def test_to_dependency_for_url() -> None:
assert dep.constraint == package.version
assert dep.features == frozenset({"bar", "baz"})
assert dep.is_url()
dep = cast(URLDependency, dep)
dep = cast("URLDependency", dep)
assert dep.url == "https://example.com/path.tar.gz"
assert dep.source_type == "url"
assert dep.source_url == "https://example.com/path.tar.gz"
Expand All @@ -418,7 +422,7 @@ def test_to_dependency_for_vcs() -> None:
assert dep.constraint == package.version
assert dep.features == frozenset({"bar", "baz"})
assert dep.is_vcs()
dep = cast(VCSDependency, dep)
dep = cast("VCSDependency", dep)
assert dep.source_type == "git"
assert dep.source == "https://github.com/foo/foo.git"
assert dep.reference == "master"
Expand Down
6 changes: 3 additions & 3 deletions tests/test_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
from poetry.core.constraints.version import parse_constraint
from poetry.core.factory import Factory
from poetry.core.packages.url_dependency import URLDependency
from poetry.core.packages.vcs_dependency import VCSDependency
from poetry.core.toml import TOMLFile
from poetry.core.version.markers import SingleMarker


if TYPE_CHECKING:
from poetry.core.packages.dependency import Dependency
from poetry.core.packages.vcs_dependency import VCSDependency


fixtures_dir = Path(__file__).parent / "fixtures"
Expand Down Expand Up @@ -57,7 +57,7 @@ def test_create_poetry() -> None:
pendulum = dependencies["pendulum"]
assert pendulum.pretty_constraint == "branch 2.0"
assert pendulum.is_vcs()
pendulum = cast(VCSDependency, pendulum)
pendulum = cast("VCSDependency", pendulum)
assert pendulum.vcs == "git"
assert pendulum.branch == "2.0"
assert pendulum.source == "https://github.com/sdispater/pendulum.git"
Expand All @@ -67,7 +67,7 @@ def test_create_poetry() -> None:
tomlkit = dependencies["tomlkit"]
assert tomlkit.pretty_constraint == "rev 3bff550"
assert tomlkit.is_vcs()
tomlkit = cast(VCSDependency, tomlkit)
tomlkit = cast("VCSDependency", tomlkit)
assert tomlkit.vcs == "git"
assert tomlkit.rev == "3bff550"
assert tomlkit.source == "https://github.com/sdispater/tomlkit.git"
Expand Down

0 comments on commit 653c7ae

Please sign in to comment.