summaryrefslogtreecommitdiff
path: root/isort/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'isort/main.py')
-rw-r--r--isort/main.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/isort/main.py b/isort/main.py
index 17d2471b..8d5e2353 100644
--- a/isort/main.py
+++ b/isort/main.py
@@ -295,6 +295,8 @@ def parse_args(argv: Optional[Sequence[str]] = None) -> Dict[str, Any]:
'where it may not be safe to operate in')
parser.add_argument('--case-sensitive', dest='case_sensitive', action='store_true',
help='Tells isort to include casing when sorting module names')
+ parser.add_argument('--filter-files', dest='filter_files', action='store_true',
+ help='Tells isort to filter files even when they are explicitly passed in as part of the command')
parser.add_argument('files', nargs='*', help='One or more Python source files that need their imports sorted.')
arguments = {key: value for key, value in vars(parser.parse_args(argv)).items() if value}
@@ -343,6 +345,16 @@ def main(argv: Optional[Sequence[str]] = None) -> None:
config.update(arguments)
wrong_sorted_files = False
skipped = [] # type: List[str]
+
+ if config.get('filter_files'):
+ filtered_files = []
+ for file_name in file_names:
+ if file_should_be_skipped(file_name, config):
+ skipped.append(file_name)
+ else:
+ filtered_files.append(file_name)
+ file_names = filtered_files
+
if arguments.get('recursive', False):
file_names = iter_source_code(file_names, config, skipped)
num_skipped = 0