#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 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.

---
default_stages: [commit, push]
default_language_version:
  # force all unspecified python hooks to run python3
  python: python3
minimum_pre_commit_version: "1.20.0"

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.3.0
    hooks:
      - id: check-yaml
      - id: end-of-file-fixer
        exclude: ^ui/vendors/.*$
      - id: trailing-whitespace
        exclude: ^ui/vendors/.*$
      - id: fix-encoding-pragma
        args:
          - --remove
  - repo: https://github.com/Lucas-C/pre-commit-hooks
    rev: v1.1.9
    hooks:
      - id: insert-license
        name: Add license for all other files
        exclude: ^\.github/.*$
        args:
          - --comment-style
          - "|#|"
          - --license-filepath
          - license-templates/LICENSE.txt
          - --fuzzy-match-generates-todo
        files: >
          \.cfg$|^Dockerfile.*$|\.sh$|\.bash$|\.py$|\.yml$|\.yaml$
      - id: insert-license
        name: Add license for all rst files
        exclude: ^\.github/.*$
        args:
          - --comment-style
          - "||"
          - --license-filepath
          - license-templates/LICENSE.rst
          - --fuzzy-match-generates-todo
        files: \.rst$
      - id: insert-license
        name: Add license for all md and html files
        files: \.md$|\.html$
        exclude: ^\.github/.*$|
        args:
          - --comment-style
          - "<!--|| -->"
          - --license-filepath
          - license-templates/LICENSE.txt
          - --fuzzy-match-generates-todo
  - repo: https://github.com/psf/black
    rev: 20.8b1
    hooks:
    - id: black
      name: Black
      types: [python]
  - repo: https://github.com/timothycrosley/isort
    rev: 5.6.4
    hooks:
      - id: isort
        name: Run isort to sort imports
        args: ['--multi-line', '3', '--trailing-comma']
        files: \.py$
