Commit 17c19bd6 authored by Jason R. Coombs's avatar Jason R. Coombs

Extracted directory detection and presence of '.' in name.

parent 45457777
...@@ -50,15 +50,13 @@ def find_packages(where='.', exclude=(), include=('*',)): ...@@ -50,15 +50,13 @@ def find_packages(where='.', exclude=(), include=('*',)):
stack=[(convert_path(where), '')] stack=[(convert_path(where), '')]
while stack: while stack:
where,prefix = stack.pop(0) where,prefix = stack.pop(0)
for name in os.listdir(where): dirs = _dirs(where)
suitable = filterfalse(lambda n: '.' in n, dirs)
for name in suitable:
fn = os.path.join(where,name) fn = os.path.join(where,name)
looks_like_package = ( looks_like_package = (
'.' not in name os.path.isfile(os.path.join(fn, '__init__.py'))
and os.path.isdir(fn) or sys.version_info[:2] >= (3, 3) # PEP 420
and (
os.path.isfile(os.path.join(fn, '__init__.py'))
or sys.version_info[:2] >= (3, 3) # PEP 420
)
) )
if looks_like_package: if looks_like_package:
pkg_name = prefix + name pkg_name = prefix + name
...@@ -70,6 +68,16 @@ def find_packages(where='.', exclude=(), include=('*',)): ...@@ -70,6 +68,16 @@ def find_packages(where='.', exclude=(), include=('*',)):
out = filterfalse(excludes, out) out = filterfalse(excludes, out)
return list(out) return list(out)
def _dirs(target):
"""
Return all directories in target
"""
return (
fn
for fn in os.listdir(target)
if os.path.isdir(os.path.join(target, fn))
)
def _build_filter(*patterns): def _build_filter(*patterns):
""" """
Given a list of patterns, return a callable that will be true only if Given a list of patterns, return a callable that will be true only if
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment