147 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			YAML
		
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			YAML
		
	
	
repos:
 | 
						|
  - repo: https://github.com/charliermarsh/ruff-pre-commit
 | 
						|
    rev: v0.0.241
 | 
						|
    hooks:
 | 
						|
      - id: ruff
 | 
						|
        args:
 | 
						|
          - --fix
 | 
						|
  - repo: https://github.com/asottile/pyupgrade
 | 
						|
    rev: v3.3.1
 | 
						|
    hooks:
 | 
						|
      - id: pyupgrade
 | 
						|
        args: [--py310-plus]
 | 
						|
        stages: [manual]
 | 
						|
  - repo: https://github.com/PyCQA/autoflake
 | 
						|
    rev: v2.0.0
 | 
						|
    hooks:
 | 
						|
      - id: autoflake
 | 
						|
        args:
 | 
						|
          - --in-place
 | 
						|
          - --remove-all-unused-imports
 | 
						|
        stages: [manual]
 | 
						|
  - repo: https://github.com/psf/black
 | 
						|
    rev: 23.1.0
 | 
						|
    hooks:
 | 
						|
      - id: black
 | 
						|
        args:
 | 
						|
          - --quiet
 | 
						|
        files: ^((homeassistant|pylint|script|tests)/.+)?[^/]+\.py$
 | 
						|
  - repo: https://github.com/codespell-project/codespell
 | 
						|
    rev: v2.2.2
 | 
						|
    hooks:
 | 
						|
      - id: codespell
 | 
						|
        args:
 | 
						|
          - --ignore-words-list=additionals,alle,alot,ba,bre,bund,currenty,datas,dof,dur,ether,farenheit,falsy,fo,haa,hass,hist,iam,iff,iif,incomfort,ines,ist,lightsensor,mut,nam,nd,pres,pullrequests,referer,resset,rime,ser,serie,sur,te,technik,ue,uint,unsecure,visability,wan,wanna,withing,zar
 | 
						|
          - --skip="./.*,*.csv,*.json"
 | 
						|
          - --quiet-level=2
 | 
						|
        exclude_types: [csv, json]
 | 
						|
        exclude: ^tests/fixtures/|homeassistant/generated/
 | 
						|
  - repo: https://github.com/PyCQA/flake8
 | 
						|
    rev: 6.0.0
 | 
						|
    hooks:
 | 
						|
      - id: flake8
 | 
						|
        additional_dependencies:
 | 
						|
          - pycodestyle==2.10.0
 | 
						|
          - pyflakes==3.0.1
 | 
						|
          - flake8-docstrings==1.6.0
 | 
						|
          - pydocstyle==6.2.3
 | 
						|
          - flake8-comprehensions==3.10.1
 | 
						|
          - flake8-noqa==1.3.0
 | 
						|
          - mccabe==0.7.0
 | 
						|
        exclude: docs/source/conf.py
 | 
						|
        stages: [manual]
 | 
						|
  - repo: https://github.com/PyCQA/bandit
 | 
						|
    rev: 1.7.4
 | 
						|
    hooks:
 | 
						|
      - id: bandit
 | 
						|
        args:
 | 
						|
          - --quiet
 | 
						|
          - --format=custom
 | 
						|
          - --configfile=tests/bandit.yaml
 | 
						|
        files: ^(homeassistant|script|tests)/.+\.py$
 | 
						|
  - repo: https://github.com/PyCQA/isort
 | 
						|
    rev: 5.12.0
 | 
						|
    hooks:
 | 
						|
      - id: isort
 | 
						|
  - repo: https://github.com/pre-commit/pre-commit-hooks
 | 
						|
    rev: v4.4.0
 | 
						|
    hooks:
 | 
						|
      - id: check-executables-have-shebangs
 | 
						|
        stages: [manual]
 | 
						|
      - id: check-json
 | 
						|
        exclude: (.vscode|.devcontainer)
 | 
						|
      - id: no-commit-to-branch
 | 
						|
        args:
 | 
						|
          - --branch=dev
 | 
						|
          - --branch=master
 | 
						|
          - --branch=rc
 | 
						|
  - repo: https://github.com/adrienverge/yamllint.git
 | 
						|
    rev: v1.28.0
 | 
						|
    hooks:
 | 
						|
      - id: yamllint
 | 
						|
  - repo: https://github.com/pre-commit/mirrors-prettier
 | 
						|
    rev: v2.7.1
 | 
						|
    hooks:
 | 
						|
      - id: prettier
 | 
						|
  - repo: https://github.com/cdce8p/python-typing-update
 | 
						|
    rev: v0.5.0
 | 
						|
    hooks:
 | 
						|
      # Run `python-typing-update` hook manually from time to time
 | 
						|
      # to update python typing syntax.
 | 
						|
      # Will require manual work, before submitting changes!
 | 
						|
      # pre-commit run --hook-stage manual python-typing-update --all-files
 | 
						|
      - id: python-typing-update
 | 
						|
        stages: [manual]
 | 
						|
        args:
 | 
						|
          - --py310-plus
 | 
						|
          - --force
 | 
						|
          - --keep-updates
 | 
						|
        files: ^(homeassistant|tests|script)/.+\.py$
 | 
						|
  - repo: local
 | 
						|
    hooks:
 | 
						|
      # Run mypy through our wrapper script in order to get the possible
 | 
						|
      # pyenv and/or virtualenv activated; it may not have been e.g. if
 | 
						|
      # committing from a GUI tool that was not launched from an activated
 | 
						|
      # shell.
 | 
						|
      - id: mypy
 | 
						|
        name: mypy
 | 
						|
        entry: script/run-in-env.sh mypy
 | 
						|
        language: script
 | 
						|
        types: [python]
 | 
						|
        require_serial: true
 | 
						|
        files: ^(homeassistant|pylint)/.+\.py$
 | 
						|
      - id: pylint
 | 
						|
        name: pylint
 | 
						|
        entry: script/run-in-env.sh pylint -j 0 --ignore-missing-annotations=y
 | 
						|
        language: script
 | 
						|
        types: [python]
 | 
						|
        files: ^homeassistant/.+\.py$
 | 
						|
      - id: gen_requirements_all
 | 
						|
        name: gen_requirements_all
 | 
						|
        entry: script/run-in-env.sh python3 -m script.gen_requirements_all
 | 
						|
        pass_filenames: false
 | 
						|
        language: script
 | 
						|
        types: [text]
 | 
						|
        files: ^(homeassistant/.+/manifest\.json|homeassistant/brands/.+\.json|pyproject\.toml|\.pre-commit-config\.yaml|script/gen_requirements_all\.py)$
 | 
						|
      - id: hassfest
 | 
						|
        name: hassfest
 | 
						|
        entry: script/run-in-env.sh python3 -m script.hassfest
 | 
						|
        pass_filenames: false
 | 
						|
        language: script
 | 
						|
        types: [text]
 | 
						|
        files: ^(homeassistant/.+/(manifest|strings)\.json|homeassistant/brands/.*\.json|\.coveragerc|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py)$
 | 
						|
      - id: hassfest-metadata
 | 
						|
        name: hassfest-metadata
 | 
						|
        entry: script/run-in-env.sh python3 -m script.hassfest -p metadata
 | 
						|
        pass_filenames: false
 | 
						|
        language: script
 | 
						|
        types: [text]
 | 
						|
        files: ^(script/hassfest/metadata\.py|homeassistant/const\.py$|pyproject\.toml)$
 | 
						|
      - id: hassfest-mypy-config
 | 
						|
        name: hassfest-mypy-config
 | 
						|
        entry: script/run-in-env.sh python3 -m script.hassfest -p mypy_config
 | 
						|
        pass_filenames: false
 | 
						|
        language: script
 | 
						|
        types: [text]
 | 
						|
        files: ^(script/hassfest/mypy_config\.py|\.strict-typing|mypy\.ini)$
 |