diff options
author | Timothy Edmund Crosley <timothy.crosley@gmail.com> | 2023-01-25 21:36:38 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-25 21:36:38 -0800 |
commit | ae0cc1c8a2b313f1519c82ddcb493bef6082cc7b (patch) | |
tree | 71aebeed9a5b81f6dc504f2bf96d2aaf94938196 | |
parent | 06d8ef58a15751eda085547cc2095a6dea098f3b (diff) | |
parent | 920e9ea799bd4eee1bc67a3261c1a42d8a44acd3 (diff) | |
download | isort-ae0cc1c8a2b313f1519c82ddcb493bef6082cc7b.tar.gz |
Merge pull request #1967 from vkomarov-r7/feature/directory-hooks
Add the ability to restrict which directories isort works against
-rw-r--r-- | isort/hooks.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/isort/hooks.py b/isort/hooks.py index 135886fc..b8e6c946 100644 --- a/isort/hooks.py +++ b/isort/hooks.py @@ -6,7 +6,7 @@ usage: import os import subprocess # nosec - Needed for hook from pathlib import Path -from typing import List +from typing import List, Optional from isort import Config, api, exceptions @@ -32,7 +32,8 @@ def get_lines(command: List[str]) -> List[str]: def git_hook( - strict: bool = False, modify: bool = False, lazy: bool = False, settings_file: str = "" + strict: bool = False, modify: bool = False, lazy: bool = False, settings_file: str = "", + directories: Optional[List[str]] = None, ) -> int: """Git pre-commit hook to check staged files for isort errors @@ -50,6 +51,7 @@ def git_hook( When settings_file is the empty string, the configuration file will be searched starting at the directory containing the first staged file, if any, and going upward in the directory structure. + :param list[str] directories - A list of directories to restrict the hook to. :return number of errors if in strict mode, 0 otherwise. """ @@ -57,6 +59,8 @@ def git_hook( diff_cmd = ["git", "diff-index", "--cached", "--name-only", "--diff-filter=ACMRTUXB", "HEAD"] if lazy: diff_cmd.remove("--cached") + if directories: + diff_cmd.extend(directories) files_modified = get_lines(diff_cmd) if not files_modified: |