#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
repos:
  - repo: https://github.com/MarcoGorelli/auto-walrus
    rev: v0.2.2
    hooks:
      - id: auto-walrus
  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v1.3.0
    hooks:
      - id: mypy
        args: [--check-untyped-defs]
        additional_dependencies: [
            types-simplejson,
            types-python-dateutil,
            types-requests,
            # types-redis 4.6.0.5 is failing mypy
            # because of https://github.com/python/typeshed/pull/10531
            types-redis==4.6.0.4,
            types-pytz,
            types-croniter,
            types-PyYAML,
            types-setuptools,
            types-paramiko,
            types-Markdown,
          ]
  - repo: https://github.com/peterdemin/pip-compile-multi
    rev: v2.6.2
    hooks:
      - id: pip-compile-multi-verify
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
      - id: check-docstring-first
      - id: check-added-large-files
        exclude: ^.*\.(geojson)$|^docs/static/img/screenshots/.*
      - id: check-yaml
        exclude: ^helm/superset/templates/
      - id: debug-statements
      - id: end-of-file-fixer
      - id: trailing-whitespace
        args: ["--markdown-linebreak-ext=md"]
  - repo: https://github.com/pre-commit/mirrors-prettier
    rev: v3.1.0 # Use the sha or tag you want to point at
    hooks:
      - id: prettier
        additional_dependencies:
          - prettier@3.3.3
        args: ["--ignore-path=./superset-frontend/.prettierignore"]
        files: "superset-frontend"
  # blacklist unsafe functions like make_url (see #19526)
  - repo: https://github.com/skorokithakis/blacklist-pre-commit-hook
    rev: e2f070289d8eddcaec0b580d3bde29437e7c8221
    hooks:
      - id: blacklist
        args: ["--blacklisted-names=make_url", "--ignore=tests/"]
  - repo: https://github.com/norwoodj/helm-docs
    rev: v1.11.0
    hooks:
      - id: helm-docs
        files: helm
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.4.0
    hooks:
      - id: ruff
        args: [ --fix ]
      - id: ruff-format
  - repo: local
    hooks:
      - id: pylint
        name: pylint
        entry: pylint
        language: system
        types: [python]
        exclude: ^(tests/|superset/migrations/|scripts/|RELEASING/|docker/)
        args:
          [
            "-rn", # Only display messages
            "-sn", # Don't display the score
            "--rcfile=.pylintrc",
          ]
