Skip to content

Commit 3d89208

Browse files
committed
Define some known managed paths for the operating system python installs
1 parent be351fd commit 3d89208

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

src/ducktools/pythonfinder/linux/__init__.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@
3737
from .pyenv_search import get_pyenv_pythons, get_pyenv_root
3838

3939

40+
KNOWN_MANAGED_PATHS = {
41+
"/usr/bin": "OS",
42+
"/bin": "OS",
43+
"/usr/sbin": "OS",
44+
"/sbin": "OS",
45+
}
46+
47+
4048
def get_path_pythons(*, finder: DetailFinder | None = None) -> Iterator[PythonInstall]:
4149
exe_names = set()
4250

@@ -46,7 +54,7 @@ def get_path_pythons(*, finder: DetailFinder | None = None) -> Iterator[PythonIn
4654

4755
excluded_folders = [pyenv_root, uv_root]
4856

49-
finder = DetailFinder if finder is None else finder
57+
finder = DetailFinder() if finder is None else finder
5058

5159
for fld in path_folders:
5260
# Don't retrieve pyenv installs
@@ -63,6 +71,9 @@ def get_path_pythons(*, finder: DetailFinder | None = None) -> Iterator[PythonIn
6371
continue
6472

6573
for install in get_folder_pythons(fld, finder=finder):
74+
if manager := KNOWN_MANAGED_PATHS.get(os.path.dirname(install.executable)):
75+
install.managed_by = manager
76+
6677
name = os.path.basename(install.executable)
6778
if name in exe_names:
6879
install.shadowed = True

0 commit comments

Comments
 (0)