Method: pylint.lint.pylinter.PyLinter._discover_files
Calls: 21, Exceptions: 19, Paths: 3Back
Path 1: 10 calls (0.48)
['/Users/andrehora/Documents/git/projects-pathspotter/pylint/tests/lint/../regrtest_data/directory'] (6) ['/Users/andrehora/Documents/git/projects-pat...
None (40) '/Users/andrehora/Documents/git/projects-pathspotter/pylint/tests/lint/../regrtest_data/directory/subdirectory/module.py' (12) '/Users/andre...
GeneratorExit (10)
1def _discover_files(self, files_or_modules: Sequence[str]) -> Iterator[str]:
2 """Discover python modules and packages in sub-directory.
3
4 Returns iterator of paths to discovered modules and packages.
5 """
6 for something in files_or_modules:
7 if os.path.isdir(something) and not os.path.isfile(
8 os.path.join(something, "__init__.py")
9 ):
10 skip_subtrees: list[str] = []
11 for root, _, files in os.walk(something):
12 if any(root.startswith(s) for s in skip_subtrees):
13 # Skip subtree of already discovered package.
14 continue
15
16 if _is_ignored_file(
17 root,
18 self.config.ignore,
19 self.config.ignore_patterns,
20 self.config.ignore_paths,
21 ):
22 skip_subtrees.append(root)
23 continue
24
25 if "__init__.py" in files:
26 skip_subtrees.append(root)
27 yield root
28 else:
29 yield from (
30 os.path.join(root, file)
31 for file in files
32 if file.endswith(".py")
33 )
34 else:
35 yield something
Path 2: 9 calls (0.43)
['/Users/andrehora/Documents/git/projects-pathspotter/pylint/tests/lint/../regrtest_data/directory'] (6) ['/Users/andrehora/Documents/git/projects-pat...
None (27) '/Users/andrehora/Documents/git/projects-pathspotter/pylint/tests/lint/../regrtest_data/directory/subdirectory/module.py' (12) '/Users/andre...
GeneratorExit (9)
1def _discover_files(self, files_or_modules: Sequence[str]) -> Iterator[str]:
2 """Discover python modules and packages in sub-directory.
3
4 Returns iterator of paths to discovered modules and packages.
5 """
6 for something in files_or_modules:
7 if os.path.isdir(something) and not os.path.isfile(
8 os.path.join(something, "__init__.py")
9 ):
10 skip_subtrees: list[str] = []
11 for root, _, files in os.walk(something):
12 if any(root.startswith(s) for s in skip_subtrees):
13 # Skip subtree of already discovered package.
14 continue
15
16 if _is_ignored_file(
17 root,
18 self.config.ignore,
19 self.config.ignore_patterns,
20 self.config.ignore_paths,
21 ):
22 skip_subtrees.append(root)
23 continue
24
25 if "__init__.py" in files:
26 skip_subtrees.append(root)
27 yield root
28 else:
29 yield from (
30 os.path.join(root, file)
31 for file in files
32 if file.endswith(".py")
33 )
34 else:
35 yield something
Path 3: 2 calls (0.1)
['/Users/andrehora/Documents/git/projects-pathspotter/pylint/tests/regrtest_data/directory/subdirectory'] (1) ['.'] (1)
None (4) '/Users/andrehora/Documents/git/projects-pathspotter/pylint/tests/regrtest_data/directory/subdirectory/module.py' (2) '/Users/andrehora/Docum...
1def _discover_files(self, files_or_modules: Sequence[str]) -> Iterator[str]:
2 """Discover python modules and packages in sub-directory.
3
4 Returns iterator of paths to discovered modules and packages.
5 """
6 for something in files_or_modules:
7 if os.path.isdir(something) and not os.path.isfile(
8 os.path.join(something, "__init__.py")
9 ):
10 skip_subtrees: list[str] = []
11 for root, _, files in os.walk(something):
12 if any(root.startswith(s) for s in skip_subtrees):
13 # Skip subtree of already discovered package.
14 continue
15
16 if _is_ignored_file(
17 root,
18 self.config.ignore,
19 self.config.ignore_patterns,
20 self.config.ignore_paths,
21 ):
22 skip_subtrees.append(root)
23 continue
24
25 if "__init__.py" in files:
26 skip_subtrees.append(root)
27 yield root
28 else:
29 yield from (
30 os.path.join(root, file)
31 for file in files
32 if file.endswith(".py")
33 )
34 else:
35 yield something