You can easily use nbqa as a pre-commit hook.

Here’s an example of what you could include in your .pre-commit-config.yaml file:

- repo:
  rev: 1.3.1
   - id: nbqa-black
     additional_dependencies: [black==20.8b1]
   - id: nbqa-pyupgrade
     additional_dependencies: [pyupgrade==2.7.3]
   - id: nbqa-isort
     additional_dependencies: [isort==5.6.4]

For best reproducibility, you should pin your dependencies (as above). Running pre-commit autoupdate will update your hooks’ versions, but versions of additional dependencies need to updated manually.

See .pre-commit-hooks.yaml for all available built-in hooks.

Custom hooks

If you have your own custom tool (e.g. customtool) for which we currently don’t have a built-in hook, you can define your own one with:

- repo:
  rev: 1.3.1
    - id: nbqa
      entry: nbqa customtool
      name: nbqa-customtool
      alias: nbqa-customtool
      additional_dependencies: [customtool==<version number>]

If there are additional Python code quality tools you would like us to make a hook for, please open a pull request or let us know in the issue tracker!


See configuration for how to further configure how nbqa should run each tool. Also, see the pre-commit documentation for how to further configure these hooks.

Temporarily disable hooks

Although not recommended, it is still possible to temporarily disable all checks using git commit --no-verify, or just specific ones using the SKIP environment variable. For example, on a Unix-like operating system:

SKIP=nbqa-black git commit -m "foo"

For more details, please check out the pre-commit documentation.