code: def main(arguments=None):   # suppress(unused-function)
      
      result = _parse_arguments(arguments)
      linter_funcs = _ordered(linter_functions_from_filters,
                              result.whitelist,
                              result.blacklist)
      global_options = vars(result)
      tool_options = tool_options_from_global(global_options, len(result.files))
      any_would_run = _any_would_run(_run_lint_on_file_exceptions,
                                     result.files,
                                     result.stamp_file_path,
                                     result.log_technical_terms_to,
                                     linter_funcs,
                                     tool_options,
                                     result.fix_what_you_can)
  
      if any_would_run:
          for linter_function in linter_funcs.values():
              if linter_function.before_all:
                  linter_function.before_all(global_options, tool_options)
  
          use_multiprocessing = _should_use_multiprocessing(len(result.files))
      else:
          use_multiprocessing = False
  
      if use_multiprocessing:
          mapper = parmap.map
      else:
          # suppress(E731)
          mapper = lambda f, i, *a: [f(*((x, ) + a)) for x in i]
  
      errors = list(itertools.chain(*mapper(_run_lint_on_file_stamped,
                                            result.files,
                                            result.stamp_file_path,
                                            result.log_technical_terms_to,
                                            linter_funcs,
                                            tool_options,
                                            result.fix_what_you_can)))
  
      for error in sorted(errors):
          _report_lint_error(error.failure, os.path.relpath(error.absolute_path))
  
      if any_would_run:
          for linter_funcs in linter_funcs.values():
              if linter_funcs.after_all:
                  linter_funcs.after_all(global_options, tool_options)
  
      return len(errors)
docs: Entry point for the linter.