12
12
import sys
13
13
from collections import defaultdict
14
14
from collections .abc import ItemsView , Sequence
15
+ from functools import cached_property
15
16
from typing import TYPE_CHECKING , Any , Dict , List , Union
16
17
17
18
import astroid
@@ -997,7 +998,7 @@ def _report_external_dependencies(
997
998
self , sect : Section , _ : LinterStats , _dummy : LinterStats | None
998
999
) -> None :
999
1000
"""Return a verbatim layout for displaying dependencies."""
1000
- dep_info = _make_tree_defs (self ._external_dependencies_info () .items ())
1001
+ dep_info = _make_tree_defs (self ._external_dependencies_info .items ())
1001
1002
if not dep_info :
1002
1003
raise EmptyReportError ()
1003
1004
tree_str = _repr_tree_defs (dep_info )
@@ -1019,10 +1020,10 @@ def _report_dependencies_graph(
1019
1020
_make_graph (filename , dep_info , sect , "" )
1020
1021
filename = self .linter .config .ext_import_graph
1021
1022
if filename :
1022
- _make_graph (filename , self ._external_dependencies_info () , sect , "external " )
1023
+ _make_graph (filename , self ._external_dependencies_info , sect , "external " )
1023
1024
filename = self .linter .config .int_import_graph
1024
1025
if filename :
1025
- _make_graph (filename , self ._internal_dependencies_info () , sect , "internal " )
1026
+ _make_graph (filename , self ._internal_dependencies_info , sect , "internal " )
1026
1027
1027
1028
def _filter_dependencies_graph (self , internal : bool ) -> defaultdict [str , set [str ]]:
1028
1029
"""Build the internal or the external dependency graph."""
@@ -1035,14 +1036,14 @@ def _filter_dependencies_graph(self, internal: bool) -> defaultdict[str, set[str
1035
1036
graph [importee ].add (importer )
1036
1037
return graph
1037
1038
1038
- @astroid . decorators . cached
1039
+ @cached_property
1039
1040
def _external_dependencies_info (self ) -> defaultdict [str , set [str ]]:
1040
1041
"""Return cached external dependencies information or build and
1041
1042
cache them.
1042
1043
"""
1043
1044
return self ._filter_dependencies_graph (internal = False )
1044
1045
1045
- @astroid . decorators . cached
1046
+ @cached_property
1046
1047
def _internal_dependencies_info (self ) -> defaultdict [str , set [str ]]:
1047
1048
"""Return cached internal dependencies information or build and
1048
1049
cache them.
0 commit comments