diff options
| author | Anderson Bravalheri <andersonbravalheri@gmail.com> | 2022-03-25 12:51:34 +0000 |
|---|---|---|
| committer | Anderson Bravalheri <andersonbravalheri@gmail.com> | 2022-03-25 12:58:15 +0000 |
| commit | fac2737b118356f37e99e3448dd5366ee58b6fa1 (patch) | |
| tree | e93ee8550f7342a344d6ab47060b149b640cfb18 /setuptools/config | |
| parent | 4923d1139be9366b3010a6d6e56d4c4980a0ab6e (diff) | |
| download | python-setuptools-git-fac2737b118356f37e99e3448dd5366ee58b6fa1.tar.gz | |
Avoid unnecessarily changing package_dir
And also avoid using './' paths
Diffstat (limited to 'setuptools/config')
| -rw-r--r-- | setuptools/config/expand.py | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/setuptools/config/expand.py b/setuptools/config/expand.py index 3985040c..04442bd8 100644 --- a/setuptools/config/expand.py +++ b/setuptools/config/expand.py @@ -292,8 +292,8 @@ def find_packages( :rtype: list """ - - from setuptools.discovery import remove_nested_packages + from setuptools.discovery import construct_package_dir + from setuptools.extern.more_itertools import unique_everseen, always_iterable if namespaces: from setuptools.discovery import PEP420PackageFinder as PackageFinder @@ -302,18 +302,18 @@ def find_packages( root_dir = root_dir or os.curdir where = kwargs.pop('where', ['.']) - if isinstance(where, str): - where = [where] - - packages = [] + packages: List[str] = [] fill_package_dir = {} if fill_package_dir is None else fill_package_dir - for path in where: - pkgs = PackageFinder.find(_nest_path(root_dir, path), **kwargs) + + for path in unique_everseen(always_iterable(where)): + package_path = _nest_path(root_dir, path) + pkgs = PackageFinder.find(package_path, **kwargs) packages.extend(pkgs) - if fill_package_dir.get("") != path: - parent_pkgs = remove_nested_packages(pkgs) - parent = {pkg: "/".join([path, *pkg.split(".")]) for pkg in parent_pkgs} - fill_package_dir.update(parent) + if pkgs and not ( + fill_package_dir.get("") == path + or os.path.samefile(package_path, root_dir) + ): + fill_package_dir.update(construct_package_dir(pkgs, path)) return packages |
