repos:
-   repo: https://github.com/python/black
    rev: 20.8b1
    hooks:
    -   id: black
-   repo: https://gitlab.com/pycqa/flake8
    rev: 3.8.4
    hooks:
    -   id: flake8
        additional_dependencies: [flake8-comprehensions>=3.1.0]
    -   id: flake8
        name: flake8 (cython)
        types: [cython]
        args: [--append-config=flake8/cython.cfg]
    -   id: flake8
        name: flake8 (cython template)
        files: \.pxi\.in$
        types: [text]
        args: [--append-config=flake8/cython-template.cfg]
-   repo: https://github.com/PyCQA/isort
    rev: 5.6.4
    hooks:
    -   id: isort
        name: isort (python)
    -   id: isort
        name: isort (cython)
        types: [cython]
-   repo: https://github.com/asottile/pyupgrade
    rev: v2.7.4
    hooks:
    -   id: pyupgrade
        args: [--py37-plus]
-   repo: https://github.com/pre-commit/pygrep-hooks
    rev: v1.7.0
    hooks:
      - id: rst-backticks
      - id: rst-directive-colons
        types: [text]
      - id: rst-inline-touching-normal
        types: [text]
-   repo: local
    hooks:
    -   id: pip_to_conda
        name: Generate pip dependency from conda
        description: This hook checks if the conda environment.yml and requirements-dev.txt are equal
        language: python
        entry: python scripts/generate_pip_deps_from_conda.py
        files: ^(environment.yml|requirements-dev.txt)$
        pass_filenames: false
        additional_dependencies: [pyyaml]
    -   id: flake8-rst
        name: flake8-rst
        description: Run flake8 on code snippets in docstrings or RST files
        language: python
        entry: flake8-rst
        types: [rst]
        args: [--filename=*.rst]
        additional_dependencies: [flake8-rst==0.7.0, flake8==3.7.9]
    -   id: non-standard-imports
        name: Check for non-standard imports
        language: pygrep
        entry: |
            (?x)
            # Check for imports from pandas.core.common instead of `import pandas.core.common as com`
            from\ pandas\.core\.common\ import|
            from\ pandas\.core\ import\ common|

            # Check for imports from collections.abc instead of `from collections import abc`
            from\ collections\.abc\ import

    -   id: non-standard-numpy.random-related-imports
        name: Check for non-standard numpy.random-related imports excluding pandas/_testing.py
        language: pygrep
        exclude: pandas/_testing.py
        entry: |
            (?x)
            # Check for imports from np.random.<method> instead of `from numpy import random` or `from numpy.random import <method>`
            from\ numpy\ import\ random|
            from\ numpy.random\ import
        types: [python]
    -   id: non-standard-imports-in-tests
        name: Check for non-standard imports in test suite
        language: pygrep
        entry: |
            (?x)
            # Check for imports from pandas._testing instead of `import pandas._testing as tm`
            from\ pandas\._testing\ import|
            from\ pandas\ import\ _testing\ as\ tm|

            # No direct imports from conftest
            conftest\ import|
            import\ conftest
        types: [python]
        files: ^pandas/tests/
    -   id: incorrect-code-directives
        name: Check for incorrect code block or IPython directives
        language: pygrep
        entry: (\.\. code-block ::|\.\. ipython ::)
        files: \.(py|pyx|rst)$
    -   id: unwanted-patterns-strings-to-concatenate
        name: Check for use of not concatenated strings
        language: python
        entry: python scripts/validate_unwanted_patterns.py --validation-type="strings_to_concatenate"
        files: \.(py|pyx|pxd|pxi)$
    -   id: unwanted-patterns-strings-with-wrong-placed-whitespace
        name: Check for strings with wrong placed spaces
        language: python
        entry: python scripts/validate_unwanted_patterns.py --validation-type="strings_with_wrong_placed_whitespace"
        files: \.(py|pyx|pxd|pxi)$
    -   id: unwanted-patterns-private-import-across-module
        name: Check for import of private attributes across modules
        language: python
        entry: python scripts/validate_unwanted_patterns.py --validation-type="private_import_across_module"
        types: [python]
        exclude: ^(asv_bench|pandas/tests|doc)/
    -   id: unwanted-patterns-private-function-across-module
        name: Check for use of private functions across modules
        language: python
        entry: python scripts/validate_unwanted_patterns.py --validation-type="private_function_across_module"
        types: [python]
        exclude: ^(asv_bench|pandas/tests|doc)/
    -   id: inconsistent-namespace-usage
        name: 'Check for inconsistent use of pandas namespace in tests'
        entry: python scripts/check_for_inconsistent_pandas_namespace.py
        language: python
        types: [python]
        files: ^pandas/tests/
    -   id: FrameOrSeriesUnion
        name: Check for use of Union[Series, DataFrame] instead of FrameOrSeriesUnion alias
        entry: Union\[.*(Series.*DataFrame|DataFrame.*Series).*\]
        language: pygrep
        types: [python]
        exclude: ^pandas/_typing\.py$
    -   id: type-not-class
        name: Check for use of foo.__class__ instead of type(foo)
        entry: \.__class__
        language: pygrep
        files: \.(py|pyx)$
    -   id: unwanted-typing
        name: Check for use of comment-based annotation syntax and missing error codes
        entry: |
            (?x)
            \#\ type:\ (?!ignore)|
            \#\ type:\s?ignore(?!\[)
        language: pygrep
        types: [python]
    -   id: no-os-remove
        name: Check code for instances of os.remove
        entry: os\.remove
        language: pygrep
        types: [python]
        files: ^pandas/tests/
        exclude: |
            (?x)^
            pandas/tests/io/excel/test_writers\.py|
            pandas/tests/io/pytables/common\.py|
            pandas/tests/io/pytables/test_store\.py$
-   repo: https://github.com/asottile/yesqa
    rev: v1.2.2
    hooks:
    -   id: yesqa
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.3.0
    hooks:
    -   id: end-of-file-fixer
        exclude: ^LICENSES/|\.(html|csv|txt|svg|py)$
    -   id: trailing-whitespace
        exclude: \.(html|svg)$