Skip to content

Commit b45601d

Browse files
authored
Merge pull request #166 from notatallshaw/guard-type-hinting
Guard type hinting via ruff
2 parents 4cb0a23 + 1e24847 commit b45601d

File tree

6 files changed

+17
-11
lines changed

6 files changed

+17
-11
lines changed

news/166.feature

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Enable automatic TYPE_CHECK guarding for imports only used for type hinting
2+
via ruff rules TCH and FA

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ src = ["src"]
8484
line-length = 88
8585

8686
[tool.ruff.lint]
87-
select = ["C","E","F","W","B","RUF","PLE","PLW","I"]
87+
select = ["C","E","F","W","B","RUF","PLE","PLW","I","TCH","FA"]
8888
ignore = ["PLW2901"]
8989
exclude = [
9090
".git",

src/resolvelib/resolvers/abstract.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
import collections
44
from typing import TYPE_CHECKING, Any, Generic, Iterable, Mapping, NamedTuple
55

6-
from ..providers import AbstractProvider
7-
from ..reporters import BaseReporter
86
from ..structs import CT, KT, RT, DirectedGraph
9-
from .criterion import Criterion
107

118
if TYPE_CHECKING:
9+
from ..providers import AbstractProvider
10+
from ..reporters import BaseReporter
11+
from .criterion import Criterion
1212

1313
class Result(NamedTuple, Generic[RT, CT, KT]):
1414
mapping: Mapping[KT, CT]

src/resolvelib/resolvers/exceptions.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from __future__ import annotations
22

3-
from typing import Collection, Generic
3+
from typing import TYPE_CHECKING, Collection, Generic
44

55
from ..structs import CT, RT, RequirementInformation
6-
from .criterion import Criterion
6+
7+
if TYPE_CHECKING:
8+
from .criterion import Criterion
79

810

911
class ResolverException(Exception):

src/resolvelib/resolvers/resolution.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import operator
66
from typing import TYPE_CHECKING, Collection, Generic, Iterable, Mapping
77

8-
from ..providers import AbstractProvider
9-
from ..reporters import BaseReporter
108
from ..structs import (
119
CT,
1210
KT,
@@ -29,7 +27,8 @@
2927
)
3028

3129
if TYPE_CHECKING:
32-
from ..providers import Preference
30+
from ..providers import AbstractProvider, Preference
31+
from ..reporters import BaseReporter
3332

3433

3534
def _build_result(state: State[RT, CT, KT]) -> Result[RT, CT, KT]:

tests/test_resolvers.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,18 @@
1313
InconsistentCandidate,
1414
ResolutionImpossible,
1515
)
16-
from resolvelib.resolvers import Resolution, Resolver
16+
from resolvelib.resolvers import (
17+
RequirementsConflicted,
18+
Resolution,
19+
Resolver,
20+
)
1721

1822
if TYPE_CHECKING:
1923
from typing import Iterable, Mapping
2024

2125
from resolvelib.resolvers import (
2226
Criterion,
2327
RequirementInformation,
24-
RequirementsConflicted,
2528
)
2629

2730

0 commit comments

Comments
 (0)