@@ -444,6 +444,8 @@ def leave_module(self, node):
444444 self ._first_non_import_node = None
445445
446446 def compute_first_non_import_node (self , node ):
447+ if not self .linter .is_message_enabled ('wrong-import-position' , node .fromlineno ):
448+ return
447449 # if the node does not contain an import instruction, and if it is the
448450 # first node of the module, keep a track of it (all the import positions
449451 # of the module will be compared to the position of this first
@@ -474,6 +476,8 @@ def compute_first_non_import_node(self, node):
474476 compute_first_non_import_node
475477
476478 def visit_functiondef (self , node ):
479+ if not self .linter .is_message_enabled ('wrong-import-position' , node .fromlineno ):
480+ return
477481 # If it is the first non import instruction of the module, record it.
478482 if self ._first_non_import_node :
479483 return
@@ -560,8 +564,8 @@ def _check_imports_order(self, _module_node):
560564 extern_imports = []
561565 local_imports = []
562566 std_imports = []
563- extern_not_nested = []
564- local_not_nested = []
567+ extern_not_ignored = []
568+ local_not_ignored = []
565569 isort_obj = isort .SortImports (
566570 file_contents = '' , known_third_party = self .config .known_third_party ,
567571 known_standard_library = self .config .known_standard_library ,
@@ -572,10 +576,12 @@ def _check_imports_order(self, _module_node):
572576 else :
573577 package = modname .split ('.' )[0 ]
574578 nested = not isinstance (node .parent , astroid .Module )
579+ ignore_for_import_order = not self .linter .is_message_enabled ('wrong-import-order' ,
580+ node .fromlineno )
575581 import_category = isort_obj .place_module (package )
576582 if import_category in ('FUTURE' , 'STDLIB' ):
577583 std_imports .append ((node , package ))
578- wrong_import = extern_not_nested or local_not_nested
584+ wrong_import = extern_not_ignored or local_not_ignored
579585 if self ._is_fallback_import (node , wrong_import ):
580586 continue
581587 if wrong_import and not nested :
@@ -584,17 +590,17 @@ def _check_imports_order(self, _module_node):
584590 '"%s"' % wrong_import [0 ][0 ].as_string ()))
585591 elif import_category in ('FIRSTPARTY' , 'THIRDPARTY' ):
586592 extern_imports .append ((node , package ))
587- if not nested :
588- extern_not_nested .append ((node , package ))
589- wrong_import = local_not_nested
593+ if not nested and not ignore_for_import_order :
594+ extern_not_ignored .append ((node , package ))
595+ wrong_import = local_not_ignored
590596 if wrong_import and not nested :
591597 self .add_message ('wrong-import-order' , node = node ,
592598 args = ('external import "%s"' % node .as_string (),
593599 '"%s"' % wrong_import [0 ][0 ].as_string ()))
594600 elif import_category == 'LOCALFOLDER' :
595601 local_imports .append ((node , package ))
596- if not nested :
597- local_not_nested .append ((node , package ))
602+ if not nested and not ignore_for_import_order :
603+ local_not_ignored .append ((node , package ))
598604 return std_imports , extern_imports , local_imports
599605
600606 def _get_imported_module (self , importnode , modname ):
0 commit comments