diff --git a/pipreqs/pipreqs.py b/pipreqs/pipreqs.py index a8e4d4c..5e4bae2 100755 --- a/pipreqs/pipreqs.py +++ b/pipreqs/pipreqs.py @@ -13,7 +13,7 @@ Options: $ export HTTP_PROXY="http://10.10.1.10:3128" $ export HTTPS_PROXY="https://10.10.1.10:1080" --debug Print debug information - --ignore ... Ignore extra directories + --ignore ... Ignore extra directories, each separated by a comma --encoding Use encoding parameter for file open --savepath Save the list of requirements in the given file --force Overwrite existing requirements.txt @@ -44,13 +44,18 @@ else: open_func = codecs.open -def get_all_imports(path, encoding=None, extra_ignore_dirs = []): +def get_all_imports(path, encoding=None, extra_ignore_dirs=None): imports = set() raw_imports = set() candidates = [] ignore_errors = False ignore_dirs = [".hg", ".svn", ".git", "__pycache__", "env", "venv"] - ignore_dirs.extend(extra_ignore_dirs) + + if extra_ignore_dirs: + ignore_dirs_parsed = [] + for e in extra_ignore_dirs: + ignore_dirs_parsed.append(os.path.basename(os.path.realpath(e))) + ignore_dirs.extend(ignore_dirs_parsed) for root, dirs, files in os.walk(path): dirs[:] = [d for d in dirs if d not in ignore_dirs] @@ -195,7 +200,10 @@ def join(f): def init(args): encoding = args.get('--encoding') - extra_ignore_dirs = args.get('--ignore', []) + extra_ignore_dirs = args.get('--ignore') + + if extra_ignore_dirs: + extra_ignore_dirs = extra_ignore_dirs.split(',') candidates = get_all_imports(args[''], encoding=encoding, diff --git a/tests/_data_ignore/.ignore_second/ignored.py b/tests/_data_ignore/.ignore_second/ignored.py index 6a4ba40..b970ae3 100644 --- a/tests/_data_ignore/.ignore_second/ignored.py +++ b/tests/_data_ignore/.ignore_second/ignored.py @@ -1,2 +1,2 @@ # Everything in here should be ignored -from getpass import getpass \ No newline at end of file +from pattern.web import Twitter, plaintext \ No newline at end of file diff --git a/tests/test_pipreqs.py b/tests/test_pipreqs.py index 7ccbfd2..99fe8fc 100755 --- a/tests/test_pipreqs.py +++ b/tests/test_pipreqs.py @@ -154,7 +154,7 @@ class TestPipreqs(unittest.TestCase): '--use-local': None, '--force': True, '--proxy':None, '--pypi-server':None, - '--ignore':['.ignored_dir', '.ignore_second'] + '--ignore':'.ignored_dir,.ignore_second' } ) with open(os.path.join(self.project_with_ignore_directory, "requirements.txt"), "r") as f: