--- default_language_version: # force all unspecified python hooks to run python3 python: python3 repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 hooks: - id: trailing-whitespace - id: mixed-line-ending args: ['--fix', 'lf'] exclude: '.*\.(svg)$' - id: check-byte-order-marker - id: check-executables-have-shebangs - id: check-merge-conflict - id: debug-statements - id: check-yaml files: .*\.(yaml|yml)$ exclude: 'rally-jobs/task-neutron.yaml' - repo: https://github.com/lucas-c/pre-commit-hooks rev: v1.5.5 hooks: - id: remove-tabs exclude: '.*\.(svg)$' - repo: https://opendev.org/openstack/bashate.git rev: 2.1.1 hooks: - id: bashate # E005 file does not begin with #! or have a .sh prefix # E006 check for lines longer than 79 columns # E042 local declaration hides errors # E043 Arithmetic compound has inconsistent return semantics args: ['-v', '-iE006', '-iE005,E042,E043'] files: .*\.sh exclude: '.tox/.*' - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.12.1 hooks: - id: ruff-check args: ['--fix', '--unsafe-fixes'] - repo: https://opendev.org/openstack/hacking rev: 7.0.0 hooks: - id: hacking additional_dependencies: ['neutron-lib>=3.21.1'] exclude: '^(doc|releasenotes|tools)/.*$' - repo: https://github.com/hhatto/autopep8 rev: v2.3.2 hooks: - id: autopep8 files: '^.*\.py$' - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.16.1 hooks: - id: mypy pass_filenames: false # need to list alembic here; otherwise it doesn't see internals # necessary to detect one of 'ignored' errors and complains about # unnecessary ignore; other dependencies can be left out it seems additional_dependencies: ['alembic'] - repo: https://github.com/PyCQA/doc8 rev: v2.0.0 hooks: - id: doc8 exclude: | (?x)( doc/source/admin/config-qos-min-pps.rst | doc/source/admin/deploy-provider-verifynetworkoperation.txt | doc/source/admin/deploy-selfservice-verifynetworkoperation.txt | doc/source/admin/shared/deploy-ha-vrrp-initialnetworks.txt | doc/source/admin/shared/deploy-ha-vrrp-verifynetworkoperation.txt | doc/source/admin/shared/deploy-provider-initialnetworks.txt | doc/source/configuration/metering-agent.rst | doc/source/contributor/internals/images | doc/source/contributor/policies/bugs.rst ) files: | (?x)( doc/source/.* | neutron/.* | CONTRIBUTING.rst | README.rst | TESTING.rst ) - repo: local hooks: - id: misc-sanity-checks name: misc sanity checks language: script require_serial: true pass_filenames: false entry: './tools/misc-sanity-checks.sh' files: '^.*\.py$' exclude: '^(doc|releasenotes|tools)/.*$' - repo: local hooks: - id: check-unit-test-structure name: check unit test structure language: script require_serial: true pass_filenames: false entry: './tools/check_unit_test_structure.sh' files: '^.*\.py$' exclude: '^(doc|releasenotes|tools)/.*$' # todo(slaweq): enable pylint check once all issues in the current code will # be solved # - id: pylint # name: pylint # entry: .tox/pep8/bin/pylint # files: ^neutron/ # language: system # types: [python] # args: ['--rcfile=.pylintrc', '--output-format=colorized']