Update poetry dependency to be installed as optional extra

When running 'poetry remove tox-poetry-installer' in the same env as
poetry is installed to, poetry will uninstall itself. This is, obviously,
not ideal.

This change makes poetry an optional dependency so that the plugin can be
installed (and uninstalled) alongside poetry in the same env without
breaking the poetry installation. The intention is that the plugin can be
installed with the 'poetry' extra when being installed to an isolated environment
where poetry is not otherwise available.

This is a mitigation of Issue #2 as an alternative to vendorization of the enitre
poetry project 😬
This commit is contained in:
Ethan Paul 2020-12-04 17:50:29 -05:00
parent afad7663f0
commit 872f6b0892
No known key found for this signature in database
GPG Key ID: C5F5542B54A4D9C6
2 changed files with 38 additions and 35 deletions

66
poetry.lock generated
View File

@ -123,7 +123,7 @@ name = "cachecontrol"
version = "0.12.6" version = "0.12.6"
description = "httplib2 caching for requests" description = "httplib2 caching for requests"
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.dependencies] [package.dependencies]
@ -148,7 +148,7 @@ name = "cachy"
version = "0.3.0" version = "0.3.0"
description = "Cachy provides a simple yet effective caching library." description = "Cachy provides a simple yet effective caching library."
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.extras] [package.extras]
@ -169,7 +169,7 @@ name = "cffi"
version = "1.14.4" version = "1.14.4"
description = "Foreign Function Interface for Python calling C code." description = "Foreign Function Interface for Python calling C code."
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[package.dependencies] [package.dependencies]
@ -196,7 +196,7 @@ name = "cleo"
version = "0.8.1" version = "0.8.1"
description = "Cleo allows you to create beautiful and testable command-line interfaces." description = "Cleo allows you to create beautiful and testable command-line interfaces."
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.dependencies] [package.dependencies]
@ -215,7 +215,7 @@ name = "clikit"
version = "0.6.2" version = "0.6.2"
description = "CliKit is a group of utilities to build beautiful and testable command line interfaces." description = "CliKit is a group of utilities to build beautiful and testable command line interfaces."
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.dependencies] [package.dependencies]
@ -247,7 +247,7 @@ name = "crashtest"
version = "0.3.1" version = "0.3.1"
description = "Manage Python errors with ease" description = "Manage Python errors with ease"
category = "main" category = "main"
optional = false optional = true
python-versions = ">=3.6,<4.0" python-versions = ">=3.6,<4.0"
[[package]] [[package]]
@ -255,7 +255,7 @@ name = "cryptography"
version = "3.2.1" version = "3.2.1"
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
[package.dependencies] [package.dependencies]
@ -263,11 +263,11 @@ cffi = ">=1.8,<1.11.3 || >1.11.3"
six = ">=1.4.1" six = ">=1.4.1"
[package.extras] [package.extras]
docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0,<3.1.0 || >3.1.0,<3.1.1 || >3.1.1)", "sphinx-rtd-theme"] docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
ssh = ["bcrypt (>=3.1.5)"] ssh = ["bcrypt (>=3.1.5)"]
test = ["pytest (>=3.6.0,<3.9.0 || >3.9.0,<3.9.1 || >3.9.1,<3.9.2 || >3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,<3.79.2 || >3.79.2)"] test = ["pytest (>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
[[package]] [[package]]
name = "dataclasses" name = "dataclasses"
@ -344,7 +344,7 @@ name = "html5lib"
version = "1.1" version = "1.1"
description = "HTML parser based on the WHATWG HTML specification" description = "HTML parser based on the WHATWG HTML specification"
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[package.dependencies] [package.dependencies]
@ -477,7 +477,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
parso = ">=0.7.0,<0.8.0" parso = ">=0.7.0,<0.8.0"
[package.extras] [package.extras]
qa = ["flake8 (3.7.9)"] qa = ["flake8 (==3.7.9)"]
testing = ["Django (<3.1)", "colorama", "docopt", "pytest (>=3.9.0,<5.0.0)"] testing = ["Django (<3.1)", "colorama", "docopt", "pytest (>=3.9.0,<5.0.0)"]
[[package]] [[package]]
@ -485,7 +485,7 @@ name = "jeepney"
version = "0.6.0" version = "0.6.0"
description = "Low-level, pure Python DBus protocol wrapper." description = "Low-level, pure Python DBus protocol wrapper."
category = "main" category = "main"
optional = false optional = true
python-versions = ">=3.6" python-versions = ">=3.6"
[package.extras] [package.extras]
@ -496,7 +496,7 @@ name = "keyring"
version = "21.5.0" version = "21.5.0"
description = "Store and access your passwords safely." description = "Store and access your passwords safely."
category = "main" category = "main"
optional = false optional = true
python-versions = ">=3.6" python-versions = ">=3.6"
[package.dependencies] [package.dependencies]
@ -507,7 +507,7 @@ SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""}
[package.extras] [package.extras]
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "pytest-black (>=0.3.7)", "pytest-mypy"] testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "pytest-black (>=0.3.7)", "pytest-mypy"]
[[package]] [[package]]
name = "lazy-object-proxy" name = "lazy-object-proxy"
@ -522,7 +522,7 @@ name = "lockfile"
version = "0.12.2" version = "0.12.2"
description = "Platform-independent file locking module" description = "Platform-independent file locking module"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -538,7 +538,7 @@ name = "msgpack"
version = "1.0.0" version = "1.0.0"
description = "MessagePack (de)serializer." description = "MessagePack (de)serializer."
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -601,7 +601,7 @@ name = "pastel"
version = "0.2.1" version = "0.2.1"
description = "Bring colors to your terminal." description = "Bring colors to your terminal."
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]] [[package]]
@ -644,7 +644,7 @@ name = "pkginfo"
version = "1.6.1" version = "1.6.1"
description = "Query metadatdata from sdists / bdists / installed packages." description = "Query metadatdata from sdists / bdists / installed packages."
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[package.extras] [package.extras]
@ -669,7 +669,7 @@ name = "poetry"
version = "1.1.4" version = "1.1.4"
description = "Python dependency management and packaging made easy." description = "Python dependency management and packaging made easy."
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[package.dependencies] [package.dependencies]
@ -764,7 +764,7 @@ name = "pycparser"
version = "2.20" version = "2.20"
description = "C parser in Python" description = "C parser in Python"
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]] [[package]]
@ -780,7 +780,7 @@ name = "pylev"
version = "1.3.0" version = "1.3.0"
description = "A pure Python Levenshtein implementation that's not freaking GPL'd." description = "A pure Python Levenshtein implementation that's not freaking GPL'd."
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -826,7 +826,7 @@ py = ">=1.8.2"
toml = "*" toml = "*"
[package.extras] [package.extras]
checkqa_mypy = ["mypy (0.780)"] checkqa_mypy = ["mypy (==0.780)"]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
[[package]] [[package]]
@ -842,14 +842,14 @@ coverage = ">=4.4"
pytest = ">=4.6" pytest = ">=4.6"
[package.extras] [package.extras]
testing = ["fields", "hunter", "process-tests (2.0.2)", "six", "pytest-xdist", "virtualenv"] testing = ["fields", "hunter", "process-tests (==2.0.2)", "six", "pytest-xdist", "virtualenv"]
[[package]] [[package]]
name = "pywin32-ctypes" name = "pywin32-ctypes"
version = "0.2.0" version = "0.2.0"
description = "" description = ""
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -895,14 +895,14 @@ urllib3 = ">=1.21.1,<1.27"
[package.extras] [package.extras]
security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"] socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
[[package]] [[package]]
name = "requests-toolbelt" name = "requests-toolbelt"
version = "0.9.1" version = "0.9.1"
description = "A utility belt for advanced users of python-requests" description = "A utility belt for advanced users of python-requests"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[package.dependencies] [package.dependencies]
@ -950,7 +950,7 @@ name = "secretstorage"
version = "3.3.0" version = "3.3.0"
description = "Python bindings to FreeDesktop.org Secret Service API" description = "Python bindings to FreeDesktop.org Secret Service API"
category = "main" category = "main"
optional = false optional = true
python-versions = ">=3.6" python-versions = ">=3.6"
[package.dependencies] [package.dependencies]
@ -962,7 +962,7 @@ name = "shellingham"
version = "1.3.2" version = "1.3.2"
description = "Tool to Detect Surrounding Shell" description = "Tool to Detect Surrounding Shell"
category = "main" category = "main"
optional = false optional = true
python-versions = "!=3.0,!=3.1,!=3.2,!=3.3,>=2.6" python-versions = "!=3.0,!=3.1,!=3.2,!=3.3,>=2.6"
[[package]] [[package]]
@ -1006,7 +1006,7 @@ name = "tomlkit"
version = "0.7.0" version = "0.7.0"
description = "Style preserving TOML library" description = "Style preserving TOML library"
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package]] [[package]]
@ -1073,7 +1073,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
[package.extras] [package.extras]
brotli = ["brotlipy (>=0.6.0)"] brotli = ["brotlipy (>=0.6.0)"]
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
[[package]] [[package]]
name = "virtualenv" name = "virtualenv"
@ -1108,7 +1108,7 @@ name = "webencodings"
version = "0.5.1" version = "0.5.1"
description = "Character encoding aliases for legacy web content" description = "Character encoding aliases for legacy web content"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -1129,12 +1129,12 @@ python-versions = ">=3.6"
[package.extras] [package.extras]
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = "^3.6.1" python-versions = "^3.6.1"
content-hash = "8eea42cb6c60df03376bb264b444ccd0a63a211122edc6625284d57204295273" content-hash = "b466984a069123fa9c5af59c37a6a8c8404742eb90a45c37fc6d73d87e6383f8"
[metadata.files] [metadata.files]
appdirs = [ appdirs = [

View File

@ -32,11 +32,14 @@ classifiers = [
[tool.poetry.plugins.tox] [tool.poetry.plugins.tox]
poetry_installer = "tox_poetry_installer" poetry_installer = "tox_poetry_installer"
[tool.poetry.extras]
poetry = ["poetry"]
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.6.1" python = "^3.6.1"
poetry = "^1.0.0" poetry = {version = "^1.0.0", optional = true}
poetry-core = "^1.0.0" poetry-core = "^1.0.0"
tox = "^2.3.0 || ^3.0.0" tox = "^3.0.0"
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
bandit = "^1.6.2" bandit = "^1.6.2"