nodes: 0, module; 1, function_definition; 2, function_name:lint; 3, parameters; 4, block; 5, identifier:self; 6, identifier:targets; 7, expression_statement; 8, expression_statement; 9, expression_statement; 10, with_statement; 11, expression_statement; 12, expression_statement; 13, return_statement; 14, comment:"""Run linters in parallel and sort all results.
  
          Args:
              targets (list): List of files and folders to lint.
          """; 15, assignment; 16, assignment; 17, with_clause; 18, block; 19, assignment; 20, assignment; 21, expression_list; 22, attribute; 23, identifier:targets; 24, identifier:linters; 25, call; 26, with_item; 27, expression_statement; 28, identifier:out_err; 29, list_comprehension; 30, pattern_list; 31, call; 32, call; 33, call; 34, identifier:LinterRunner; 35, identifier:targets; 36, attribute; 37, argument_list; 38, as_pattern; 39, assignment; 40, identifier:item; 41, for_in_clause; 42, if_clause; 43, identifier:stdout; 44, identifier:stderr; 45, identifier:zip; 46, argument_list; 47, identifier:sorted; 48, argument_list; 49, attribute; 50, argument_list; 51, attribute; 52, identifier:get_linter_classes; 53, call; 54, as_pattern_target; 55, identifier:out_err_none; 56, call; 57, identifier:item; 58, identifier:out_err_none; 59, comparison_operator:item is not None; 60, list_splat; 61, call; 62, identifier:chain; 63, identifier:from_iterable; 64, identifier:stderr; 65, identifier:self; 66, identifier:_config; 67, identifier:Pool; 68, argument_list; 69, identifier:pool; 70, attribute; 71, argument_list; 72, identifier:item; 73, None; 74, identifier:out_err; 75, attribute; 76, argument_list; 77, identifier:pool; 78, identifier:map; 79, attribute; 80, identifier:linters; 81, identifier:chain; 82, identifier:from_iterable; 83, identifier:stdout; 84, identifier:LinterRunner; 85, identifier:run
code: def lint(self, targets):
          """Run linters in parallel and sort all results.
  
          Args:
              targets (list): List of files and folders to lint.
          """
          LinterRunner.targets = targets
          linters = self._config.get_linter_classes()
          with Pool() as pool:
              out_err_none = pool.map(LinterRunner.run, linters)
          out_err = [item for item in out_err_none if item is not None]
          stdout, stderr = zip(*out_err)
          return sorted(chain.from_iterable(stdout)), chain.from_iterable(stderr)