From 872f6b0892a0be7597eaa9814cde003c02554ebf Mon Sep 17 00:00:00 2001 From: Ethan Paul <24588726+enpaul@users.noreply.github.com> Date: Fri, 4 Dec 2020 17:50:29 -0500 Subject: [PATCH] Update poetry dependency to be installed as optional extra MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 😬 --- poetry.lock | 66 +++++++++++++++++++++++++------------------------- pyproject.toml | 7 ++++-- 2 files changed, 38 insertions(+), 35 deletions(-) diff --git a/poetry.lock b/poetry.lock index 4969431..6f68ed7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -123,7 +123,7 @@ name = "cachecontrol" version = "0.12.6" description = "httplib2 caching for requests" category = "main" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.dependencies] @@ -148,7 +148,7 @@ name = "cachy" version = "0.3.0" description = "Cachy provides a simple yet effective caching library." category = "main" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.extras] @@ -169,7 +169,7 @@ name = "cffi" version = "1.14.4" description = "Foreign Function Interface for Python calling C code." category = "main" -optional = false +optional = true python-versions = "*" [package.dependencies] @@ -196,7 +196,7 @@ name = "cleo" version = "0.8.1" description = "Cleo allows you to create beautiful and testable command-line interfaces." category = "main" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.dependencies] @@ -215,7 +215,7 @@ name = "clikit" version = "0.6.2" description = "CliKit is a group of utilities to build beautiful and testable command line interfaces." category = "main" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.dependencies] @@ -247,7 +247,7 @@ name = "crashtest" version = "0.3.1" description = "Manage Python errors with ease" category = "main" -optional = false +optional = true python-versions = ">=3.6,<4.0" [[package]] @@ -255,7 +255,7 @@ name = "cryptography" version = "3.2.1" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "main" -optional = false +optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" [package.dependencies] @@ -263,11 +263,11 @@ cffi = ">=1.8,<1.11.3 || >1.11.3" six = ">=1.4.1" [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)"] pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] 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]] name = "dataclasses" @@ -344,7 +344,7 @@ name = "html5lib" version = "1.1" description = "HTML parser based on the WHATWG HTML specification" category = "main" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [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" [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)"] [[package]] @@ -485,7 +485,7 @@ name = "jeepney" version = "0.6.0" description = "Low-level, pure Python DBus protocol wrapper." category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.extras] @@ -496,7 +496,7 @@ name = "keyring" version = "21.5.0" description = "Store and access your passwords safely." category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] @@ -507,7 +507,7 @@ SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} [package.extras] 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]] name = "lazy-object-proxy" @@ -522,7 +522,7 @@ name = "lockfile" version = "0.12.2" description = "Platform-independent file locking module" category = "main" -optional = false +optional = true python-versions = "*" [[package]] @@ -538,7 +538,7 @@ name = "msgpack" version = "1.0.0" description = "MessagePack (de)serializer." category = "main" -optional = false +optional = true python-versions = "*" [[package]] @@ -601,7 +601,7 @@ name = "pastel" version = "0.2.1" description = "Bring colors to your terminal." category = "main" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] @@ -644,7 +644,7 @@ name = "pkginfo" version = "1.6.1" description = "Query metadatdata from sdists / bdists / installed packages." category = "main" -optional = false +optional = true python-versions = "*" [package.extras] @@ -669,7 +669,7 @@ name = "poetry" version = "1.1.4" description = "Python dependency management and packaging made easy." category = "main" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [package.dependencies] @@ -764,7 +764,7 @@ name = "pycparser" version = "2.20" description = "C parser in Python" category = "main" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] @@ -780,7 +780,7 @@ name = "pylev" version = "1.3.0" description = "A pure Python Levenshtein implementation that's not freaking GPL'd." category = "main" -optional = false +optional = true python-versions = "*" [[package]] @@ -826,7 +826,7 @@ py = ">=1.8.2" toml = "*" [package.extras] -checkqa_mypy = ["mypy (0.780)"] +checkqa_mypy = ["mypy (==0.780)"] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] [[package]] @@ -842,14 +842,14 @@ coverage = ">=4.4" pytest = ">=4.6" [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]] name = "pywin32-ctypes" version = "0.2.0" description = "" category = "main" -optional = false +optional = true python-versions = "*" [[package]] @@ -895,14 +895,14 @@ urllib3 = ">=1.21.1,<1.27" [package.extras] 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]] name = "requests-toolbelt" version = "0.9.1" description = "A utility belt for advanced users of python-requests" category = "main" -optional = false +optional = true python-versions = "*" [package.dependencies] @@ -950,7 +950,7 @@ name = "secretstorage" version = "3.3.0" description = "Python bindings to FreeDesktop.org Secret Service API" category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] @@ -962,7 +962,7 @@ name = "shellingham" version = "1.3.2" description = "Tool to Detect Surrounding Shell" category = "main" -optional = false +optional = true python-versions = "!=3.0,!=3.1,!=3.2,!=3.3,>=2.6" [[package]] @@ -1006,7 +1006,7 @@ name = "tomlkit" version = "0.7.0" description = "Style preserving TOML library" category = "main" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] @@ -1073,7 +1073,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" [package.extras] brotli = ["brotlipy (>=0.6.0)"] 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]] name = "virtualenv" @@ -1108,7 +1108,7 @@ name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" category = "main" -optional = false +optional = true python-versions = "*" [[package]] @@ -1129,12 +1129,12 @@ python-versions = ">=3.6" [package.extras] 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] lock-version = "1.1" python-versions = "^3.6.1" -content-hash = "8eea42cb6c60df03376bb264b444ccd0a63a211122edc6625284d57204295273" +content-hash = "b466984a069123fa9c5af59c37a6a8c8404742eb90a45c37fc6d73d87e6383f8" [metadata.files] appdirs = [ diff --git a/pyproject.toml b/pyproject.toml index 34ee599..6efee11 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,11 +32,14 @@ classifiers = [ [tool.poetry.plugins.tox] poetry_installer = "tox_poetry_installer" +[tool.poetry.extras] +poetry = ["poetry"] + [tool.poetry.dependencies] python = "^3.6.1" -poetry = "^1.0.0" +poetry = {version = "^1.0.0", optional = true} poetry-core = "^1.0.0" -tox = "^2.3.0 || ^3.0.0" +tox = "^3.0.0" [tool.poetry.dev-dependencies] bandit = "^1.6.2"