7
7
import collections
8
8
import copy
9
9
import os
10
- from typing import TYPE_CHECKING , Any , Dict , List , Optional , Set , Tuple , Union
10
+ from typing import TYPE_CHECKING , Any , Dict , List , Set , Tuple , Union
11
11
12
12
import astroid
13
13
from astroid import nodes
@@ -383,8 +383,8 @@ class ImportsChecker(DeprecatedMixin, BaseChecker):
383
383
),
384
384
)
385
385
386
- def __init__ (self , linter : Optional [ "PyLinter" ] = None ) -> None :
387
- BaseChecker .__init__ (self , linter )
386
+ def __init__ (self , linter : "PyLinter" ) -> None :
387
+ BaseChecker .__init__ (self , linter , future_option_parsing = True )
388
388
self .import_graph : collections .defaultdict = collections .defaultdict (set )
389
389
self ._imports_stack : List [Tuple [Any , Any ]] = []
390
390
self ._first_non_import_node = None
@@ -408,10 +408,10 @@ def open(self):
408
408
# Build a mapping {'module': 'preferred-module'}
409
409
self .preferred_modules = dict (
410
410
module .split (":" )
411
- for module in self .config .preferred_modules
411
+ for module in self .linter . namespace .preferred_modules
412
412
if ":" in module
413
413
)
414
- self ._allow_any_import_level = set (self .config .allow_any_import_level )
414
+ self ._allow_any_import_level = set (self .linter . namespace .allow_any_import_level )
415
415
416
416
def _import_graph_without_ignored_edges (self ):
417
417
filtered_graph = copy .deepcopy (self .import_graph )
@@ -429,7 +429,7 @@ def close(self):
429
429
430
430
def deprecated_modules (self ):
431
431
"""Callback returning the deprecated modules."""
432
- return self .config .deprecated_modules
432
+ return self .linter . namespace .deprecated_modules
433
433
434
434
@check_messages (* MSGS )
435
435
def visit_import (self , node : nodes .Import ) -> None :
@@ -651,7 +651,7 @@ def _check_imports_order(self, _module_node):
651
651
third_party_not_ignored = []
652
652
first_party_not_ignored = []
653
653
local_not_ignored = []
654
- isort_driver = IsortDriver (self .config )
654
+ isort_driver = IsortDriver (self .linter . namespace )
655
655
for node , modname in self ._imports_stack :
656
656
if modname .startswith ("." ):
657
657
package = "." + modname .split ("." )[1 ]
@@ -748,8 +748,9 @@ def _get_imported_module(self, importnode, modname):
748
748
return None
749
749
if _ignore_import_failure (importnode , modname , self ._ignored_modules ):
750
750
return None
751
- if not self .config .analyse_fallback_blocks and is_from_fallback_block (
752
- importnode
751
+ if (
752
+ not self .linter .namespace .analyse_fallback_blocks
753
+ and is_from_fallback_block (importnode )
753
754
):
754
755
return None
755
756
@@ -865,18 +866,18 @@ def _report_dependencies_graph(self, sect, _, _dummy):
865
866
"""Write dependencies as a dot (graphviz) file."""
866
867
dep_info = self .linter .stats .dependencies
867
868
if not dep_info or not (
868
- self .config .import_graph
869
- or self .config .ext_import_graph
870
- or self .config .int_import_graph
869
+ self .linter . namespace .import_graph
870
+ or self .linter . namespace .ext_import_graph
871
+ or self .linter . namespace .int_import_graph
871
872
):
872
873
raise EmptyReportError ()
873
- filename = self .config .import_graph
874
+ filename = self .linter . namespace .import_graph
874
875
if filename :
875
876
_make_graph (filename , dep_info , sect , "" )
876
- filename = self .config .ext_import_graph
877
+ filename = self .linter . namespace .ext_import_graph
877
878
if filename :
878
879
_make_graph (filename , self ._external_dependencies_info (), sect , "external " )
879
- filename = self .config .int_import_graph
880
+ filename = self .linter . namespace .int_import_graph
880
881
if filename :
881
882
_make_graph (filename , self ._internal_dependencies_info (), sect , "internal " )
882
883
@@ -917,7 +918,7 @@ def _check_wildcard_imports(self, node, imported_module):
917
918
918
919
def _wildcard_import_is_allowed (self , imported_module ):
919
920
return (
920
- self .config .allow_wildcard_with_all
921
+ self .linter . namespace .allow_wildcard_with_all
921
922
and imported_module is not None
922
923
and "__all__" in imported_module .locals
923
924
)
0 commit comments