From 4d2c2e6297878bd8451b1942384227c754bb5cb9 Mon Sep 17 00:00:00 2001 From: Ethan Paul <24588726+enpaul@users.noreply.github.com> Date: Fri, 16 Apr 2021 20:20:32 -0400 Subject: [PATCH] Update unsafe packages set to use internal constant One less thing that ties us to poetry proper --- tox_poetry_installer/_poetry.py | 1 - tox_poetry_installer/constants.py | 4 ++++ tox_poetry_installer/utilities.py | 4 +--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tox_poetry_installer/_poetry.py b/tox_poetry_installer/_poetry.py index 67fce38..19773cb 100644 --- a/tox_poetry_installer/_poetry.py +++ b/tox_poetry_installer/_poetry.py @@ -32,7 +32,6 @@ try: from poetry.installation.pip_installer import PipInstaller from poetry.io.null_io import NullIO from poetry.poetry import Poetry - from poetry.puzzle.provider import Provider from poetry.utils.env import VirtualEnv except ImportError: raise exceptions.PoetryNotInstalledError( diff --git a/tox_poetry_installer/constants.py b/tox_poetry_installer/constants.py index 0fd0947..3be4fd8 100644 --- a/tox_poetry_installer/constants.py +++ b/tox_poetry_installer/constants.py @@ -5,6 +5,7 @@ in this module. All constants should be type hinted. """ +from typing import Set from typing import Tuple from tox_poetry_installer import __about__ @@ -17,3 +18,6 @@ PEP508_VERSION_DELIMITERS: Tuple[str, ...] = ("~=", "==", "!=", ">", "<") # Prefix all reporter messages should include to indicate that they came from this module in the # console output. REPORTER_PREFIX: str = f"{__about__.__title__}:" + +# Internal list of packages that poetry has deemed unsafe and are excluded from the lockfile +UNSAFE_PACKAGES: Set[str] = {"distribute", "pip", "setuptools", "wheel"} diff --git a/tox_poetry_installer/utilities.py b/tox_poetry_installer/utilities.py index fd95daf..6f7ac80 100644 --- a/tox_poetry_installer/utilities.py +++ b/tox_poetry_installer/utilities.py @@ -89,8 +89,6 @@ def identify_transients( .. note:: The package corresponding to the dependency specified by the ``dep`` parameter will be included in the returned list of packages. """ - from tox_poetry_installer import _poetry - transients: List[PoetryPackage] = [] searched: Set[str] = set() @@ -114,7 +112,7 @@ def identify_transients( except KeyError as err: dep_name = err.args[0] - if dep_name in _poetry.Provider.UNSAFE_PACKAGES: + if dep_name in constants.UNSAFE_PACKAGES: logger.warning( f"Installing package '{dep_name}' using Poetry is not supported and will be skipped" )