Skip to content

Commit

Permalink
Ignore dependencies, which have become part of stdlib
Browse files Browse the repository at this point in the history
To avoid confusing error messages about unavailable dependencies, ignore those
which are known to have been becoming part of python's standard library.

At the moment that's "pathlib" and "typing" for python 3.8
  • Loading branch information
deathaxe committed Oct 14, 2023
1 parent bb8327a commit 97fd0a1
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 3 deletions.
19 changes: 19 additions & 0 deletions package_control/library.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
from . import distinfo
from .clear_directory import delete_directory

# 3rd-party libraries, which are part of stdlib as of certain python version
BUILTIN_38_LIBRARIES = {
"3.3": {},
"3.8": {"pathlib", "typing"}
}

# Most legacy dependency are simply re-packed python packages.
# Some of them had been given different names, which would cause issues, when
# installing them directly from pypi.org. They are therefore translated, using
Expand All @@ -25,6 +31,19 @@
}


def builtin_libraries(python_version):
"""
Determine built-in library names, which were 3rd-party libraries before
:param python_version:
The python version to return built-in libraries for
:returns:
A set of library names.
"""
return BUILTIN_38_LIBRARIES.get(python_version, set())


def translate_name(dependency_name):
"""
Translate old dependency name to real pypi library name
Expand Down
22 changes: 19 additions & 3 deletions package_control/package_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,13 @@ def get_libraries(self, package_name):
if not names:
return set()

return set(library.Library(library.translate_name(name), python_version) for name in names)
builtin = library.builtin_libraries(python_version)

return set(
library.Library(library.translate_name(name), python_version)
for name in names
if name not in builtin
)

def get_python_version(self, package_name):
"""
Expand Down Expand Up @@ -1230,8 +1236,13 @@ def install_library(self, lib):
library_names = self.select_libraries(lib_info)

if library_names:
builtin = library.builtin_libraries(lib.python_version)
self.install_libraries(
(library.Library(library.translate_name(name), lib.python_version) for name in library_names),
(
library.Library(library.translate_name(name), lib.python_version)
for name in library_names
if name not in builtin
),
fail_early=False
)

Expand Down Expand Up @@ -1567,8 +1578,13 @@ def install_package(self, package_name, unattended=False):
library_names = self.select_libraries(lib_info)

if library_names:
builtin = library.builtin_libraries(python_version)
self.install_libraries(
(library.Library(library.translate_name(name), python_version) for name in library_names),
(
library.Library(library.translate_name(name), python_version)
for name in library_names
if name not in builtin
),
fail_early=False
)

Expand Down

0 comments on commit 97fd0a1

Please sign in to comment.