summaryrefslogtreecommitdiff
path: root/coverage/files.py
diff options
context:
space:
mode:
authorMarc Abramowitz <marc@marc-abramowitz.com>2012-07-07 09:27:36 -0700
committerMarc Abramowitz <marc@marc-abramowitz.com>2012-07-07 09:27:36 -0700
commitafb29fd79ca4275bbd427ba5c1a0633dec0ae21d (patch)
tree702a9142ced05c39a6bcaf2ef219a573a79311df /coverage/files.py
parent4c2f4e949ed4e3cb559fad2d635d2e191dc2f2b2 (diff)
parent07b188473f945262949a5ce0cf3ee7b1e943a6ee (diff)
downloadpython-coveragepy-git-afb29fd79ca4275bbd427ba5c1a0633dec0ae21d.tar.gz
Merge with upstream changes
Diffstat (limited to 'coverage/files.py')
-rw-r--r--coverage/files.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/coverage/files.py b/coverage/files.py
index e6dc4aa1..e07c5766 100644
--- a/coverage/files.py
+++ b/coverage/files.py
@@ -207,9 +207,17 @@ class PathAliases(object):
def find_python_files(dirname):
- """Yield all of the importable Python files in `dirname`, recursively."""
- for dirpath, dirnames, filenames in os.walk(dirname, topdown=True):
- if '__init__.py' not in filenames:
+ """Yield all of the importable Python files in `dirname`, recursively.
+
+ To be importable, the files have to be in a directory with a __init__.py,
+ except for `dirname` itself, which isn't required to have one. The
+ assumption is that `dirname` was specified directly, so the user knows
+ best, but subdirectories are checked for a __init__.py to be sure we only
+ find the importable files.
+
+ """
+ for i, (dirpath, dirnames, filenames) in enumerate(os.walk(dirname)):
+ if i > 0 and '__init__.py' not in filenames:
# If a directory doesn't have __init__.py, then it isn't
# importable and neither are its files
del dirnames[:]