content: # Configuration for lintrunner https://github.com/suo/lintrunner
  # You can install the dependencies and initialize with
  #
  # ```sh
  # pip install lintrunner lintrunner-adapters
  # lintrunner init
  # ```
  #
  # This will install lintrunner on your system and download all the necessary
  # dependencies to run linters locally.
  # If you want to see what lintrunner init will install, run
  # `lintrunner init --dry-run`.
  #
  # To lint local changes:
  #
  # ```bash
  # lintrunner
  # ```
  #
  # To lint all files:
  #
  # ```bash
  # lintrunner --all-files
  # ```
  #
  # To format files:
  #
  # ```bash
  # lintrunner -a
  # ```
  #
  # To read more about lintrunner, see [wiki](https://github.com/pytorch/pytorch/wiki/lintrunner).
  # To update an existing linting rule or create a new one, modify this file or create a
  # new adapter following examples in https://github.com/justinchuby/lintrunner-adapters.
  merge_base_with = 'main'
  
  [[linter]]
  code = 'RUFF'
  include_patterns = [
      '**/*.py',
      '**/*.pyi',
  ]
  exclude_patterns = [
      '*_pb2*',
      '.setuptools-cmake-build/*',
      'docs/**',
  ]
  command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'ruff_linter',
      '--config=pyproject.toml',
      '@{{PATHSFILE}}'
  ]
  init_command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'pip_init',
      '--dry-run={{DRYRUN}}',
      '--requirement=requirements-lintrunner.txt',
  ]
  is_formatter = true
  
  [[linter]]
  code = 'MYPY'
  include_patterns = [
      'onnx/**/*.py',
      'tools/**/*.py',
  ]
  exclude_patterns = [
      'onnx/backend/test/**',
      'onnx/reference/ops/**',  # FIXME: Enable this once typing is fixed
      'onnx/test/**',  # Disable mypy for tests
      'onnx/reference/reference_evaluator.py',
  ]
  command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'mypy_linter',
      '--config=pyproject.toml',
      '--show-disable',
      '--',
      '@{{PATHSFILE}}'
  ]
  init_command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'pip_init',
      '--dry-run={{DRYRUN}}',
      '--requirement=requirements-lintrunner.txt',
  ]
  
  [[linter]]
  code = 'RUFF-FORMAT'
  include_patterns = [
      '**/*.py',
  ]
  exclude_patterns = [
      '*_pb2*',
      '.setuptools-cmake-build/*',
      'cmake/**',
      'docs/**',
  ]
  command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'ruff_format_linter',
      '--',
      '@{{PATHSFILE}}'
  ]
  init_command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'pip_init',
      '--dry-run={{DRYRUN}}',
      '--requirement=requirements-lintrunner.txt',
  ]
  is_formatter = true
  
  [[linter]]
  code = 'NAMESPACE'
  include_patterns = ['**/*.cc', '**/*.h']
  exclude_patterns = ['third_party/**']
  command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'grep_linter',
      '--pattern=namespace onnx|onnx::',
      '--linter-name=NAMESPACE',
      '--error-name=hardcoded onnx namespace',
      """--error-description=\
          Do not hardcode onnx's namespace in the c++ source code, so that \
          other libraries that statically link with onnx can hide onnx symbols \
          in a private namespace.\
      """,
      '--',
      '@{{PATHSFILE}}'
  ]
  
  [[linter]]
  code = 'CLANGFORMAT'
  include_patterns = [
      'onnx/**/*.h',
      'onnx/**/*.cc',
  ]
  exclude_patterns = [
  ]
  command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'clangformat_linter',
      '--binary=clang-format',
      '--fallback',
      '--',
      '@{{PATHSFILE}}'
  ]
  init_command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'pip_init',
      '--dry-run={{DRYRUN}}',
      '--requirement=requirements-lintrunner.txt',
  ]
  is_formatter = true
  
  [[linter]]
  code = 'EDITORCONFIG-CHECKER'
  include_patterns=[
      '**/*.py',
      '**/*.pyi',
      '**/*.cc',
      '**/*.h',
      '**/*.md',
      '**/*.cpp',
      '**/*.yml',
  ]
  exclude_patterns = [
      '*_pb2*',
      '.setuptools-cmake-build/*',
      'cmake/**',
      'docs/Changelog*',
      'docs/Operators*',
      'docs/TestCoverage*',
      'community/sc-election-guidelines.md',
  ]
  command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'editorconfig_checker_linter',
      '--',
      '@{{PATHSFILE}}'
  ]
  init_command = [
      'python',
      '-m',
      'lintrunner_adapters',
      'run',
      'pip_init',
      '--dry-run={{DRYRUN}}',
      '--requirement=requirements-lintrunner.txt',
  ]
  