@@ -436,6 +436,8 @@ def leave_module(self, node):
436436 self ._first_non_import_node = None
437437
438438 def compute_first_non_import_node (self , node ):
439+ if not self .linter .is_message_enabled ('wrong-import-position' , node .fromlineno ):
440+ return
439441 # if the node does not contain an import instruction, and if it is the
440442 # first node of the module, keep a track of it (all the import positions
441443 # of the module will be compared to the position of this first
@@ -466,6 +468,8 @@ def compute_first_non_import_node(self, node):
466468 compute_first_non_import_node
467469
468470 def visit_functiondef (self , node ):
471+ if not self .linter .is_message_enabled ('wrong-import-position' , node .fromlineno ):
472+ return
469473 # If it is the first non import instruction of the module, record it.
470474 if self ._first_non_import_node :
471475 return
@@ -552,8 +556,8 @@ def _check_imports_order(self, _module_node):
552556 extern_imports = []
553557 local_imports = []
554558 std_imports = []
555- extern_not_nested = []
556- local_not_nested = []
559+ extern_not_ignored = []
560+ local_not_ignored = []
557561 isort_obj = isort .SortImports (
558562 file_contents = '' , known_third_party = self .config .known_third_party ,
559563 known_standard_library = self .config .known_standard_library ,
@@ -564,10 +568,12 @@ def _check_imports_order(self, _module_node):
564568 else :
565569 package = modname .split ('.' )[0 ]
566570 nested = not isinstance (node .parent , astroid .Module )
571+ ignore_for_import_order = not self .linter .is_message_enabled ('wrong-import-order' ,
572+ node .fromlineno )
567573 import_category = isort_obj .place_module (package )
568574 if import_category in ('FUTURE' , 'STDLIB' ):
569575 std_imports .append ((node , package ))
570- wrong_import = extern_not_nested or local_not_nested
576+ wrong_import = extern_not_ignored or local_not_ignored
571577 if self ._is_fallback_import (node , wrong_import ):
572578 continue
573579 if wrong_import and not nested :
@@ -576,17 +582,17 @@ def _check_imports_order(self, _module_node):
576582 '"%s"' % wrong_import [0 ][0 ].as_string ()))
577583 elif import_category in ('FIRSTPARTY' , 'THIRDPARTY' ):
578584 extern_imports .append ((node , package ))
579- if not nested :
580- extern_not_nested .append ((node , package ))
581- wrong_import = local_not_nested
585+ if not nested and not ignore_for_import_order :
586+ extern_not_ignored .append ((node , package ))
587+ wrong_import = local_not_ignored
582588 if wrong_import and not nested :
583589 self .add_message ('wrong-import-order' , node = node ,
584590 args = ('external import "%s"' % node .as_string (),
585591 '"%s"' % wrong_import [0 ][0 ].as_string ()))
586592 elif import_category == 'LOCALFOLDER' :
587593 local_imports .append ((node , package ))
588- if not nested :
589- local_not_nested .append ((node , package ))
594+ if not nested and not ignore_for_import_order :
595+ local_not_ignored .append ((node , package ))
590596 return std_imports , extern_imports , local_imports
591597
592598 def _get_imported_module (self , importnode , modname ):
0 commit comments