From 7b7a61e0271feff29a9f85c59f7cc3439476f5c6 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 20 Jan 2020 23:08:37 -0500 Subject: [PATCH 01/35] consistently use `doc` for the tox env --- .travis.yml | 2 +- tox.ini | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 43f2a15..f4bc6e8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ env: - SEGFAULT_SIGNALS=all matrix: - TOXENV=check - - TOXENV=docs + - TOXENV=doc matrix: include: - python: '3.6' diff --git a/tox.ini b/tox.ini index ba35b7f..d0f967b 100644 --- a/tox.ini +++ b/tox.ini @@ -4,14 +4,14 @@ envlist = clean, check, - docs, + doc, {py36,py37,pypy3}, report [testenv] basepython = pypy3: {env:TOXPYTHON:pypy3} - {docs,spell}: {env:TOXPYTHON:python3.6} + {doc,spell}: {env:TOXPYTHON:python3.6} py36: {env:TOXPYTHON:python3.6} py37: {env:TOXPYTHON:python3.7} {bootstrap,clean,check,report,codecov}: {env:TOXPYTHON:python3} From b879e6550614aef2e36d7392ff2e67aab7921748 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 20 Jan 2020 23:19:55 -0500 Subject: [PATCH 02/35] add 3.8 and separate doc/check runs --- .travis.yml | 18 ++++++++++++------ tox.ini | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index f4bc6e8..da5db17 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,23 +1,29 @@ language: python sudo: false cache: pip + env: global: - LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so - SEGFAULT_SIGNALS=all - matrix: - - TOXENV=check - - TOXENV=doc + matrix: include: - python: '3.6' env: - TOXENV=py36,report,codecov - python: '3.7' - dist: xenial - sudo: required env: - - TOXENV=py37,report,codecov,doc + - TOXENV=py37,report,codecov + - python: '3.8' + env: + - TOXENV=py38,report,codecov + - python: '3.8' + env: + - TOXENV=doc + - python: '3.8' + env: + - TOXENV=check before_install: - python --version - uname -a diff --git a/tox.ini b/tox.ini index d0f967b..9b6367a 100644 --- a/tox.ini +++ b/tox.ini @@ -5,7 +5,7 @@ envlist = clean, check, doc, - {py36,py37,pypy3}, + {py36,py37,py38,pypy3}, report [testenv] From e9f96d03f94565756f61b0a2c108cbfc11433ac4 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 20 Jan 2020 23:26:01 -0500 Subject: [PATCH 03/35] cleanup python version spec in tox.ini --- tox.ini | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tox.ini b/tox.ini index 9b6367a..ca6fb4e 100644 --- a/tox.ini +++ b/tox.ini @@ -9,12 +9,6 @@ envlist = report [testenv] -basepython = - pypy3: {env:TOXPYTHON:pypy3} - {doc,spell}: {env:TOXPYTHON:python3.6} - py36: {env:TOXPYTHON:python3.6} - py37: {env:TOXPYTHON:python3.7} - {bootstrap,clean,check,report,codecov}: {env:TOXPYTHON:python3} setenv = PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes @@ -38,6 +32,7 @@ commands = python ci/bootstrap.py [testenv:check] +basepython=python3.8 deps = -r requirements.txt -r dev-requirements.txt @@ -49,6 +44,7 @@ commands = isort --verbose --check-only --diff --recursive src tests setup.py [testenv:spell] +basepython=python3.8 setenv = SPELLCHECK=1 commands = @@ -60,7 +56,7 @@ deps = pyenchant [testenv:doc] -basepython=python3.7 +basepython=python3.8 deps = -r{toxinidir}/docs/requirements.txt From bdabe05ca7761ca0135c927e86d4c02ccd0c0153 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 20 Jan 2020 23:37:54 -0500 Subject: [PATCH 04/35] pypy3 on travis --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index da5db17..be2d26a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,9 @@ matrix: - python: '3.8' env: - TOXENV=py38,report,codecov + - python: 'pypy3' + env: + - TOXENV=pypy3,report,codecov - python: '3.8' env: - TOXENV=doc From 456fca7e5c3818118e7adb1d75fe52e6c4faf8c8 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 20 Jan 2020 23:38:25 -0500 Subject: [PATCH 05/35] list 3.8 in setup.py classifiers --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 34fe8ad..134d8d0 100755 --- a/setup.py +++ b/setup.py @@ -69,6 +69,7 @@ def read(*names, **kwargs): "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", # uncomment if you test on these interpreters: From 7c0b33b8b2d9a96f5c9f9bb3361afe3718beefef Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 20 Jan 2020 23:38:42 -0500 Subject: [PATCH 06/35] python_requires=['>=3.6'] --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 134d8d0..7274077 100755 --- a/setup.py +++ b/setup.py @@ -78,6 +78,7 @@ def read(*names, **kwargs): # "Programming Language :: Python :: Implementation :: Stackless", "Topic :: Utilities", ], + python_requires=['>=3.6'], keywords=[ # eg: "keyword1", "keyword2", "keyword3", ], From 0bd2e0914671d5a57f5448055c1e81b07bcae608 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 20 Jan 2020 23:41:07 -0500 Subject: [PATCH 07/35] correct python_requires --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 7274077..7a64a6a 100755 --- a/setup.py +++ b/setup.py @@ -78,7 +78,7 @@ def read(*names, **kwargs): # "Programming Language :: Python :: Implementation :: Stackless", "Topic :: Utilities", ], - python_requires=['>=3.6'], + python_requires='>=3.6', keywords=[ # eg: "keyword1", "keyword2", "keyword3", ], From 774ccd8d34b5191cd337dd4c4604a3c3aed31d4e Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Tue, 21 Jan 2020 10:52:02 -0500 Subject: [PATCH 08/35] stop setting PYTHONPATH in tox.ini --- tox.ini | 1 - 1 file changed, 1 deletion(-) diff --git a/tox.ini b/tox.ini index ca6fb4e..414d3bf 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,6 @@ envlist = [testenv] setenv = - PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes passenv = * From dc6111aefb34b847df6589a687843568ca13aeb6 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Tue, 21 Jan 2020 10:52:25 -0500 Subject: [PATCH 09/35] use envpython and envbindir in tox.ini --- tox.ini | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/tox.ini b/tox.ini index 414d3bf..628f838 100644 --- a/tox.ini +++ b/tox.ini @@ -20,7 +20,7 @@ deps = pytest-travis-fold pytest-cov commands = - pytest {posargs:--cov --cov-report=term-missing -vv --doctest-modules tests} + {envbindir}/pytest {posargs:--cov --cov-report=term-missing -vv --doctest-modules tests} [testenv:bootstrap] deps = @@ -28,7 +28,7 @@ deps = matrix skip_install = true commands = - python ci/bootstrap.py + {envpython} ci/bootstrap.py [testenv:check] basepython=python3.8 @@ -37,22 +37,22 @@ deps = -r dev-requirements.txt skip_install = true commands = - python setup.py check --strict --metadata --restructuredtext - check-manifest {toxinidir} - black --check - isort --verbose --check-only --diff --recursive src tests setup.py + {envpython} setup.py check --strict --metadata --restructuredtext + {envbindir}/check-manifest {toxinidir} + {envbindir}/black --check + {envbindir}/isort --verbose --check-only --diff --recursive src tests setup.py [testenv:spell] basepython=python3.8 setenv = SPELLCHECK=1 commands = - sphinx-build -b spelling docs dist/docs + {envbindir}/sphinx-build -b spelling docs dist/docs skip_install = true deps = -r{toxinidir}/docs/requirements.txt - sphinxcontrib-spelling - pyenchant + {envbindir}/sphinxcontrib-spelling + {envbindir}/pyenchant [testenv:doc] basepython=python3.8 @@ -60,26 +60,26 @@ deps = -r{toxinidir}/docs/requirements.txt commands = - sphinx-apidoc -o docs/reference src/desert - pytest --doctest-modules --doctest-glob=*.rst src docs - sphinx-build {posargs:-E} -b html docs dist/docs - sphinx-build -b linkcheck docs dist/docs + {envbindir}/sphinx-apidoc -o docs/reference src/desert + {envbindir}/pytest --doctest-modules --doctest-glob=*.rst src docs + {envbindir}/sphinx-build {posargs:-E} -b html docs dist/docs + {envbindir}/sphinx-build -b linkcheck docs dist/docs [testenv:codecov] deps = codecov skip_install = true commands = - coverage xml --ignore-errors - codecov [] + {envbindir}/coverage xml --ignore-errors + {envbindir}/codecov [] [testenv:report] deps = coverage cuvner skip_install = true commands = - coverage report - coverage html + {envbindir}/coverage report + {envbindir}/coverage html [testenv:clean] From ea787ee2fcd615c08b7ef3055782fedf069baa28 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Tue, 21 Jan 2020 22:54:47 -0500 Subject: [PATCH 10/35] introduce test-requirements.in/txt --- dev-requirements.in | 7 - dev-requirements.txt | 380 +++++++++++++++++++++++++++++++++++------- pycli | 23 +-- requirements.txt | 24 ++- setup.py | 9 +- test-requirements.in | 12 ++ test-requirements.txt | 170 +++++++++++++++++++ tox.ini | 9 +- 8 files changed, 542 insertions(+), 92 deletions(-) create mode 100644 test-requirements.in create mode 100644 test-requirements.txt diff --git a/dev-requirements.in b/dev-requirements.in index 27ff036..dcf085f 100644 --- a/dev-requirements.in +++ b/dev-requirements.in @@ -1,7 +1,3 @@ -coverage -cuvner -pytest -tox versioneer black pylint @@ -13,9 +9,6 @@ readme-renderer pygments isort mypy -pytest-sphinx towncrier -marshmallow-union -marshmallow-enum twine wheel diff --git a/dev-requirements.txt b/dev-requirements.txt index 7b51403..8c66b10 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -2,61 +2,329 @@ # This file is autogenerated by pip-compile # To update, run: # -# pip-compile --output-file=dev-requirements.txt dev-requirements.in +# pip-compile --generate-hashes --output-file=dev-requirements.txt dev-requirements.in dev-requirements.in requirements.in # -ansicolors==1.0.2 # via cuvner -appdirs==1.4.3 # via black -argh==0.26.2 # via watchdog -astroid==2.2.5 # via pylint -atomicwrites==1.3.0 # via pytest -attrs==19.1.0 # via black, pytest -black==19.3b0 -bleach==3.1.0 # via readme-renderer -bump2version==0.5.10 -check-manifest==0.39 -click==7.0 # via black, cuvner, towncrier -coverage==4.5.3 -cuvner==18.0.1 -docutils==0.14 -filelock==3.0.12 # via tox -importlib-metadata==0.18 # via pluggy, pytest -incremental==17.5.0 # via cuvner, towncrier -isort==4.3.20 -jinja2==2.10.1 # via towncrier -lazy-object-proxy==1.4.1 # via astroid -markupsafe==1.1.1 # via jinja2 -marshmallow-enum==1.5.1 -marshmallow-union==0.1.12 -marshmallow==3.2.1 # via marshmallow-enum, marshmallow-union -mccabe==0.6.1 # via pylint -more-itertools==7.0.0 # via pytest -mypy-extensions==0.4.1 # via mypy -mypy==0.710 -packaging==19.0 # via pytest -pathtools==0.1.2 # via watchdog -pex==1.6.7 -pluggy==0.12.0 # via pytest, tox -py==1.8.0 # via pytest, tox -pygments==2.4.2 -pylint==2.3.1 -pyparsing==2.4.0 # via packaging -pytest-sphinx==0.2.2 -pytest==4.6.3 -pyyaml==5.1.1 # via watchdog -readme-renderer==24.0 -six==1.12.0 # via astroid, bleach, cuvner, packaging, pytest, readme-renderer, tox -toml==0.10.0 # via black, check-manifest, towncrier, tox -towncrier==19.2.0 -tox==3.12.1 -typed-ast==1.4.0 # via astroid, mypy -unidiff==0.5.5 # via cuvner -versioneer==0.18 -virtualenv==16.6.1 # via tox -watchdog==0.9.0 # via cuvner -wcwidth==0.1.7 # via pytest -webencodings==0.5.1 # via bleach -wrapt==1.11.2 # via astroid -zipp==0.5.1 # via importlib-metadata +appdirs==1.4.3 \ + --hash=sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92 \ + --hash=sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e \ + # via black +astroid==2.2.5 \ + --hash=sha256:6560e1e1749f68c64a4b5dee4e091fce798d2f0d84ebe638cf0e0585a343acf4 \ + --hash=sha256:b65db1bbaac9f9f4d190199bb8680af6f6f84fd3769a5ea883df8a91fe68b4c4 \ + # via pylint +attrs==19.1.0 \ + --hash=sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79 \ + --hash=sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399 +black==19.10b0 \ + --hash=sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b \ + --hash=sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539 +bleach==3.1.0 \ + --hash=sha256:213336e49e102af26d9cde77dd2d0397afabc5a6bf2fed985dc35b5d1e285a16 \ + --hash=sha256:3fdf7f77adcf649c9911387df51254b813185e32b2c6619f690b593a617e19fa \ + # via readme-renderer +bump2version==0.5.10 \ + --hash=sha256:185abfd0d8321ec5059424d8b670aa82f7385948ff7ddd986981b4ed04dc819a +certifi==2019.11.28 \ + --hash=sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3 \ + --hash=sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f \ + # via requests +cffi==1.13.2 \ + --hash=sha256:0b49274afc941c626b605fb59b59c3485c17dc776dc3cc7cc14aca74cc19cc42 \ + --hash=sha256:0e3ea92942cb1168e38c05c1d56b0527ce31f1a370f6117f1d490b8dcd6b3a04 \ + --hash=sha256:135f69aecbf4517d5b3d6429207b2dff49c876be724ac0c8bf8e1ea99df3d7e5 \ + --hash=sha256:19db0cdd6e516f13329cba4903368bff9bb5a9331d3410b1b448daaadc495e54 \ + --hash=sha256:2781e9ad0e9d47173c0093321bb5435a9dfae0ed6a762aabafa13108f5f7b2ba \ + --hash=sha256:291f7c42e21d72144bb1c1b2e825ec60f46d0a7468f5346841860454c7aa8f57 \ + --hash=sha256:2c5e309ec482556397cb21ede0350c5e82f0eb2621de04b2633588d118da4396 \ + --hash=sha256:2e9c80a8c3344a92cb04661115898a9129c074f7ab82011ef4b612f645939f12 \ + --hash=sha256:32a262e2b90ffcfdd97c7a5e24a6012a43c61f1f5a57789ad80af1d26c6acd97 \ + --hash=sha256:3c9fff570f13480b201e9ab69453108f6d98244a7f495e91b6c654a47486ba43 \ + --hash=sha256:415bdc7ca8c1c634a6d7163d43fb0ea885a07e9618a64bda407e04b04333b7db \ + --hash=sha256:42194f54c11abc8583417a7cf4eaff544ce0de8187abaf5d29029c91b1725ad3 \ + --hash=sha256:4424e42199e86b21fc4db83bd76909a6fc2a2aefb352cb5414833c030f6ed71b \ + --hash=sha256:4a43c91840bda5f55249413037b7a9b79c90b1184ed504883b72c4df70778579 \ + --hash=sha256:599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346 \ + --hash=sha256:5c4fae4e9cdd18c82ba3a134be256e98dc0596af1e7285a3d2602c97dcfa5159 \ + --hash=sha256:5ecfa867dea6fabe2a58f03ac9186ea64da1386af2159196da51c4904e11d652 \ + --hash=sha256:62f2578358d3a92e4ab2d830cd1c2049c9c0d0e6d3c58322993cc341bdeac22e \ + --hash=sha256:6471a82d5abea994e38d2c2abc77164b4f7fbaaf80261cb98394d5793f11b12a \ + --hash=sha256:6d4f18483d040e18546108eb13b1dfa1000a089bcf8529e30346116ea6240506 \ + --hash=sha256:71a608532ab3bd26223c8d841dde43f3516aa5d2bf37b50ac410bb5e99053e8f \ + --hash=sha256:74a1d8c85fb6ff0b30fbfa8ad0ac23cd601a138f7509dc617ebc65ef305bb98d \ + --hash=sha256:7b93a885bb13073afb0aa73ad82059a4c41f4b7d8eb8368980448b52d4c7dc2c \ + --hash=sha256:7d4751da932caaec419d514eaa4215eaf14b612cff66398dd51129ac22680b20 \ + --hash=sha256:7f627141a26b551bdebbc4855c1157feeef18241b4b8366ed22a5c7d672ef858 \ + --hash=sha256:8169cf44dd8f9071b2b9248c35fc35e8677451c52f795daa2bb4643f32a540bc \ + --hash=sha256:aa00d66c0fab27373ae44ae26a66a9e43ff2a678bf63a9c7c1a9a4d61172827a \ + --hash=sha256:ccb032fda0873254380aa2bfad2582aedc2959186cce61e3a17abc1a55ff89c3 \ + --hash=sha256:d754f39e0d1603b5b24a7f8484b22d2904fa551fe865fd0d4c3332f078d20d4e \ + --hash=sha256:d75c461e20e29afc0aee7172a0950157c704ff0dd51613506bd7d82b718e7410 \ + --hash=sha256:dcd65317dd15bc0451f3e01c80da2216a31916bdcffd6221ca1202d96584aa25 \ + --hash=sha256:e570d3ab32e2c2861c4ebe6ffcad6a8abf9347432a37608fe1fbd157b3f0036b \ + --hash=sha256:fd43a88e045cf992ed09fa724b5315b790525f2676883a6ea64e3263bae6549d \ + # via cryptography +chardet==3.0.4 \ + --hash=sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae \ + --hash=sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691 \ + # via requests +check-manifest==0.39 \ + --hash=sha256:8754cc8efd7c062a3705b442d1c23ff702d4477b41a269c2e354b25e1f5535a4 \ + --hash=sha256:a4c555f658a7c135b8a22bd26c2e55cfaf5876e4d5962d8c25652f2addd556bc +click==7.0 \ + --hash=sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13 \ + --hash=sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7 \ + # via black, towncrier +cryptography==2.8 \ + --hash=sha256:02079a6addc7b5140ba0825f542c0869ff4df9a69c360e339ecead5baefa843c \ + --hash=sha256:1df22371fbf2004c6f64e927668734070a8953362cd8370ddd336774d6743595 \ + --hash=sha256:369d2346db5934345787451504853ad9d342d7f721ae82d098083e1f49a582ad \ + --hash=sha256:3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651 \ + --hash=sha256:44ff04138935882fef7c686878e1c8fd80a723161ad6a98da31e14b7553170c2 \ + --hash=sha256:4b1030728872c59687badcca1e225a9103440e467c17d6d1730ab3d2d64bfeff \ + --hash=sha256:58363dbd966afb4f89b3b11dfb8ff200058fbc3b947507675c19ceb46104b48d \ + --hash=sha256:6ec280fb24d27e3d97aa731e16207d58bd8ae94ef6eab97249a2afe4ba643d42 \ + --hash=sha256:7270a6c29199adc1297776937a05b59720e8a782531f1f122f2eb8467f9aab4d \ + --hash=sha256:73fd30c57fa2d0a1d7a49c561c40c2f79c7d6c374cc7750e9ac7c99176f6428e \ + --hash=sha256:7f09806ed4fbea8f51585231ba742b58cbcfbfe823ea197d8c89a5e433c7e912 \ + --hash=sha256:90df0cc93e1f8d2fba8365fb59a858f51a11a394d64dbf3ef844f783844cc793 \ + --hash=sha256:971221ed40f058f5662a604bd1ae6e4521d84e6cad0b7b170564cc34169c8f13 \ + --hash=sha256:a518c153a2b5ed6b8cc03f7ae79d5ffad7315ad4569b2d5333a13c38d64bd8d7 \ + --hash=sha256:b0de590a8b0979649ebeef8bb9f54394d3a41f66c5584fff4220901739b6b2f0 \ + --hash=sha256:b43f53f29816ba1db8525f006fa6f49292e9b029554b3eb56a189a70f2a40879 \ + --hash=sha256:d31402aad60ed889c7e57934a03477b572a03af7794fa8fb1780f21ea8f6551f \ + --hash=sha256:de96157ec73458a7f14e3d26f17f8128c959084931e8997b9e655a39c8fde9f9 \ + --hash=sha256:df6b4dca2e11865e6cfbfb708e800efb18370f5a46fd601d3755bc7f85b3a8a2 \ + --hash=sha256:ecadccc7ba52193963c0475ac9f6fa28ac01e01349a2ca48509667ef41ffd2cf \ + --hash=sha256:fb81c17e0ebe3358486cd8cc3ad78adbae58af12fc2bf2bc0bb84e8090fa5ce8 \ + # via secretstorage +dataclasses==0.6 \ + --hash=sha256:454a69d788c7fda44efd71e259be79577822f5e3f53f029a22d08004e951dc9f \ + --hash=sha256:6988bd2b895eef432d562370bb707d540f32f7360ab13da45340101bc2307d84 +docutils==0.14 \ + --hash=sha256:02aec4bd92ab067f6ff27a38a38a41173bf01bed8f89157768c1573f53e474a6 \ + --hash=sha256:51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274 \ + --hash=sha256:7a4bd47eaf6596e1295ecb11361139febe29b084a87bf005bf899f9a42edc3c6 +idna==2.8 \ + --hash=sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407 \ + --hash=sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c \ + # via requests +incremental==17.5.0 \ + --hash=sha256:717e12246dddf231a349175f48d74d93e2897244939173b01974ab6661406b9f \ + --hash=sha256:7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3 \ + # via towncrier +isort==4.3.20 \ + --hash=sha256:c40744b6bc5162bbb39c1257fe298b7a393861d50978b565f3ccd9cb9de0182a \ + --hash=sha256:f57abacd059dc3bd666258d1efb0377510a89777fda3e3274e3c01f7c03ae22d +jeepney==0.4.2 \ + --hash=sha256:0ba6d8c597e9bef1ebd18aaec595f942a264e25c1a48f164d46120eacaa2e9bb \ + --hash=sha256:6f45dce1125cf6c58a1c88123d3831f36a789f9204fbad3172eac15f8ccd08d0 \ + # via keyring, secretstorage +jinja2==2.10.1 \ + --hash=sha256:065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013 \ + --hash=sha256:14dd6caf1527abb21f08f86c784eac40853ba93edb79552aa1e4b8aef1b61c7b \ + # via towncrier +keyring==21.1.0 \ + --hash=sha256:1f393f7466314068961c7e1d508120c092bd71fa54e3d93b76180b526d4abc56 \ + --hash=sha256:24ae23ab2d6adc59138339e56843e33ec7b0a6b2f06302662477085c6c0aca00 \ + # via twine +lazy-object-proxy==1.4.1 \ + --hash=sha256:159a745e61422217881c4de71f9eafd9d703b93af95618635849fe469a283661 \ + --hash=sha256:23f63c0821cc96a23332e45dfaa83266feff8adc72b9bcaef86c202af765244f \ + --hash=sha256:3b11be575475db2e8a6e11215f5aa95b9ec14de658628776e10d96fa0b4dac13 \ + --hash=sha256:3f447aff8bc61ca8b42b73304f6a44fa0d915487de144652816f950a3f1ab821 \ + --hash=sha256:4ba73f6089cd9b9478bc0a4fa807b47dbdb8fad1d8f31a0f0a5dbf26a4527a71 \ + --hash=sha256:4f53eadd9932055eac465bd3ca1bd610e4d7141e1278012bd1f28646aebc1d0e \ + --hash=sha256:64483bd7154580158ea90de5b8e5e6fc29a16a9b4db24f10193f0c1ae3f9d1ea \ + --hash=sha256:6f72d42b0d04bfee2397aa1862262654b56922c20a9bb66bb76b6f0e5e4f9229 \ + --hash=sha256:7c7f1ec07b227bdc561299fa2328e85000f90179a2f44ea30579d38e037cb3d4 \ + --hash=sha256:7c8b1ba1e15c10b13cad4171cfa77f5bb5ec2580abc5a353907780805ebe158e \ + --hash=sha256:8559b94b823f85342e10d3d9ca4ba5478168e1ac5658a8a2f18c991ba9c52c20 \ + --hash=sha256:a262c7dfb046f00e12a2bdd1bafaed2408114a89ac414b0af8755c696eb3fc16 \ + --hash=sha256:acce4e3267610c4fdb6632b3886fe3f2f7dd641158a843cf6b6a68e4ce81477b \ + --hash=sha256:be089bb6b83fac7f29d357b2dc4cf2b8eb8d98fe9d9ff89f9ea6012970a853c7 \ + --hash=sha256:bfab710d859c779f273cc48fb86af38d6e9210f38287df0069a63e40b45a2f5c \ + --hash=sha256:c10d29019927301d524a22ced72706380de7cfc50f767217485a912b4c8bd82a \ + --hash=sha256:dd6e2b598849b3d7aee2295ac765a578879830fb8966f70be8cd472e6069932e \ + --hash=sha256:e408f1eacc0a68fed0c08da45f31d0ebb38079f043328dce69ff133b95c29dc1 \ + # via astroid +markupsafe==1.1.1 \ + --hash=sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473 \ + --hash=sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161 \ + --hash=sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235 \ + --hash=sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5 \ + --hash=sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff \ + --hash=sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b \ + --hash=sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1 \ + --hash=sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e \ + --hash=sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183 \ + --hash=sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66 \ + --hash=sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1 \ + --hash=sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1 \ + --hash=sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e \ + --hash=sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b \ + --hash=sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905 \ + --hash=sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735 \ + --hash=sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d \ + --hash=sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e \ + --hash=sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d \ + --hash=sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c \ + --hash=sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21 \ + --hash=sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2 \ + --hash=sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5 \ + --hash=sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b \ + --hash=sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6 \ + --hash=sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f \ + --hash=sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f \ + --hash=sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7 \ + # via jinja2 +marshmallow==3.2.1 \ + --hash=sha256:077b4612f5d3b9333b736fdc6b963d2b46d409070f44ff3e6c4109645c673e83 \ + --hash=sha256:9a2f3e8ea5f530a9664e882d7d04b58650f46190178b2264c72b7d20399d28f0 +mccabe==0.6.1 \ + --hash=sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42 \ + --hash=sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f \ + # via pylint +mypy-extensions==0.4.1 \ + --hash=sha256:37e0e956f41369209a3d5f34580150bcacfabaa57b33a15c0b25f4b5725e0812 \ + --hash=sha256:b16cabe759f55e3409a7d231ebd2841378fb0c27a5d1994719e340e4f429ac3e \ + # via mypy, typing-inspect +mypy==0.710 \ + --hash=sha256:0c00f90cb20d3b5a7fa9b190e92e8a94cd4bbb26dd58bbed13bfc76677a39700 \ + --hash=sha256:104086c924b1ac605bed1539886b86202c02b08f78649b45881b4a624ff66a46 \ + --hash=sha256:207d37116a4a06143f50a2d83d537cf43e7cd648e6969b6176da9e2881ec1c22 \ + --hash=sha256:5922d6fdebec30131e4077f3b45d8634410a464f665976bba880ee815cee2a64 \ + --hash=sha256:5ad4cc4c54f82cd0b01905720dc340f16d1e4d6c1535bbfa6dfa045f957be4a2 \ + --hash=sha256:5f210761b3e94b30ed3ff559ab8bee35a187df070d28d577bd123c8a76e2cd2d \ + --hash=sha256:66e679562e486aa440abd3f9f366a3a116576ef2b0ba24584dded9ae8d1719ac \ + --hash=sha256:67a632ea4596b417ed9af60fde828f6c6bb7e83e7f7f0d7057a3a1dece940199 \ + --hash=sha256:953e5e10203df8691fcd8ce40a5e6e2ec37144b9fb5adf6bcbafc6b74bda0593 \ + --hash=sha256:9e80c47b3d621cf8f98e58cc202a03a92b430a4d736129197a2a83cbe35a3243 \ + --hash=sha256:d0e3c21620637b1548c1e0f0c2b56617dd0a9dc1fda1afa00210db5922487cd3 +pathspec==0.7.0 \ + --hash=sha256:163b0632d4e31cef212976cf57b43d9fd6b0bac6e67c26015d611a647d5e7424 \ + --hash=sha256:562aa70af2e0d434367d9790ad37aed893de47f1693e4201fd1d3dca15d19b96 \ + # via black +pex==1.6.7 \ + --hash=sha256:6ada49d45b6a141d2e27a0ea60aa7f46432a8cde9db06049792a3d64af7dfb69 \ + --hash=sha256:dc95eed8047a6644a21b9814841efb31447aaeae587c3835c9262db29007e3c1 +pkginfo==1.5.0.1 \ + --hash=sha256:7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb \ + --hash=sha256:a6d9e40ca61ad3ebd0b72fbadd4fba16e4c0e4df0428c041e01e06eb6ee71f32 \ + # via twine +pycparser==2.19 \ + --hash=sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3 \ + # via cffi +pygments==2.4.2 \ + --hash=sha256:71e430bc85c88a430f000ac1d9b331d2407f681d6f6aec95e8bcfbc3df5b0127 \ + --hash=sha256:881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297 +pylint==2.3.1 \ + --hash=sha256:5d77031694a5fb97ea95e828c8d10fc770a1df6eb3906067aaed42201a8a6a09 \ + --hash=sha256:723e3db49555abaf9bf79dc474c6b9e2935ad82230b10c1138a71ea41ac0fff1 +readme-renderer==24.0 \ + --hash=sha256:bb16f55b259f27f75f640acf5e00cf897845a8b3e4731b5c1a436e4b8529202f \ + --hash=sha256:c8532b79afc0375a85f10433eca157d6b50f7d6990f337fa498c96cd4bfc203d +regex==2020.1.8 \ + --hash=sha256:07b39bf943d3d2fe63d46281d8504f8df0ff3fe4c57e13d1656737950e53e525 \ + --hash=sha256:0932941cdfb3afcbc26cc3bcf7c3f3d73d5a9b9c56955d432dbf8bbc147d4c5b \ + --hash=sha256:0e182d2f097ea8549a249040922fa2b92ae28be4be4895933e369a525ba36576 \ + --hash=sha256:10671601ee06cf4dc1bc0b4805309040bb34c9af423c12c379c83d7895622bb5 \ + --hash=sha256:23e2c2c0ff50f44877f64780b815b8fd2e003cda9ce817a7fd00dea5600c84a0 \ + --hash=sha256:26ff99c980f53b3191d8931b199b29d6787c059f2e029b2b0c694343b1708c35 \ + --hash=sha256:27429b8d74ba683484a06b260b7bb00f312e7c757792628ea251afdbf1434003 \ + --hash=sha256:3e77409b678b21a056415da3a56abfd7c3ad03da71f3051bbcdb68cf44d3c34d \ + --hash=sha256:4e8f02d3d72ca94efc8396f8036c0d3bcc812aefc28ec70f35bb888c74a25161 \ + --hash=sha256:4eae742636aec40cf7ab98171ab9400393360b97e8f9da67b1867a9ee0889b26 \ + --hash=sha256:6a6ae17bf8f2d82d1e8858a47757ce389b880083c4ff2498dba17c56e6c103b9 \ + --hash=sha256:6a6ba91b94427cd49cd27764679024b14a96874e0dc638ae6bdd4b1a3ce97be1 \ + --hash=sha256:7bcd322935377abcc79bfe5b63c44abd0b29387f267791d566bbb566edfdd146 \ + --hash=sha256:98b8ed7bb2155e2cbb8b76f627b2fd12cf4b22ab6e14873e8641f266e0fb6d8f \ + --hash=sha256:bd25bb7980917e4e70ccccd7e3b5740614f1c408a642c245019cff9d7d1b6149 \ + --hash=sha256:d0f424328f9822b0323b3b6f2e4b9c90960b24743d220763c7f07071e0778351 \ + --hash=sha256:d58e4606da2a41659c84baeb3cfa2e4c87a74cec89a1e7c56bee4b956f9d7461 \ + --hash=sha256:e3cd21cc2840ca67de0bbe4071f79f031c81418deb544ceda93ad75ca1ee9f7b \ + --hash=sha256:e6c02171d62ed6972ca8631f6f34fa3281d51db8b326ee397b9c83093a6b7242 \ + --hash=sha256:e7c7661f7276507bce416eaae22040fd91ca471b5b33c13f8ff21137ed6f248c \ + --hash=sha256:ecc6de77df3ef68fee966bb8cb4e067e84d4d1f397d0ef6fce46913663540d77 \ + # via black +requests-toolbelt==0.9.1 \ + --hash=sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f \ + --hash=sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0 \ + # via twine +requests==2.22.0 \ + --hash=sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4 \ + --hash=sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31 \ + # via requests-toolbelt, twine +secretstorage==3.1.2 \ + --hash=sha256:15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6 \ + --hash=sha256:b5ec909dde94d4ae2fa26af7c089036997030f0cf0a5cb372b4cccabd81c143b \ + # via keyring +six==1.12.0 \ + --hash=sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c \ + --hash=sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73 \ + # via astroid, bleach, cryptography, readme-renderer +toml==0.10.0 \ + --hash=sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c \ + --hash=sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e \ + # via black, check-manifest, towncrier +towncrier==19.2.0 \ + --hash=sha256:48251a1ae66d2cf7e6fa5552016386831b3e12bb3b2d08eb70374508c17a8196 \ + --hash=sha256:de19da8b8cb44f18ea7ed3a3823087d2af8fcf497151bb9fd1e1b092ff56ed8d +tqdm==4.41.1 \ + --hash=sha256:4789ccbb6fc122b5a6a85d512e4e41fc5acad77216533a6f2b8ce51e0f265c23 \ + --hash=sha256:efab950cf7cc1e4d8ee50b2bb9c8e4a89f8307b49e0b2c9cfef3ec4ca26655eb \ + # via twine +twine==3.1.1 \ + --hash=sha256:c1af8ca391e43b0a06bbc155f7f67db0bf0d19d284bfc88d1675da497a946124 \ + --hash=sha256:d561a5e511f70275e5a485a6275ff61851c16ffcb3a95a602189161112d9f160 +typed-ast==1.4.0 \ + --hash=sha256:1170afa46a3799e18b4c977777ce137bb53c7485379d9706af8a59f2ea1aa161 \ + --hash=sha256:18511a0b3e7922276346bcb47e2ef9f38fb90fd31cb9223eed42c85d1312344e \ + --hash=sha256:262c247a82d005e43b5b7f69aff746370538e176131c32dda9cb0f324d27141e \ + --hash=sha256:2b907eb046d049bcd9892e3076c7a6456c93a25bebfe554e931620c90e6a25b0 \ + --hash=sha256:354c16e5babd09f5cb0ee000d54cfa38401d8b8891eefa878ac772f827181a3c \ + --hash=sha256:48e5b1e71f25cfdef98b013263a88d7145879fbb2d5185f2a0c79fa7ebbeae47 \ + --hash=sha256:4e0b70c6fc4d010f8107726af5fd37921b666f5b31d9331f0bd24ad9a088e631 \ + --hash=sha256:630968c5cdee51a11c05a30453f8cd65e0cc1d2ad0d9192819df9978984529f4 \ + --hash=sha256:66480f95b8167c9c5c5c87f32cf437d585937970f3fc24386f313a4c97b44e34 \ + --hash=sha256:71211d26ffd12d63a83e079ff258ac9d56a1376a25bc80b1cdcdf601b855b90b \ + --hash=sha256:7954560051331d003b4e2b3eb822d9dd2e376fa4f6d98fee32f452f52dd6ebb2 \ + --hash=sha256:838997f4310012cf2e1ad3803bce2f3402e9ffb71ded61b5ee22617b3a7f6b6e \ + --hash=sha256:95bd11af7eafc16e829af2d3df510cecfd4387f6453355188342c3e79a2ec87a \ + --hash=sha256:bc6c7d3fa1325a0c6613512a093bc2a2a15aeec350451cbdf9e1d4bffe3e3233 \ + --hash=sha256:cc34a6f5b426748a507dd5d1de4c1978f2eb5626d51326e43280941206c209e1 \ + --hash=sha256:d755f03c1e4a51e9b24d899561fec4ccaf51f210d52abdf8c07ee2849b212a36 \ + --hash=sha256:d7c45933b1bdfaf9f36c579671fec15d25b06c8398f113dab64c18ed1adda01d \ + --hash=sha256:d896919306dd0aa22d0132f62a1b78d11aaf4c9fc5b3410d3c666b818191630a \ + --hash=sha256:fdc1c9bbf79510b76408840e009ed65958feba92a88833cdceecff93ae8fff66 \ + --hash=sha256:ffde2fbfad571af120fcbfbbc61c72469e72f550d676c3342492a9dfdefb8f12 \ + # via astroid, black, mypy +typing-extensions==3.7.4.1 \ + --hash=sha256:091ecc894d5e908ac75209f10d5b4f118fbdb2eb1ede6a63544054bb1edb41f2 \ + --hash=sha256:910f4656f54de5993ad9304959ce9bb903f90aadc7c67a0bef07e678014e892d \ + --hash=sha256:cf8b63fedea4d89bab840ecbb93e75578af28f76f66c35889bd7065f5af88575 \ + # via typing-inspect +typing-inspect==0.5.0 \ + --hash=sha256:75c97b7854426a129f3184c68588db29091ff58e6908ed520add1d52fc44df6e \ + --hash=sha256:811b44f92e780b90cfe7bac94249a4fae87cfaa9b40312765489255045231d9c \ + --hash=sha256:c6ed1cd34860857c53c146a6704a96da12e1661087828ce350f34addc6e5eee3 +urllib3==1.25.8 \ + --hash=sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc \ + --hash=sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc \ + # via requests +versioneer==0.18 \ + --hash=sha256:08e395c0acc544f78645b9c0ebfccaf47950ae61e0c85bd1aaea98ff59609aeb \ + --hash=sha256:ead1f78168150011189521b479d3a0dd2f55c94f5b07747b484fd693c3fbf335 +webencodings==0.5.1 \ + --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \ + --hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923 \ + # via bleach +wheel==0.33.6 \ + --hash=sha256:10c9da68765315ed98850f8e048347c3eb06dd81822dc2ab1d4fde9dc9702646 \ + --hash=sha256:f4da1763d3becf2e2cd92a14a7c920f0f00eca30fdde9ea992c836685b9faf28 +wrapt==1.11.2 \ + --hash=sha256:565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1 \ + # via astroid -# The following packages are considered to be unsafe in a requirements file: -# setuptools==41.4.0 # via tox +# WARNING: The following packages were not pinned, but pip requires them to be +# pinned when the requirements file includes hashes. Consider using the --allow-unsafe flag. +# setuptools diff --git a/pycli b/pycli index 1d1da9f..455317f 100755 --- a/pycli +++ b/pycli @@ -77,25 +77,20 @@ def init(cfg): def lock(cfg): """Use pip-compile to generate package hashes from setup.py and write them into requirements.txt.""" subprocess.run([cfg.venv_path / "bin/pip", "install", "pip-tools"], check=True) - subprocess.run( - [ - cfg.venv_path / "bin/pip-compile", - "--generate-hashes", - "--output-file", - "requirements.txt", - "setup.py", - ], - check=True, - ) - if pathlib.Path("dev-requirements.in").exists(): + combined = [] + for prefix in [None, 'test', 'dev']: + combined.append(prefix) + subprocess.run( [ cfg.venv_path / "bin/pip-compile", "--generate-hashes", "--output-file", - "dev-requirements.txt", - "setup.py", - "dev-requirements.in", + f"{'' if prefix is None else prefix + '-'}requirements.txt", + *( + f"{'' if each is None else prefix + '-'}requirements.in" + for each in combined + ) ], check=True, ) diff --git a/requirements.txt b/requirements.txt index 6529284..3ab21b3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,10 +2,22 @@ # This file is autogenerated by pip-compile # To update, run: # -# pip-compile --output-file=requirements.txt requirements.in +# pip-compile --generate-hashes --output-file=requirements.txt requirements.in # -attrs==19.1.0 -dataclasses==0.6 -marshmallow==3.2.1 -mypy-extensions==0.4.1 # via typing-inspect -typing-inspect==0.4.0 +attrs==19.1.0 \ + --hash=sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79 \ + --hash=sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399 +dataclasses==0.6 \ + --hash=sha256:454a69d788c7fda44efd71e259be79577822f5e3f53f029a22d08004e951dc9f \ + --hash=sha256:6988bd2b895eef432d562370bb707d540f32f7360ab13da45340101bc2307d84 +marshmallow==3.2.1 \ + --hash=sha256:077b4612f5d3b9333b736fdc6b963d2b46d409070f44ff3e6c4109645c673e83 \ + --hash=sha256:9a2f3e8ea5f530a9664e882d7d04b58650f46190178b2264c72b7d20399d28f0 +mypy-extensions==0.4.1 \ + --hash=sha256:37e0e956f41369209a3d5f34580150bcacfabaa57b33a15c0b25f4b5725e0812 \ + --hash=sha256:b16cabe759f55e3409a7d231ebd2841378fb0c27a5d1994719e340e4f429ac3e \ + # via typing-inspect +typing-inspect==0.4.0 \ + --hash=sha256:a7cb36c4a47d034766a67ea6467b39bd995cd00db8d4db1aa40001bf2d674a9b \ + --hash=sha256:cf41eb276cc8955a45e03c15cd1efa6c181a8775a38ff0bfda99d28af97bcda3 \ + --hash=sha256:e319dfa0c9a646614c9b6abab3bdd5f860a98609998d420f33e41a6e01cbbddb diff --git a/setup.py b/setup.py index 7a64a6a..29fb200 100755 --- a/setup.py +++ b/setup.py @@ -30,8 +30,13 @@ def read(*names, **kwargs): print(sys.exc_info()) INSTALL_REQUIRES = [] +EXTRAS_PREFIXES = ['test', 'dev'] -DEV_INSTALL_REQUIRES = read("dev-requirements.in").splitlines() +requirements = [] +extras = {} +for prefix in EXTRAS_PREFIXES: + requirements.extend(read("{}-requirements.in".format(prefix)).splitlines()) + extras[prefix] = requirements.copy() ns = {} exec(read("src/desert/_version.py"), ns) @@ -85,5 +90,5 @@ def read(*names, **kwargs): install_requires=INSTALL_REQUIRES # eg: "aspectlib==1.1.1", "six>=1.7", , - extras_require={"dev": DEV_INSTALL_REQUIRES}, + extras_require=extras, ) diff --git a/test-requirements.in b/test-requirements.in new file mode 100644 index 0000000..1b5ab61 --- /dev/null +++ b/test-requirements.in @@ -0,0 +1,12 @@ +coverage +cuvner +marshmallow-enum +marshmallow-union +pytest +pytest-cov +pytest-sphinx +pytest-travis-fold +tox + +# should not need this but pypy3 envs complain otherwise +importlib-metadata diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..e064e08 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,170 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --generate-hashes --output-file=test-requirements.txt requirements.in test-requirements.in +# +ansicolors==1.0.2 \ + --hash=sha256:7664530bb992e3847b61e3aab1580b4df9ed00c5898e80194a9933bc9c80950a \ + # via cuvner +argh==0.26.2 \ + --hash=sha256:a9b3aaa1904eeb78e32394cd46c6f37ac0fb4af6dc488daa58971bdc7d7fcaf3 \ + --hash=sha256:e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65 \ + # via watchdog +attrs==19.3.0 \ + --hash=sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c \ + --hash=sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72 +click==7.0 \ + --hash=sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13 \ + --hash=sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7 \ + # via cuvner +coverage==5.0.3 \ + --hash=sha256:15cf13a6896048d6d947bf7d222f36e4809ab926894beb748fc9caa14605d9c3 \ + --hash=sha256:1daa3eceed220f9fdb80d5ff950dd95112cd27f70d004c7918ca6dfc6c47054c \ + --hash=sha256:1e44a022500d944d42f94df76727ba3fc0a5c0b672c358b61067abb88caee7a0 \ + --hash=sha256:25dbf1110d70bab68a74b4b9d74f30e99b177cde3388e07cc7272f2168bd1477 \ + --hash=sha256:3230d1003eec018ad4a472d254991e34241e0bbd513e97a29727c7c2f637bd2a \ + --hash=sha256:3dbb72eaeea5763676a1a1efd9b427a048c97c39ed92e13336e726117d0b72bf \ + --hash=sha256:5012d3b8d5a500834783689a5d2292fe06ec75dc86ee1ccdad04b6f5bf231691 \ + --hash=sha256:51bc7710b13a2ae0c726f69756cf7ffd4362f4ac36546e243136187cfcc8aa73 \ + --hash=sha256:527b4f316e6bf7755082a783726da20671a0cc388b786a64417780b90565b987 \ + --hash=sha256:722e4557c8039aad9592c6a4213db75da08c2cd9945320220634f637251c3894 \ + --hash=sha256:76e2057e8ffba5472fd28a3a010431fd9e928885ff480cb278877c6e9943cc2e \ + --hash=sha256:77afca04240c40450c331fa796b3eab6f1e15c5ecf8bf2b8bee9706cd5452fef \ + --hash=sha256:7afad9835e7a651d3551eab18cbc0fdb888f0a6136169fbef0662d9cdc9987cf \ + --hash=sha256:9bea19ac2f08672636350f203db89382121c9c2ade85d945953ef3c8cf9d2a68 \ + --hash=sha256:a8b8ac7876bc3598e43e2603f772d2353d9931709345ad6c1149009fd1bc81b8 \ + --hash=sha256:b0840b45187699affd4c6588286d429cd79a99d509fe3de0f209594669bb0954 \ + --hash=sha256:b26aaf69713e5674efbde4d728fb7124e429c9466aeaf5f4a7e9e699b12c9fe2 \ + --hash=sha256:b63dd43f455ba878e5e9f80ba4f748c0a2156dde6e0e6e690310e24d6e8caf40 \ + --hash=sha256:be18f4ae5a9e46edae3f329de2191747966a34a3d93046dbdf897319923923bc \ + --hash=sha256:c312e57847db2526bc92b9bfa78266bfbaabac3fdcd751df4d062cd4c23e46dc \ + --hash=sha256:c60097190fe9dc2b329a0eb03393e2e0829156a589bd732e70794c0dd804258e \ + --hash=sha256:c62a2143e1313944bf4a5ab34fd3b4be15367a02e9478b0ce800cb510e3bbb9d \ + --hash=sha256:cc1109f54a14d940b8512ee9f1c3975c181bbb200306c6d8b87d93376538782f \ + --hash=sha256:cd60f507c125ac0ad83f05803063bed27e50fa903b9c2cfee3f8a6867ca600fc \ + --hash=sha256:d513cc3db248e566e07a0da99c230aca3556d9b09ed02f420664e2da97eac301 \ + --hash=sha256:d649dc0bcace6fcdb446ae02b98798a856593b19b637c1b9af8edadf2b150bea \ + --hash=sha256:d7008a6796095a79544f4da1ee49418901961c97ca9e9d44904205ff7d6aa8cb \ + --hash=sha256:da93027835164b8223e8e5af2cf902a4c80ed93cb0909417234f4a9df3bcd9af \ + --hash=sha256:e69215621707119c6baf99bda014a45b999d37602cb7043d943c76a59b05bf52 \ + --hash=sha256:ea9525e0fef2de9208250d6c5aeeee0138921057cd67fcef90fbed49c4d62d37 \ + --hash=sha256:fca1669d464f0c9831fd10be2eef6b86f5ebd76c724d1e0706ebdff86bb4adf0 +cuvner==18.0.1 \ + --hash=sha256:395b9b1d802aca999212e70566813b79c6a50289d6a2a712252c9c9eb52cf29e +dataclasses==0.6 \ + --hash=sha256:454a69d788c7fda44efd71e259be79577822f5e3f53f029a22d08004e951dc9f \ + --hash=sha256:6988bd2b895eef432d562370bb707d540f32f7360ab13da45340101bc2307d84 +filelock==3.0.12 \ + --hash=sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59 \ + --hash=sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836 \ + # via tox +importlib-metadata==1.4.0 \ + --hash=sha256:bdd9b7c397c273bcc9a11d6629a38487cd07154fa255a467bf704cd2c258e359 \ + --hash=sha256:f17c015735e1a88296994c0697ecea7e11db24290941983b08c9feb30921e6d8 +incremental==17.5.0 \ + --hash=sha256:717e12246dddf231a349175f48d74d93e2897244939173b01974ab6661406b9f \ + --hash=sha256:7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3 \ + # via cuvner +marshmallow-enum==1.5.1 \ + --hash=sha256:38e697e11f45a8e64b4a1e664000897c659b60aa57bfa18d44e226a9920b6e58 \ + --hash=sha256:57161ab3dbfde4f57adeb12090f39592e992b9c86d206d02f6bd03ebec60f072 +marshmallow-union==0.1.12 \ + --hash=sha256:280708177aba5c2bb69614f7f7603c8a8fd265f6733890c6499fcd72bc27c1e7 +marshmallow==3.3.0 \ + --hash=sha256:0ba81b6da4ae69eb229b74b3c741ff13fe04fb899824377b1aff5aaa1a9fd46e \ + --hash=sha256:3e53dd9e9358977a3929e45cdbe4a671f9eff53a7d6a23f33ed3eab8c1890d8f +more-itertools==8.1.0 \ + --hash=sha256:1a2a32c72400d365000412fe08eb4a24ebee89997c18d3d147544f70f5403b39 \ + --hash=sha256:c468adec578380b6281a114cb8a5db34eb1116277da92d7c46f904f0b52d3288 \ + # via pytest, zipp +mypy-extensions==0.4.3 \ + --hash=sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d \ + --hash=sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8 \ + # via typing-inspect +packaging==20.0 \ + --hash=sha256:aec3fdbb8bc9e4bb65f0634b9f551ced63983a529d6a8931817d52fdd0816ddb \ + --hash=sha256:fe1d8331dfa7cc0a883b49d75fc76380b2ab2734b220fbb87d774e4fd4b851f8 \ + # via pytest, tox +pathtools==0.1.2 \ + --hash=sha256:7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0 \ + # via watchdog +pluggy==0.13.1 \ + --hash=sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0 \ + --hash=sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d \ + # via pytest, tox +py==1.8.1 \ + --hash=sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa \ + --hash=sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0 \ + # via pytest, tox +pygments==2.5.2 \ + --hash=sha256:2a3fe295e54a20164a9df49c75fa58526d3be48e14aceba6d6b1e8ac0bfd6f1b \ + --hash=sha256:98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe \ + # via cuvner +pyparsing==2.4.6 \ + --hash=sha256:4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f \ + --hash=sha256:c342dccb5250c08d45fd6f8b4a559613ca603b57498511740e65cd11a2e7dcec \ + # via packaging +pytest-cov==2.8.1 \ + --hash=sha256:cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b \ + --hash=sha256:cdbdef4f870408ebdbfeb44e63e07eb18bb4619fae852f6e760645fa36172626 +pytest-sphinx==0.2.2 \ + --hash=sha256:3f2f55af893f717c9befc5aa6dbcaeda3174258706dfd3dffb4cfe9a1671f8ed +pytest-travis-fold==1.3.0 \ + --hash=sha256:3fe15aa21ed14275e5a77814339281b3b618e350b98a43e7ac5d5bdcad8202cb \ + --hash=sha256:5607df571232b257be644400be559afb9148af3a27576f8080f56cee915771b2 +pytest==5.3.4 \ + --hash=sha256:1d122e8be54d1a709e56f82e2d85dcba3018313d64647f38a91aec88c239b600 \ + --hash=sha256:c13d1943c63e599b98cf118fcb9703e4d7bde7caa9a432567bcdcae4bf512d20 +pyyaml==5.3 \ + --hash=sha256:059b2ee3194d718896c0ad077dd8c043e5e909d9180f387ce42012662a4946d6 \ + --hash=sha256:1cf708e2ac57f3aabc87405f04b86354f66799c8e62c28c5fc5f88b5521b2dbf \ + --hash=sha256:24521fa2890642614558b492b473bee0ac1f8057a7263156b02e8b14c88ce6f5 \ + --hash=sha256:4fee71aa5bc6ed9d5f116327c04273e25ae31a3020386916905767ec4fc5317e \ + --hash=sha256:70024e02197337533eef7b85b068212420f950319cc8c580261963aefc75f811 \ + --hash=sha256:74782fbd4d4f87ff04159e986886931456a1894c61229be9eaf4de6f6e44b99e \ + --hash=sha256:940532b111b1952befd7db542c370887a8611660d2b9becff75d39355303d82d \ + --hash=sha256:cb1f2f5e426dc9f07a7681419fe39cee823bb74f723f36f70399123f439e9b20 \ + --hash=sha256:dbbb2379c19ed6042e8f11f2a2c66d39cceb8aeace421bfc29d085d93eda3689 \ + --hash=sha256:e3a057b7a64f1222b56e47bcff5e4b94c4f61faac04c7c4ecb1985e18caa3994 \ + --hash=sha256:e9f45bd5b92c7974e59bcd2dcc8631a6b6cc380a904725fce7bc08872e691615 \ + # via watchdog +six==1.14.0 \ + --hash=sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a \ + --hash=sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c \ + # via cuvner, packaging, tox +toml==0.10.0 \ + --hash=sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c \ + --hash=sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e \ + # via tox +tox==3.14.3 \ + --hash=sha256:06ba73b149bf838d5cd25dc30c2dd2671ae5b2757cf98e5c41a35fe449f131b3 \ + --hash=sha256:806d0a9217584558cc93747a945a9d9bff10b141a5287f0c8429a08828a22192 +typing-extensions==3.7.4.1 \ + --hash=sha256:091ecc894d5e908ac75209f10d5b4f118fbdb2eb1ede6a63544054bb1edb41f2 \ + --hash=sha256:910f4656f54de5993ad9304959ce9bb903f90aadc7c67a0bef07e678014e892d \ + --hash=sha256:cf8b63fedea4d89bab840ecbb93e75578af28f76f66c35889bd7065f5af88575 \ + # via typing-inspect +typing-inspect==0.5.0 \ + --hash=sha256:75c97b7854426a129f3184c68588db29091ff58e6908ed520add1d52fc44df6e \ + --hash=sha256:811b44f92e780b90cfe7bac94249a4fae87cfaa9b40312765489255045231d9c \ + --hash=sha256:c6ed1cd34860857c53c146a6704a96da12e1661087828ce350f34addc6e5eee3 +unidiff==0.5.5 \ + --hash=sha256:6e7ff4be1a9cd8d72197cd15ec735260b8b95d6f9d3e6fdc8a37301b12af0b27 \ + --hash=sha256:9c9ab5fb96b6988b4cd5def6b275492442c04a570900d33aa6373105780025bc \ + # via cuvner +virtualenv==16.7.9 \ + --hash=sha256:0d62c70883c0342d59c11d0ddac0d954d0431321a41ab20851facf2b222598f3 \ + --hash=sha256:55059a7a676e4e19498f1aad09b8313a38fcc0cdbe4fdddc0e9b06946d21b4bb \ + # via tox +watchdog==0.9.0 \ + --hash=sha256:965f658d0732de3188211932aeb0bb457587f04f63ab4c1e33eab878e9de961d \ + # via cuvner +wcwidth==0.1.8 \ + --hash=sha256:8fd29383f539be45b20bd4df0dc29c20ba48654a41e661925e612311e9f3c603 \ + --hash=sha256:f28b3e8a6483e5d49e7f8949ac1a78314e740333ae305b4ba5defd3e74fb37a8 \ + # via pytest +zipp==2.0.0 \ + --hash=sha256:57147f6b0403b59f33fd357f169f860e031303415aeb7d04ede4839d23905ab8 \ + --hash=sha256:7ae5ccaca427bafa9760ac3cd8f8c244bfc259794b5b6bb9db4dda2241575d09 \ + # via importlib-metadata diff --git a/tox.ini b/tox.ini index a737e40..7d6eacf 100644 --- a/tox.ini +++ b/tox.ini @@ -13,12 +13,8 @@ setenv = PYTHONUNBUFFERED=yes passenv = * -usedevelop = false deps = - -e.[dev] - pytest - pytest-travis-fold - pytest-cov + -r {toxinidir}/test-requirements.txt commands = {envbindir}/pytest {posargs:--cov --cov-report=term-missing -vv --doctest-modules tests} @@ -33,8 +29,7 @@ commands = [testenv:check] basepython=python3.8 deps = - -r requirements.txt - -r dev-requirements.txt + -r {toxinidir}/dev-requirements.txt skip_install = true commands = {envpython} setup.py check --strict --metadata --restructuredtext From 79168b99a77ad03b9e13614b722a9c4597db68df Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Tue, 21 Jan 2020 23:24:45 -0500 Subject: [PATCH 11/35] black --- setup.py | 4 ++-- src/desert/__init__.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 29fb200..ebd1107 100755 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ def read(*names, **kwargs): print(sys.exc_info()) INSTALL_REQUIRES = [] -EXTRAS_PREFIXES = ['test', 'dev'] +EXTRAS_PREFIXES = ["test", "dev"] requirements = [] extras = {} @@ -83,7 +83,7 @@ def read(*names, **kwargs): # "Programming Language :: Python :: Implementation :: Stackless", "Topic :: Utilities", ], - python_requires='>=3.6', + python_requires=">=3.6", keywords=[ # eg: "keyword1", "keyword2", "keyword3", ], diff --git a/src/desert/__init__.py b/src/desert/__init__.py index dd1998a..e876844 100644 --- a/src/desert/__init__.py +++ b/src/desert/__init__.py @@ -41,7 +41,7 @@ def schema_class( def metadata( - field: marshmallow.fields.Field + field: marshmallow.fields.Field, ) -> t.Dict["desert._make._DesertSentinel", t.Dict[t.Any, marshmallow.fields.Field]]: """Specify a marshmallow field in the field metadata. From d0b83e9ac729e0eac6576d00820e18e7e52d4f2a Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Tue, 21 Jan 2020 23:35:49 -0500 Subject: [PATCH 12/35] skip test_forward_reference_module_scope on 'old' pypy --- tests/test_make.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/test_make.py b/tests/test_make.py index 68014b2..87ce245 100644 --- a/tests/test_make.py +++ b/tests/test_make.py @@ -396,6 +396,11 @@ class B: assert_dump_load(schema=schema, loaded=loaded, dumped=dumped) +# 3.6.9 is known to work, 3.6.1 is known to fail, not sure attrs vs. dataclasses +@pytest.mark.skipif( + condition=sys.implementation.name == "pypy" and sys.version_info < (3, 6, 9), + reason="Forward references and string annotations are broken.", +) def test_forward_reference_module_scope(): """Run the forward reference test at global scope.""" From 4ca31d80d267962c850d9bb4256d8b891aff47cd Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Tue, 21 Jan 2020 23:36:59 -0500 Subject: [PATCH 13/35] refine should-not-be-needed importlib-metadata direct dependency --- test-requirements.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-requirements.in b/test-requirements.in index 1b5ab61..4ad473a 100644 --- a/test-requirements.in +++ b/test-requirements.in @@ -9,4 +9,4 @@ pytest-travis-fold tox # should not need this but pypy3 envs complain otherwise -importlib-metadata +importlib-metadata; implementation_name == "pypy" From b041259f7ea68d2ef9d7e60cad70d55d3dff03b1 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Wed, 22 Jan 2020 22:47:20 -0500 Subject: [PATCH 14/35] try to get more recent pypy on travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index be2d26a..ac848f5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ matrix: - python: '3.8' env: - TOXENV=py38,report,codecov - - python: 'pypy3' + - python: 'pypy3.6-7.3' env: - TOXENV=pypy3,report,codecov - python: '3.8' From 89f067240796a58d02d9ae9afaa8920effd5078e Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 25 Jan 2020 22:42:06 -0500 Subject: [PATCH 15/35] align with master better --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index c629d74..ca43f45 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,12 +7,10 @@ branches: - master - /^v\d.*$/ cache: pip - env: global: - LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so - SEGFAULT_SIGNALS=all - jobs: include: - python: '3.6' From b246e9f2c5094ce4ccd4819282f6b373652dec21 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 25 Jan 2020 22:46:20 -0500 Subject: [PATCH 16/35] Remove custom PyPy installation on Travis --- .travis.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index ca43f45..7b56163 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,18 +41,6 @@ install: - easy_install --version - pip --version - tox --version - - | - set -ex - if [[ $TRAVIS_PYTHON_VERSION == 'pypy3' ]]; then - (cd $HOME - wget https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.1-linux64.tar.bz2 - tar xf pypy3*.tar.bz2 - pypy3*/bin/pypy3 -m ensurepip - pypy3*/bin/pypy3 -m pip install -U virtualenv) - export PATH=$(echo $HOME/pypy3*/bin):$PATH - export TOXPYTHON=$(echo $HOME/pypy3*/bin/pypy3) - fi - set +x starting - | set -ex if [[ $TOXENV == 'check' ]]; then From 46c93528683f16e9581eed5c69b0002e8bdb4cb2 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 25 Jan 2020 23:01:28 -0500 Subject: [PATCH 17/35] Just pypy3 for Travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7b56163..7bdc8bc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,7 @@ jobs: - python: '3.8' env: - TOXENV=py38,report,codecov - - python: 'pypy3.6-7.3' + - python: 'pypy3' env: - TOXENV=pypy3,report,codecov - python: '3.8' From 156bdf3ab2d48c1b904bee4919bc75ccd0002224 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sun, 26 Jan 2020 22:13:20 -0500 Subject: [PATCH 18/35] fixup tox.ini after merge --- tox.ini | 1 - 1 file changed, 1 deletion(-) diff --git a/tox.ini b/tox.ini index bc5485e..7d6eacf 100644 --- a/tox.ini +++ b/tox.ini @@ -9,7 +9,6 @@ envlist = report [testenv] - py38: {env:TOXPYTHON:python3.8} setenv = PYTHONUNBUFFERED=yes passenv = From 4ad43246c75fefbf82a2e913f1e717a849177883 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sun, 26 Jan 2020 22:31:01 -0500 Subject: [PATCH 19/35] remove duplicate python_requires --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index 444ba90..38869c8 100755 --- a/setup.py +++ b/setup.py @@ -86,7 +86,6 @@ def read_extras(*prefixes): # "Programming Language :: Python :: Implementation :: Stackless", "Topic :: Utilities", ], - python_requires=">=3.6", keywords=[ # eg: "keyword1", "keyword2", "keyword3", ], From 81066643ce08714fbc24bdda4c710fcceb1aa6fa Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 10:26:09 -0500 Subject: [PATCH 20/35] pyenv and TOXTOOLPYTHON --- .travis.yml | 24 ++++++++++++++++++++++++ tox.ini | 10 +++++++--- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7bdc8bc..c005f88 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,27 @@ branches: - master - /^v\d.*$/ cache: pip +addons: + apt: + packages: + - make + - build-essential + - libssl-dev + - zlib1g-dev + - libbz2-dev + - libreadline-dev + - libsqlite3-dev + - wget + - curl + - llvm + - libncurses5-dev + - libncursesw5-dev + - xz-utils + - tk-dev + - libffi-dev + - liblzma-dev + - python-openssl + - git env: global: - LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so @@ -36,6 +57,9 @@ before_install: - uname -a - lsb_release -a install: + - curl https://pyenv.run | bash + - ~/.pyenv/bin/pyenv install 3.8.1 + - export TOXTOOLPYTHON=~/.pyenv/versions/3.8.1/bin/python - pip install tox - virtualenv --version - easy_install --version diff --git a/tox.ini b/tox.ini index 7d6eacf..e60b791 100644 --- a/tox.ini +++ b/tox.ini @@ -9,6 +9,13 @@ envlist = report [testenv] +basepython = + pypy3: {env:TOXPYTHON:pypy3} + py36: {env:TOXPYTHON:python3.6} + py37: {env:TOXPYTHON:python3.7} + py38: {env:TOXPYTHON:python3.8} + pypy3: {env:TOXPYTHON:pypy3} + {doc,spell,bootstrap,clean,check,report,codecov}: {env:TOXTOOLPYTHON:python3.8} setenv = PYTHONUNBUFFERED=yes passenv = @@ -27,7 +34,6 @@ commands = {envpython} ci/bootstrap.py [testenv:check] -basepython=python3.8 deps = -r {toxinidir}/dev-requirements.txt skip_install = true @@ -38,7 +44,6 @@ commands = {envbindir}/isort --verbose --check-only --diff --recursive src tests setup.py [testenv:spell] -basepython=python3.8 setenv = SPELLCHECK=1 commands = @@ -50,7 +55,6 @@ deps = {envbindir}/pyenchant [testenv:doc] -basepython=python3.8 deps = -r{toxinidir}/docs/requirements.txt From 56509f09ad82eed3ccdb35dd3be6f7468b687d18 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 10:32:48 -0500 Subject: [PATCH 21/35] use custom PYENV_ROOT --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c005f88..083b0c3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,9 +57,10 @@ before_install: - uname -a - lsb_release -a install: + - export PYENV_ROOT=~/desert_cache/.pyenv - curl https://pyenv.run | bash - ~/.pyenv/bin/pyenv install 3.8.1 - - export TOXTOOLPYTHON=~/.pyenv/versions/3.8.1/bin/python + - export TOXTOOLPYTHON=~/desert_cache/.pyenv/versions/3.8.1/bin/python - pip install tox - virtualenv --version - easy_install --version From e63b53122f7781c5b23babd76c1c846577d9e1ed Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 10:37:44 -0500 Subject: [PATCH 22/35] use $PYENV_ROOT --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 083b0c3..f15a11f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,8 +59,8 @@ before_install: install: - export PYENV_ROOT=~/desert_cache/.pyenv - curl https://pyenv.run | bash - - ~/.pyenv/bin/pyenv install 3.8.1 - - export TOXTOOLPYTHON=~/desert_cache/.pyenv/versions/3.8.1/bin/python + - $PYENV_ROOT/bin/pyenv install 3.8.1 + - export TOXTOOLPYTHON=$PYENV_ROOT/versions/3.8.1/bin/python - pip install tox - virtualenv --version - easy_install --version From b05293ecee5309424c6c0e7b093dcfd802b96a11 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 10:53:16 -0500 Subject: [PATCH 23/35] do not leave PYENV_ROOT set --- .travis.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index f15a11f..9695c0d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,10 +57,12 @@ before_install: - uname -a - lsb_release -a install: - - export PYENV_ROOT=~/desert_cache/.pyenv - - curl https://pyenv.run | bash - - $PYENV_ROOT/bin/pyenv install 3.8.1 - - export TOXTOOLPYTHON=$PYENV_ROOT/versions/3.8.1/bin/python + - export TOXTOOLPYTHON=~/desert_cache/.pyenv/versions/3.8.1/bin/python + - ( + export PYENV_ROOT=~/desert_cache/.pyenv + curl https://pyenv.run | bash + $PYENV_ROOT/bin/pyenv install 3.8.1 + ) - pip install tox - virtualenv --version - easy_install --version From 299aa70140966b2660ca72b7317e63a08488561f Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 11:02:18 -0500 Subject: [PATCH 24/35] with unset... --- .travis.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9695c0d..2da840a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,12 +57,11 @@ before_install: - uname -a - lsb_release -a install: - - export TOXTOOLPYTHON=~/desert_cache/.pyenv/versions/3.8.1/bin/python - - ( - export PYENV_ROOT=~/desert_cache/.pyenv - curl https://pyenv.run | bash - $PYENV_ROOT/bin/pyenv install 3.8.1 - ) + - export PYENV_ROOT="~/desert_cache/.pyenv" + - curl https://pyenv.run | bash + - "$PYENV_ROOT/bin/pyenv" install 3.8.1 + - export TOXTOOLPYTHON="$PYENV_ROOT/versions/3.8.1/bin/python" + - unset PYENV_ROOT - pip install tox - virtualenv --version - easy_install --version From 14391532ac5aa87527e10368d06804fec26c8e81 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 11:12:54 -0500 Subject: [PATCH 25/35] fix quoting in .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2da840a..f4068a4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,7 +59,7 @@ before_install: install: - export PYENV_ROOT="~/desert_cache/.pyenv" - curl https://pyenv.run | bash - - "$PYENV_ROOT/bin/pyenv" install 3.8.1 + - '"$PYENV_ROOT/bin/pyenv" install 3.8.1' - export TOXTOOLPYTHON="$PYENV_ROOT/versions/3.8.1/bin/python" - unset PYENV_ROOT - pip install tox From 36bd9a3bb5539cf116e77352b8b20661fa04736c Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 11:34:21 -0500 Subject: [PATCH 26/35] subshell again for pyenv --- .travis.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index f4068a4..6ba70a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,11 +57,13 @@ before_install: - uname -a - lsb_release -a install: - - export PYENV_ROOT="~/desert_cache/.pyenv" - - curl https://pyenv.run | bash - - '"$PYENV_ROOT/bin/pyenv" install 3.8.1' - - export TOXTOOLPYTHON="$PYENV_ROOT/versions/3.8.1/bin/python" - - unset PYENV_ROOT + - export DESERT_PYENV_ROOT="${PWD}/desert_cache/.pyenv" + - ( + export PYENV_ROOT="${DESERT_PYENV_ROOT}" + curl https://pyenv.run | bash + '"${PYENV_ROOT}/bin/pyenv" install 3.8.1' + ) + - export TOXTOOLPYTHON="${DESERT_PYENV_ROOT}/versions/3.8.1/bin/python" - pip install tox - virtualenv --version - easy_install --version From 36f4b38bb4b9a1ed159648f431058b7a19e1800e Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 11:47:52 -0500 Subject: [PATCH 27/35] add a | for good measure --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6ba70a3..c1484d1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,7 +58,8 @@ before_install: - lsb_release -a install: - export DESERT_PYENV_ROOT="${PWD}/desert_cache/.pyenv" - - ( + - | + ( export PYENV_ROOT="${DESERT_PYENV_ROOT}" curl https://pyenv.run | bash '"${PYENV_ROOT}/bin/pyenv" install 3.8.1' From 1e10152c245e9fd6f256502a77714bfd03e100dd Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 11:50:13 -0500 Subject: [PATCH 28/35] remove no longer needed 's --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c1484d1..c3930e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -62,7 +62,7 @@ install: ( export PYENV_ROOT="${DESERT_PYENV_ROOT}" curl https://pyenv.run | bash - '"${PYENV_ROOT}/bin/pyenv" install 3.8.1' + "${PYENV_ROOT}/bin/pyenv" install 3.8.1 ) - export TOXTOOLPYTHON="${DESERT_PYENV_ROOT}/versions/3.8.1/bin/python" - pip install tox From e735c8725094e4faba30f9ddf8826b099eb01746 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 12:05:46 -0500 Subject: [PATCH 29/35] cache pyenv and more --- .travis.yml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index c3930e5..b42243b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,10 @@ branches: # 'v' followed by a digit, such as for version tags. - master - /^v\d.*$/ -cache: pip +cache: + pip: true + directories: + - $TRAVIS_BUILD_DIR/.pyenv addons: apt: packages: @@ -32,6 +35,9 @@ env: global: - LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so - SEGFAULT_SIGNALS=all + - DESERT_PYENV_ROOT=$TRAVIS_BUILD_DIR/.pyenv + - TOXTOOLPYTHONVERSION=3.8.1 + - TOXTOOLPYTHON=${DESERT_PYENV_ROOT}/versions/${TOXTOOLPYTHON_VERSION}/bin/python jobs: include: - python: '3.6' @@ -57,14 +63,14 @@ before_install: - uname -a - lsb_release -a install: - - export DESERT_PYENV_ROOT="${PWD}/desert_cache/.pyenv" - | ( - export PYENV_ROOT="${DESERT_PYENV_ROOT}" - curl https://pyenv.run | bash - "${PYENV_ROOT}/bin/pyenv" install 3.8.1 + if [[ ! -f ${TOXTOOLPYTHON} ]]; then + export PYENV_ROOT="${DESERT_PYENV_ROOT}" + curl https://pyenv.run | bash + "${PYENV_ROOT}/bin/pyenv" install 3.8.1 + fi ) - - export TOXTOOLPYTHON="${DESERT_PYENV_ROOT}/versions/3.8.1/bin/python" - pip install tox - virtualenv --version - easy_install --version From 83435dc1c686cafdd7571f17167de76ea7b36012 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 12:12:13 -0500 Subject: [PATCH 30/35] remove PYENV_ROOT before reinstalling --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index b42243b..9d7da10 100644 --- a/.travis.yml +++ b/.travis.yml @@ -67,6 +67,7 @@ install: ( if [[ ! -f ${TOXTOOLPYTHON} ]]; then export PYENV_ROOT="${DESERT_PYENV_ROOT}" + rm -rf "${PYENV_ROOT}" curl https://pyenv.run | bash "${PYENV_ROOT}/bin/pyenv" install 3.8.1 fi From 1fa764a9cc4b54dfe20a5fab46e2af4a8a4b6e09 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 12:16:52 -0500 Subject: [PATCH 31/35] correct to TOXTOOLPYTHONVERSION --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9d7da10..b6c25cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ env: - SEGFAULT_SIGNALS=all - DESERT_PYENV_ROOT=$TRAVIS_BUILD_DIR/.pyenv - TOXTOOLPYTHONVERSION=3.8.1 - - TOXTOOLPYTHON=${DESERT_PYENV_ROOT}/versions/${TOXTOOLPYTHON_VERSION}/bin/python + - TOXTOOLPYTHON=${DESERT_PYENV_ROOT}/versions/${TOXTOOLPYTHONVERSION}/bin/python jobs: include: - python: '3.6' From e935eb0210bdc406c66730b374429429043c05cf Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 12:23:48 -0500 Subject: [PATCH 32/35] diagnostics --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b6c25cc..278579a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -65,7 +65,9 @@ before_install: install: - | ( - if [[ ! -f ${TOXTOOLPYTHON} ]]; then + set -vx + ls -l "${TOXTOOLPYTHON}" + if [[ ! -f "${TOXTOOLPYTHON}" ]]; then export PYENV_ROOT="${DESERT_PYENV_ROOT}" rm -rf "${PYENV_ROOT}" curl https://pyenv.run | bash From c7d7685b21fd92dbe2bf87f0033f9000bd0115f4 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 12:24:36 -0500 Subject: [PATCH 33/35] Revert "diagnostics" This reverts commit e935eb0210bdc406c66730b374429429043c05cf. --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 278579a..b6c25cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -65,9 +65,7 @@ before_install: install: - | ( - set -vx - ls -l "${TOXTOOLPYTHON}" - if [[ ! -f "${TOXTOOLPYTHON}" ]]; then + if [[ ! -f ${TOXTOOLPYTHON} ]]; then export PYENV_ROOT="${DESERT_PYENV_ROOT}" rm -rf "${PYENV_ROOT}" curl https://pyenv.run | bash From 76b13798c45235e848327c80cf22fb8282be9ad0 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 12:34:27 -0500 Subject: [PATCH 34/35] have black ignore .pyenv --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index c181f8d..cdc587e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,7 @@ exclude = ''' | \.hg | \.mypy_cache | \.tox + | \.pyenv | \.?venv | _build | buck-out From e30d44c013d69158242d6b9517f653cb13cd2562 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 27 Jan 2020 12:42:04 -0500 Subject: [PATCH 35/35] remove redundant pypy3 basepython spec in tox.ini --- tox.ini | 1 - 1 file changed, 1 deletion(-) diff --git a/tox.ini b/tox.ini index e60b791..d3dd3c5 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,6 @@ envlist = [testenv] basepython = - pypy3: {env:TOXPYTHON:pypy3} py36: {env:TOXPYTHON:python3.6} py37: {env:TOXPYTHON:python3.7} py38: {env:TOXPYTHON:python3.8}