# This is the configuration for pre-commit, a local framework for managing pre-commit hooks
#   Check out the docs at: https://pre-commit.com/

default_stages: [commit]
repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.3.0
    hooks:
    -   id: check-builtin-literals
    -   id: check-case-conflict
    -   id: check-docstring-first
    -   id: check-executables-have-shebangs
    -   id: check-json
        exclude: tsconfig.json
    -   id: check-toml
    -   id: check-xml
    -   id: check-yaml
    -   id: detect-private-key
    -   id: end-of-file-fixer
        exclude: \.min\.js$
    -   id: trailing-whitespace

-   repo: https://github.com/PyCQA/bandit
    rev: 1.7.4
    hooks:
    -   id: bandit
        args:
        -   --skip=B201

-   repo: https://github.com/psf/black
    rev: 22.3.0
    hooks:
    -   id: black

-   repo: https://github.com/codespell-project/codespell
    rev: v2.1.0
    hooks:
    -   id: codespell  # See 'setup.cfg' for args

-   repo: https://github.com/PyCQA/flake8
    rev: 4.0.1
    hooks:
    -   id: flake8  # See 'setup.cfg' for args
        additional_dependencies: [flake8-bugbear, flake8-comprehensions]

-   repo: https://github.com/pycqa/isort
    rev: 5.10.1
    hooks:
    -   id: isort
        name: isort (python)
        args: [--profile, black]

-   repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
    rev: v2.3.0
    hooks:
    -   id: pretty-format-yaml
        args: [--autofix, --indent, '4']
        exclude: .github/ISSUE_TEMPLATE/.*\.yml$

-   repo: https://github.com/asottile/pyupgrade
    rev: v2.34.0
    hooks:
    -   id: pyupgrade
        args:
        -   --py310-plus

-   repo: https://github.com/pre-commit/mirrors-eslint
    rev: v8.18.0
    hooks:
    -   id: eslint
        files: pyscriptjs/src/.*\.[jt]sx?$  # *.js, *.jsx, *.ts and *.tsx
        types: [file]
        additional_dependencies:
        -   eslint
        -   eslint-plugin-svelte3
        -   typescript
        -   '@typescript-eslint/eslint-plugin'
        -   '@typescript-eslint/parser'

# Commented out until mdformat-myst supports custom extensions
# See https://github.com/executablebooks/mdformat-myst/pull/9
# -   repo: https://github.com/executablebooks/mdformat
#     rev: 0.7.14 # Use the ref you want to point at
#     hooks:
#     -   id: mdformat
#         additional_dependencies:
#         -   mdformat-gfm
#         -   mdformat-myst
#         -   mdformat-black
