Commit d07dddbc by David Hotham Committed by GitHub

installer tests should verify result of install (#7759)

parent c89e994e
# This file is automatically @generated by Poetry 1.5.0.dev0 and should not be changed by hand.
[[package]]
name = "attrs"
version = "17.4.0"
......@@ -5,14 +7,10 @@ description = "Classes Without Boilerplate"
category = "dev"
optional = false
python-versions = "*"
[[package.files]]
file = "attrs-17.4.0-py2.py3-none-any.whl"
hash = "sha256:a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450"
[[package.files]]
file = "attrs-17.4.0.tar.gz"
hash = "sha256:1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9"
files = [
{file = "attrs-17.4.0-py2.py3-none-any.whl", hash = "sha256:a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450"},
{file = "attrs-17.4.0.tar.gz", hash = "sha256:1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9"},
]
[package.extras]
dev = ["coverage", "hypothesis", "pympler", "pytest", "six", "sphinx", "zope.interface", "zope.interface"]
......@@ -26,30 +24,10 @@ description = "Cross-platform colored terminal text."
category = "dev"
optional = false
python-versions = "*"
[[package.files]]
file = "colorama-0.3.9-py2.py3-none-any.whl"
hash = "sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda"
[[package.files]]
file = "colorama-0.3.9.tar.gz"
hash = "sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1"
[[package]]
name = "funcsigs"
version = "1.0.2"
description = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+"
category = "dev"
optional = false
python-versions = "*"
[[package.files]]
file = "funcsigs-1.0.2-py2.py3-none-any.whl"
hash = "sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca"
[[package.files]]
file = "funcsigs-1.0.2.tar.gz"
hash = "sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50"
files = [
{file = "colorama-0.3.9-py2.py3-none-any.whl", hash = "sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda"},
{file = "colorama-0.3.9.tar.gz", hash = "sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1"},
]
[[package]]
name = "more-itertools"
......@@ -58,18 +36,11 @@ description = "More routines for operating on iterables, beyond itertools"
category = "dev"
optional = false
python-versions = "*"
[[package.files]]
file = "more-itertools-4.1.0.tar.gz"
hash = "sha256:c9ce7eccdcb901a2c75d326ea134e0886abfbea5f93e91cc95de9507c0816c44"
[[package.files]]
file = "more_itertools-4.1.0-py2-none-any.whl"
hash = "sha256:11a625025954c20145b37ff6309cd54e39ca94f72f6bb9576d1195db6fa2442e"
[[package.files]]
file = "more_itertools-4.1.0-py3-none-any.whl"
hash = "sha256:0dd8f72eeab0d2c3bd489025bb2f6a1b8342f9b198f6fc37b52d15cfa4531fea"
files = [
{file = "more-itertools-4.1.0.tar.gz", hash = "sha256:c9ce7eccdcb901a2c75d326ea134e0886abfbea5f93e91cc95de9507c0816c44"},
{file = "more_itertools-4.1.0-py2-none-any.whl", hash = "sha256:11a625025954c20145b37ff6309cd54e39ca94f72f6bb9576d1195db6fa2442e"},
{file = "more_itertools-4.1.0-py3-none-any.whl", hash = "sha256:0dd8f72eeab0d2c3bd489025bb2f6a1b8342f9b198f6fc37b52d15cfa4531fea"},
]
[package.dependencies]
six = ">=1.0.0,<2.0.0"
......@@ -81,10 +52,9 @@ description = "plugin and hook calling mechanisms for python"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package.files]]
file = "pluggy-0.6.0.tar.gz"
hash = "sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff"
files = [
{file = "pluggy-0.6.0.tar.gz", hash = "sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff"},
]
[[package]]
name = "py"
......@@ -93,14 +63,10 @@ description = "library with cross-python path, ini-parsing, io, code, log facili
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package.files]]
file = "py-1.5.3-py2.py3-none-any.whl"
hash = "sha256:983f77f3331356039fdd792e9220b7b8ee1aa6bd2b25f567a963ff1de5a64f6a"
[[package.files]]
file = "py-1.5.3.tar.gz"
hash = "sha256:29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881"
files = [
{file = "py-1.5.3-py2.py3-none-any.whl", hash = "sha256:983f77f3331356039fdd792e9220b7b8ee1aa6bd2b25f567a963ff1de5a64f6a"},
{file = "py-1.5.3.tar.gz", hash = "sha256:29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881"},
]
[[package]]
name = "pytest"
......@@ -109,44 +75,36 @@ description = "pytest: simple powerful testing with Python"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package.files]]
file = "pytest-3.5.0-py2.py3-none-any.whl"
hash = "sha256:6266f87ab64692112e5477eba395cfedda53b1933ccd29478e671e73b420c19c"
[[package.files]]
file = "pytest-3.5.0.tar.gz"
hash = "sha256:fae491d1874f199537fd5872b5e1f0e74a009b979df9d53d1553fd03da1703e1"
files = [
{file = "pytest-3.5.0-py2.py3-none-any.whl", hash = "sha256:6266f87ab64692112e5477eba395cfedda53b1933ccd29478e671e73b420c19c"},
{file = "pytest-3.5.0.tar.gz", hash = "sha256:fae491d1874f199537fd5872b5e1f0e74a009b979df9d53d1553fd03da1703e1"},
]
[package.dependencies]
py = ">=1.5.0"
six = ">=1.10.0"
attrs = ">=17.4.0"
setuptools = "*"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
more-itertools = ">=4.0.0"
pluggy = ">=0.5,<0.7"
funcsigs = {"version" = "*", "markers" = "python_version < \"3.0\""}
colorama = {"version" = "*", "markers" = "sys_platform == \"win32\""}
py = ">=1.5.0"
setuptools = "*"
six = ">=1.10.0"
[[package]]
name = "setuptools"
version = "39.2.0"
version = "67.6.1"
description = "Easily download, build, install, upgrade, and uninstall Python packages"
category = "dev"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*"
[[package.files]]
file = "setuptools-39.2.0-py2.py3-none-any.whl"
hash = "sha256:8fca9275c89964f13da985c3656cb00ba029d7f3916b37990927ffdf264e7926"
[[package.files]]
file = "setuptools-39.2.0.zip"
hash = "sha256:f7cddbb5f5c640311eb00eab6e849f7701fa70bf6a183fc8a2c33dd1d1672fb2"
python-versions = ">=3.7"
files = [
{file = "setuptools-67.6.1-py3-none-any.whl", hash = "sha256:e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078"},
{file = "setuptools-67.6.1.tar.gz", hash = "sha256:257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a"},
]
[package.extras]
certs = ["certifi (==2016.9.26)"]
ssl = ["wincertstore (==0.2)"]
docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
[[package]]
name = "six"
......@@ -155,16 +113,12 @@ description = "Python 2 and 3 compatibility utilities"
category = "dev"
optional = false
python-versions = "*"
[[package.files]]
file = "six-1.11.0-py2.py3-none-any.whl"
hash = "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
[[package.files]]
file = "six-1.11.0.tar.gz"
hash = "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9"
files = [
{file = "six-1.11.0-py2.py3-none-any.whl", hash = "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"},
{file = "six-1.11.0.tar.gz", hash = "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9"},
]
[metadata]
python-versions = "*"
lock-version = "2.0"
python-versions = ">=3.7"
content-hash = "123456789"
......@@ -207,9 +207,10 @@ def fixture(name: str) -> dict:
def test_run_no_dependencies(installer: Installer, locker: Locker):
installer.run()
expected = fixture("no-dependencies")
result = installer.run()
assert result == 0
expected = fixture("no-dependencies")
assert locker.written_data == expected
......@@ -224,9 +225,10 @@ def test_run_with_dependencies(
package.add_dependency(Factory.create_dependency("A", "~1.0"))
package.add_dependency(Factory.create_dependency("B", "^1.0"))
installer.run()
expected = fixture("with-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-dependencies")
assert locker.written_data == expected
......@@ -292,9 +294,10 @@ def test_run_update_after_removing_dependencies(
package.add_dependency(Factory.create_dependency("B", "~1.1"))
installer.update(True)
installer.run()
expected = fixture("with-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-dependencies")
assert locker.written_data == expected
assert installer.executor.installations_count == 0
......@@ -413,7 +416,8 @@ def test_run_install_with_dependency_groups(
installer.only_groups(groups)
installer.requires_synchronization(True)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == installs
assert installer.executor.updates_count == updates
......@@ -483,7 +487,8 @@ def test_run_install_does_not_remove_locked_packages_if_installed_but_not_requir
}
)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 0
assert installer.executor.updates_count == 0
......@@ -625,7 +630,8 @@ def test_run_install_removes_no_longer_locked_packages_if_installed(
)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 0
assert installer.executor.updates_count == 0
......@@ -703,7 +709,8 @@ def test_run_install_with_synchronization(
)
installer.requires_synchronization(True)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 0
assert installer.executor.updates_count == 0
......@@ -756,9 +763,10 @@ def test_run_whitelist_add(
installer.update(True)
installer.whitelist(["B"])
installer.run()
expected = fixture("with-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-dependencies")
assert locker.written_data == expected
......@@ -811,9 +819,10 @@ def test_run_whitelist_remove(
installer.update(True)
installer.whitelist(["B"])
installer.run()
expected = fixture("remove")
result = installer.run()
assert result == 0
expected = fixture("remove")
assert locker.written_data == expected
assert installer.executor.installations_count == 1
assert installer.executor.updates_count == 0
......@@ -838,9 +847,10 @@ def test_add_with_sub_dependencies(
package_a.add_dependency(Factory.create_dependency("D", "^1.0"))
package_b.add_dependency(Factory.create_dependency("C", "~1.2"))
installer.run()
expected = fixture("with-sub-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-sub-dependencies")
assert locker.written_data == expected
......@@ -865,9 +875,10 @@ def test_run_with_python_versions(
package.add_dependency(Factory.create_dependency("B", "^1.0"))
package.add_dependency(Factory.create_dependency("C", "^1.0"))
installer.run()
expected = fixture("with-python-versions")
result = installer.run()
assert result == 0
expected = fixture("with-python-versions")
assert locker.written_data == expected
......@@ -900,9 +911,10 @@ def test_run_with_optional_and_python_restricted_dependencies(
Factory.create_dependency("C", {"version": "^1.0", "python": "~2.7 || ^3.4"})
)
installer.run()
expected = fixture("with-optional-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-optional-dependencies")
assert locker.written_data == expected
# We should only have 2 installs:
......@@ -946,9 +958,10 @@ def test_run_with_optional_and_platform_restricted_dependencies(
Factory.create_dependency("C", {"version": "^1.0", "platform": "darwin"})
)
installer.run()
expected = fixture("with-platform-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-platform-dependencies")
assert locker.written_data == expected
# We should only have 2 installs:
......@@ -980,9 +993,10 @@ def test_run_with_dependencies_extras(
Factory.create_dependency("B", {"version": "^1.0", "extras": ["foo"]})
)
installer.run()
expected = fixture("with-dependencies-extras")
result = installer.run()
assert result == 0
expected = fixture("with-dependencies-extras")
assert locker.written_data == expected
......@@ -1011,9 +1025,10 @@ def test_run_with_dependencies_nested_extras(
package.add_dependency(dependency_a)
installer.run()
expected = fixture("with-dependencies-nested-extras")
result = installer.run()
assert result == 0
expected = fixture("with-dependencies-nested-extras")
assert locker.written_data == expected
......@@ -1038,9 +1053,10 @@ def test_run_does_not_install_extras_if_not_requested(
Factory.create_dependency("D", {"version": "^1.0", "optional": True})
)
installer.run()
expected = fixture("extras")
result = installer.run()
assert result == 0
expected = fixture("extras")
# Extras are pinned in lock
assert locker.written_data == expected
......@@ -1070,10 +1086,11 @@ def test_run_installs_extras_if_requested(
)
installer.extras(["foo"])
installer.run()
expected = fixture("extras")
result = installer.run()
assert result == 0
# Extras are pinned in lock
expected = fixture("extras")
assert locker.written_data == expected
# But should not be installed
......@@ -1103,7 +1120,9 @@ def test_run_installs_extras_with_deps_if_requested(
package_c.add_dependency(Factory.create_dependency("D", "^1.0"))
installer.extras(["foo"])
installer.run()
result = installer.run()
assert result == 0
expected = fixture("extras-with-dependencies")
# Extras are pinned in lock
......@@ -1138,9 +1157,9 @@ def test_run_installs_extras_with_deps_if_requested_locked(
package_c.add_dependency(Factory.create_dependency("D", "^1.0"))
installer.extras(["foo"])
installer.run()
result = installer.run()
assert result == 0
# But should not be installed
assert installer.executor.installations_count == 4 # A, B, C, D
......@@ -1158,8 +1177,10 @@ def test_installer_with_pypi_repository(
NullIO(), env, package, locker, pool, config, installed=installed
)
package.python_versions = ">=3.7"
package.add_dependency(Factory.create_dependency("pytest", "^3.5", groups=["dev"]))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-pypi-repository")
......@@ -1185,7 +1206,8 @@ def test_run_installs_with_local_file(
repo.add_package(get_package("pendulum", "1.4.4"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-file-dependency")
......@@ -1212,7 +1234,8 @@ def test_run_installs_wheel_with_no_requires_dist(
)
)
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-wheel-dependency-no-requires-dist")
......@@ -1243,7 +1266,8 @@ def test_run_installs_with_local_poetry_directory_and_extras(
repo.add_package(get_package("pendulum", "1.4.4"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-directory-dependency-poetry")
assert locker.written_data == expected
......@@ -1274,7 +1298,8 @@ def test_run_installs_with_local_poetry_directory_transitive(
repo.add_package(get_package("pendulum", "1.4.4"))
repo.add_package(get_package("cachy", "0.2.0"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-directory-dependency-poetry-transitive")
......@@ -1308,7 +1333,8 @@ def test_run_installs_with_local_poetry_file_transitive(
repo.add_package(get_package("pendulum", "1.4.4"))
repo.add_package(get_package("cachy", "0.2.0"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-file-dependency-transitive")
......@@ -1340,7 +1366,8 @@ def test_run_installs_with_local_setuptools_directory(
repo.add_package(get_package("pendulum", "1.4.4"))
repo.add_package(get_package("cachy", "0.2.0"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-directory-dependency-setuptools")
......@@ -1386,9 +1413,10 @@ def test_run_with_prereleases(
installer.update(True)
installer.whitelist({"B": "^1.1"})
installer.run()
expected = fixture("with-prereleases")
result = installer.run()
assert result == 0
expected = fixture("with-prereleases")
assert locker.written_data == expected
......@@ -1472,9 +1500,10 @@ def test_run_update_all_with_lock(
installer.update(True)
installer.run()
expected = fixture("update-with-lock")
result = installer.run()
assert result == 0
expected = fixture("update-with-lock")
assert locker.written_data == expected
......@@ -1545,9 +1574,10 @@ def test_run_update_with_locked_extras(
installer.update(True)
installer.whitelist("D")
installer.run()
expected = fixture("update-with-locked-extras")
result = installer.run()
assert result == 0
expected = fixture("update-with-locked-extras")
assert locker.written_data == expected
......@@ -1578,7 +1608,8 @@ def test_run_install_duplicate_dependencies_different_constraints(
repo.add_package(package_c12)
repo.add_package(package_c15)
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-duplicate-dependencies")
......@@ -1690,7 +1721,8 @@ def test_run_install_duplicate_dependencies_different_constraints_with_lock(
repo.add_package(package_c15)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-duplicate-dependencies")
......@@ -1756,7 +1788,8 @@ def test_run_update_uninstalls_after_removal_transient_dependency(
installed.add_package(get_package("B", "1.0"))
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 0
assert installer.executor.updates_count == 0
......@@ -1861,7 +1894,8 @@ def test_run_install_duplicate_dependencies_different_constraints_with_lock_upda
installer.update(True)
installer.whitelist(["A"])
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-duplicate-dependencies-update")
......@@ -1896,7 +1930,8 @@ def test_installer_test_solver_finds_compatible_package_for_dependency_python_no
repo.add_package(package_a100)
repo.add_package(package_a101)
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-conditional-dependency")
assert locker.written_data == expected
......@@ -1935,7 +1970,8 @@ def test_installer_required_extras_should_not_be_removed_when_updating_single_de
repo.add_package(package_d)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 3
assert installer.executor.updates_count == 0
......@@ -1961,7 +1997,8 @@ def test_installer_required_extras_should_not_be_removed_when_updating_single_de
)
installer.update(True)
installer.whitelist(["D"])
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 1
assert installer.executor.updates_count == 0
......@@ -1996,7 +2033,8 @@ def test_installer_required_extras_should_not_be_removed_when_updating_single_de
package.add_dependency(Factory.create_dependency("poetry", {"version": "^0.12.0"}))
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 3
assert installer.executor.updates_count == 0
......@@ -2022,7 +2060,8 @@ def test_installer_required_extras_should_not_be_removed_when_updating_single_de
)
installer.update(True)
installer.whitelist(["pytest"])
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 7
assert installer.executor.updates_count == 0
......@@ -2057,7 +2096,8 @@ def test_installer_required_extras_should_be_installed(
)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 2
assert installer.executor.updates_count == 0
......@@ -2077,7 +2117,8 @@ def test_installer_required_extras_should_be_installed(
executor=Executor(env, pool, config, NullIO()),
)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 2
assert installer.executor.updates_count == 0
......@@ -2144,21 +2185,24 @@ def test_update_multiple_times_with_split_dependencies_is_idempotent(
expected = fixture("with-multiple-updates")
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert locker.written_data == expected
locker.mock_lock_data(locker.written_data)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert locker.written_data == expected
locker.mock_lock_data(locker.written_data)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert locker.written_data == expected
......@@ -2190,7 +2234,8 @@ def test_installer_can_install_dependencies_from_forced_source(
executor=Executor(env, pool, config, NullIO()),
)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 1
assert installer.executor.updates_count == 0
......@@ -2205,7 +2250,8 @@ def test_run_installs_with_url_file(
repo.add_package(get_package("pendulum", "1.4.4"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-url-dependency")
......@@ -2254,7 +2300,8 @@ def test_run_installs_with_same_version_url_files(
NullIO(),
),
)
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-same-version-url-dependencies")
assert locker.written_data == expected
......@@ -2278,7 +2325,8 @@ def test_installer_uses_prereleases_if_they_are_compatible(
repo.add_package(package_b)
installer.run()
result = installer.run()
assert result == 0
del installer.installer.installs[:]
locker.locked(True)
......@@ -2288,7 +2336,8 @@ def test_installer_uses_prereleases_if_they_are_compatible(
installer.whitelist(["b"])
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 2
......@@ -2318,7 +2367,8 @@ def test_installer_can_handle_old_lock_files(
installed=installed,
executor=Executor(MockEnv(), pool, config, NullIO()),
)
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations_count == 6
......@@ -2337,7 +2387,8 @@ def test_installer_can_handle_old_lock_files(
NullIO(),
),
)
installer.run()
result = installer.run()
assert result == 0
# funcsigs will be added
assert installer.executor.installations_count == 7
......@@ -2357,7 +2408,8 @@ def test_installer_can_handle_old_lock_files(
NullIO(),
),
)
installer.run()
result = installer.run()
assert result == 0
# colorama will be added
assert installer.executor.installations_count == 8
......@@ -2382,9 +2434,10 @@ def test_run_with_dependencies_quiet(
package.add_dependency(Factory.create_dependency("A", "~1.0"))
package.add_dependency(Factory.create_dependency("B", "^1.0"))
installer.run()
expected = fixture("with-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-dependencies")
assert locker.written_data == expected
installer._io.output._buffer.seek(0)
......@@ -2445,7 +2498,8 @@ def test_installer_should_use_the_locked_version_of_git_dependencies(
repo.add_package(get_package("pendulum", "1.4.4"))
installer.run()
result = installer.run()
assert result == 0
assert installer.executor.installations[-1] == Package(
"demo",
......@@ -2486,7 +2540,8 @@ def test_installer_should_use_the_locked_version_of_git_dependencies_with_extras
repo.add_package(get_package("pendulum", "1.4.4"))
repo.add_package(get_package("cleo", "1.0.0"))
installer.run()
result = installer.run()
assert result == 0
assert len(installer.executor.installations) == 3
assert installer.executor.installations[-1] == Package(
......@@ -2524,7 +2579,8 @@ def test_installer_should_use_the_locked_version_of_git_dependencies_without_ref
repo.add_package(get_package("pendulum", "1.4.4"))
installer.run()
result = installer.run()
assert result == 0
assert len(installer.executor.installations) == 2
assert installer.executor.installations[-1] == Package(
......@@ -2620,7 +2676,8 @@ def test_installer_distinguishes_locked_packages_by_source(
NullIO(),
),
)
installer.run()
result = installer.run()
assert result == 0
# Results of installation are consistent with the platform requirements.
version = "1.11.0" if env_platform == "darwin" else "1.11.0+cpu"
......
......@@ -154,9 +154,10 @@ def fixture(name: str) -> str:
def test_run_no_dependencies(installer: Installer, locker: Locker):
installer.run()
expected = fixture("no-dependencies")
result = installer.run()
assert result == 0
expected = fixture("no-dependencies")
assert locker.written_data == expected
......@@ -171,9 +172,10 @@ def test_run_with_dependencies(
package.add_dependency(Factory.create_dependency("A", "~1.0"))
package.add_dependency(Factory.create_dependency("B", "^1.0"))
installer.run()
expected = fixture("with-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-dependencies")
assert locker.written_data == expected
......@@ -239,9 +241,10 @@ def test_run_update_after_removing_dependencies(
package.add_dependency(Factory.create_dependency("B", "~1.1"))
installer.update(True)
installer.run()
expected = fixture("with-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-dependencies")
assert locker.written_data == expected
installs = installer.installer.installs
......@@ -317,7 +320,8 @@ def test_run_install_no_group(
package.add_dependency(Factory.create_dependency("C", "~1.2", groups=["dev"]))
installer.only_groups([])
installer.run()
result = installer.run()
assert result == 0
installs = installer.installer.installs
assert len(installs) == 0
......@@ -400,7 +404,8 @@ def test_run_install_with_synchronization(
)
installer.requires_synchronization(True)
installer.run()
result = installer.run()
assert result == 0
installs = installer.installer.installs
assert len(installs) == 0
......@@ -456,9 +461,10 @@ def test_run_whitelist_add(
installer.update(True)
installer.whitelist(["B"])
installer.run()
expected = fixture("with-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-dependencies")
assert locker.written_data == expected
......@@ -511,9 +517,10 @@ def test_run_whitelist_remove(
installer.update(True)
installer.whitelist(["B"])
installer.run()
expected = fixture("remove")
result = installer.run()
assert result == 0
expected = fixture("remove")
assert locker.written_data == expected
assert len(installer.installer.installs) == 1
assert len(installer.installer.updates) == 0
......@@ -538,9 +545,10 @@ def test_add_with_sub_dependencies(
package_a.add_dependency(Factory.create_dependency("D", "^1.0"))
package_b.add_dependency(Factory.create_dependency("C", "~1.2"))
installer.run()
expected = fixture("with-sub-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-sub-dependencies")
assert locker.written_data == expected
......@@ -565,9 +573,10 @@ def test_run_with_python_versions(
package.add_dependency(Factory.create_dependency("B", "^1.0"))
package.add_dependency(Factory.create_dependency("C", "^1.0"))
installer.run()
expected = fixture("with-python-versions")
result = installer.run()
assert result == 0
expected = fixture("with-python-versions")
assert locker.written_data == expected
......@@ -600,9 +609,10 @@ def test_run_with_optional_and_python_restricted_dependencies(
Factory.create_dependency("C", {"version": "^1.0", "python": "~2.7 || ^3.4"})
)
installer.run()
expected = fixture("with-optional-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-optional-dependencies")
assert locker.written_data == expected
installer = installer.installer
......@@ -647,9 +657,10 @@ def test_run_with_optional_and_platform_restricted_dependencies(
Factory.create_dependency("C", {"version": "^1.0", "platform": "darwin"})
)
installer.run()
expected = fixture("with-platform-dependencies")
result = installer.run()
assert result == 0
expected = fixture("with-platform-dependencies")
assert locker.written_data == expected
installer = installer.installer
......@@ -682,9 +693,10 @@ def test_run_with_dependencies_extras(
Factory.create_dependency("B", {"version": "^1.0", "extras": ["foo"]})
)
installer.run()
expected = fixture("with-dependencies-extras")
result = installer.run()
assert result == 0
expected = fixture("with-dependencies-extras")
assert locker.written_data == expected
......@@ -709,10 +721,11 @@ def test_run_does_not_install_extras_if_not_requested(
Factory.create_dependency("D", {"version": "^1.0", "optional": True})
)
installer.run()
expected = fixture("extras")
result = installer.run()
assert result == 0
# Extras are pinned in lock
expected = fixture("extras")
assert locker.written_data == expected
# But should not be installed
......@@ -742,10 +755,11 @@ def test_run_installs_extras_if_requested(
)
installer.extras(["foo"])
installer.run()
expected = fixture("extras")
result = installer.run()
assert result == 0
# Extras are pinned in lock
expected = fixture("extras")
assert locker.written_data == expected
# But should not be installed
......@@ -776,10 +790,11 @@ def test_run_installs_extras_with_deps_if_requested(
package_c.add_dependency(Factory.create_dependency("D", "^1.0"))
installer.extras(["foo"])
installer.run()
expected = fixture("extras-with-dependencies")
result = installer.run()
assert result == 0
# Extras are pinned in lock
expected = fixture("extras-with-dependencies")
assert locker.written_data == expected
# But should not be installed
......@@ -812,7 +827,8 @@ def test_run_installs_extras_with_deps_if_requested_locked(
package_c.add_dependency(Factory.create_dependency("D", "^1.0"))
installer.extras(["foo"])
installer.run()
result = installer.run()
assert result == 0
# But should not be installed
installer = installer.installer
......@@ -833,11 +849,12 @@ def test_installer_with_pypi_repository(
NullIO(), env, package, locker, pool, config, installed=installed
)
package.python_versions = ">=3.7"
package.add_dependency(Factory.create_dependency("pytest", "^3.5", groups=["dev"]))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-pypi-repository")
assert expected == locker.written_data
......@@ -853,7 +870,8 @@ def test_run_installs_with_local_file(
repo.add_package(get_package("pendulum", "1.4.4"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-file-dependency")
......@@ -874,7 +892,8 @@ def test_run_installs_wheel_with_no_requires_dist(
)
package.add_dependency(Factory.create_dependency("demo", {"file": str(file_path)}))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-wheel-dependency-no-requires-dist")
......@@ -900,7 +919,8 @@ def test_run_installs_with_local_poetry_directory_and_extras(
repo.add_package(get_package("pendulum", "1.4.4"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-directory-dependency-poetry")
......@@ -932,7 +952,8 @@ def test_run_installs_with_local_poetry_directory_transitive(
repo.add_package(get_package("pendulum", "1.4.4"))
repo.add_package(get_package("cachy", "0.2.0"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-directory-dependency-poetry-transitive")
......@@ -964,7 +985,8 @@ def test_run_installs_with_local_poetry_file_transitive(
repo.add_package(get_package("pendulum", "1.4.4"))
repo.add_package(get_package("cachy", "0.2.0"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-file-dependency-transitive")
......@@ -989,7 +1011,8 @@ def test_run_installs_with_local_setuptools_directory(
repo.add_package(get_package("pendulum", "1.4.4"))
repo.add_package(get_package("cachy", "0.2.0"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-directory-dependency-setuptools")
......@@ -1036,9 +1059,10 @@ def test_run_with_prereleases(
installer.update(True)
installer.whitelist({"B": "^1.1"})
installer.run()
expected = fixture("with-prereleases")
result = installer.run()
assert result == 0
expected = fixture("with-prereleases")
assert locker.written_data == expected
......@@ -1122,9 +1146,10 @@ def test_run_update_all_with_lock(
installer.update(True)
installer.run()
expected = fixture("update-with-lock")
result = installer.run()
assert result == 0
expected = fixture("update-with-lock")
assert locker.written_data == expected
......@@ -1195,9 +1220,10 @@ def test_run_update_with_locked_extras(
installer.update(True)
installer.whitelist("D")
installer.run()
expected = fixture("update-with-locked-extras")
result = installer.run()
assert result == 0
expected = fixture("update-with-locked-extras")
assert locker.written_data == expected
......@@ -1228,7 +1254,8 @@ def test_run_install_duplicate_dependencies_different_constraints(
repo.add_package(package_c12)
repo.add_package(package_c15)
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-duplicate-dependencies")
......@@ -1342,7 +1369,8 @@ def test_run_install_duplicate_dependencies_different_constraints_with_lock(
repo.add_package(package_c15)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-duplicate-dependencies")
......@@ -1411,7 +1439,8 @@ def test_run_update_uninstalls_after_removal_transient_dependency(
installed.add_package(get_package("B", "1.0"))
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
installs = installer.installer.installs
assert len(installs) == 0
......@@ -1519,7 +1548,8 @@ def test_run_install_duplicate_dependencies_different_constraints_with_lock_upda
installer.update(True)
installer.whitelist(["A"])
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-duplicate-dependencies-update")
......@@ -1557,7 +1587,8 @@ def test_installer_test_solver_finds_compatible_package_for_dependency_python_no
repo.add_package(package_a100)
repo.add_package(package_a101)
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-conditional-dependency")
assert locker.written_data == expected
......@@ -1598,7 +1629,8 @@ def test_installer_required_extras_should_not_be_removed_when_updating_single_de
repo.add_package(package_d)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert len(installer.installer.installs) == 3
assert len(installer.installer.updates) == 0
......@@ -1618,7 +1650,8 @@ def test_installer_required_extras_should_not_be_removed_when_updating_single_de
installer.update(True)
installer.whitelist(["D"])
installer.run()
result = installer.run()
assert result == 0
assert len(installer.installer.installs) == 1
assert len(installer.installer.updates) == 0
......@@ -1646,7 +1679,8 @@ def test_installer_required_extras_should_not_be_removed_when_updating_single_de
package.add_dependency(Factory.create_dependency("poetry", {"version": "^0.12.0"}))
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert len(installer.installer.installs) == 3
assert len(installer.installer.updates) == 0
......@@ -1666,7 +1700,8 @@ def test_installer_required_extras_should_not_be_removed_when_updating_single_de
installer.update(True)
installer.whitelist(["pytest"])
installer.run()
result = installer.run()
assert result == 0
assert len(installer.installer.installs) == 7
assert len(installer.installer.updates) == 0
......@@ -1695,7 +1730,8 @@ def test_installer_required_extras_should_be_installed(
)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert len(installer.installer.installs) == 2
assert len(installer.installer.updates) == 0
......@@ -1709,7 +1745,8 @@ def test_installer_required_extras_should_be_installed(
)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert len(installer.installer.installs) == 2
assert len(installer.installer.updates) == 0
......@@ -1776,21 +1813,24 @@ def test_update_multiple_times_with_split_dependencies_is_idempotent(
expected = fixture("with-multiple-updates")
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert locker.written_data == expected
locker.mock_lock_data(locker.written_data)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert locker.written_data == expected
locker.mock_lock_data(locker.written_data)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert locker.written_data == expected
......@@ -1816,7 +1856,8 @@ def test_installer_can_install_dependencies_from_forced_source(
)
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert len(installer.installer.installs) == 1
assert len(installer.installer.updates) == 0
......@@ -1831,7 +1872,8 @@ def test_run_installs_with_url_file(
repo.add_package(get_package("pendulum", "1.4.4"))
installer.run()
result = installer.run()
assert result == 0
expected = fixture("with-url-dependency")
......@@ -1855,7 +1897,8 @@ def test_installer_uses_prereleases_if_they_are_compatible(
repo.add_package(package_b)
installer.run()
result = installer.run()
assert result == 0
del installer.installer.installs[:]
locker.locked(True)
......@@ -1865,7 +1908,8 @@ def test_installer_uses_prereleases_if_they_are_compatible(
installer.whitelist(["b"])
installer.update(True)
installer.run()
result = installer.run()
assert result == 0
assert len(installer.installer.installs) == 2
......@@ -1889,7 +1933,8 @@ def test_installer_can_handle_old_lock_files(
NullIO(), MockEnv(), package, locker, pool, config, installed=installed
)
installer.run()
result = installer.run()
assert result == 0
assert len(installer.installer.installs) == 6
......@@ -1903,7 +1948,8 @@ def test_installer_can_handle_old_lock_files(
installed=installed,
)
installer.run()
result = installer.run()
assert result == 0
# funcsigs will be added
assert len(installer.installer.installs) == 7
......@@ -1918,7 +1964,8 @@ def test_installer_can_handle_old_lock_files(
installed=installed,
)
installer.run()
result = installer.run()
assert result == 0
# colorama will be added
assert len(installer.installer.installs) == 8
......@@ -16,10 +16,36 @@
"md5": "dd4e3fa83a21bf7bf9c51026dc8a4e59",
"sha256": "f7cddbb5f5c640311eb00eab6e849f7701fa70bf6a183fc8a2c33dd1d1672fb2"
}
},
{
"filename": "setuptools-67.6.1-py3-none-any.whl",
"hashes": {
"sha256": "e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078"
},
"requires-python": ">=3.7",
"size": 1089263,
"upload-time": "2023-03-28T13:45:43.525946Z",
"url": "https://files.pythonhosted.org/packages/0b/fc/8781442def77b0aa22f63f266d4dadd486ebc0c5371d6290caf4320da4b7/setuptools-67.6.1-py3-none-any.whl",
"yanked": false
},
{
"filename": "setuptools-67.6.1.tar.gz",
"hashes": {
"sha256": "257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a"
},
"requires-python": ">=3.7",
"size": 2486256,
"upload-time": "2023-03-28T13:45:45.967259Z",
"url": "https://files.pythonhosted.org/packages/cb/46/22ec35f286a77e6b94adf81b4f0d59f402ed981d4251df0ba7b992299146/setuptools-67.6.1.tar.gz",
"yanked": false
}
],
"meta": {
"api-version": "1.0",
"_last-serial": 3879671
}
},
"versions": [
"39.2.0",
"67.6.1"
]
}
{
"info": {
"author": "Python Packaging Authority",
"author_email": "distutils-sig@python.org",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: System :: Archiving :: Packaging",
"Topic :: System :: Systems Administration",
"Topic :: Utilities"
],
"description": ".. image:: https://img.shields.io/pypi/v/setuptools.svg\n :target: https://pypi.org/project/setuptools\n\n.. image:: https://img.shields.io/pypi/pyversions/setuptools.svg\n\n.. image:: https://github.com/pypa/setuptools/workflows/tests/badge.svg\n :target: https://github.com/pypa/setuptools/actions?query=workflow%3A%22tests%22\n :alt: tests\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/psf/black\n :alt: Code style: Black\n\n.. image:: https://img.shields.io/readthedocs/setuptools/latest.svg\n :target: https://setuptools.pypa.io\n\n.. image:: https://img.shields.io/badge/skeleton-2023-informational\n :target: https://blog.jaraco.com/skeleton\n\n.. image:: https://img.shields.io/codecov/c/github/pypa/setuptools/master.svg?logo=codecov&logoColor=white\n :target: https://codecov.io/gh/pypa/setuptools\n\n.. image:: https://tidelift.com/badges/github/pypa/setuptools?style=flat\n :target: https://tidelift.com/subscription/pkg/pypi-setuptools?utm_source=pypi-setuptools&utm_medium=readme\n\n.. image:: https://img.shields.io/discord/803025117553754132\n :target: https://discord.com/channels/803025117553754132/815945031150993468\n :alt: Discord\n\nSee the `Installation Instructions\n<https://packaging.python.org/installing/>`_ in the Python Packaging\nUser's Guide for instructions on installing, upgrading, and uninstalling\nSetuptools.\n\nQuestions and comments should be directed to `GitHub Discussions\n<https://github.com/pypa/setuptools/discussions>`_.\nBug reports and especially tested patches may be\nsubmitted directly to the `bug tracker\n<https://github.com/pypa/setuptools/issues>`_.\n\n\nCode of Conduct\n===============\n\nEveryone interacting in the setuptools project's codebases, issue trackers,\nchat rooms, and fora is expected to follow the\n`PSF Code of Conduct <https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md>`_.\n\n\nFor Enterprise\n==============\n\nAvailable as part of the Tidelift Subscription.\n\nSetuptools and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use.\n\n`Learn more <https://tidelift.com/subscription/pkg/pypi-setuptools?utm_source=pypi-setuptools&utm_medium=referral&utm_campaign=github>`_.\n\n\nSecurity Contact\n================\n\nTo report a security vulnerability, please use the\n`Tidelift security contact <https://tidelift.com/security>`_.\nTidelift will coordinate the fix and disclosure.\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/pypa/setuptools",
"keywords": "CPAN PyPI distutils eggs package management",
"license": "",
"maintainer": "",
"maintainer_email": "",
"name": "setuptools",
"package_url": "https://pypi.org/project/setuptools/",
"platform": null,
"project_url": "https://pypi.org/project/setuptools/",
"project_urls": {
"Changelog": "https://setuptools.pypa.io/en/stable/history.html",
"Documentation": "https://setuptools.pypa.io/",
"Homepage": "https://github.com/pypa/setuptools"
},
"release_url": "https://pypi.org/project/setuptools/67.6.1/",
"requires_dist": [
"sphinx (>=3.5) ; extra == 'docs'",
"jaraco.packaging (>=9) ; extra == 'docs'",
"rst.linker (>=1.9) ; extra == 'docs'",
"furo ; extra == 'docs'",
"sphinx-lint ; extra == 'docs'",
"jaraco.tidelift (>=1.4) ; extra == 'docs'",
"pygments-github-lexers (==0.0.5) ; extra == 'docs'",
"sphinx-favicon ; extra == 'docs'",
"sphinx-inline-tabs ; extra == 'docs'",
"sphinx-reredirects ; extra == 'docs'",
"sphinxcontrib-towncrier ; extra == 'docs'",
"sphinx-notfound-page (==0.8.3) ; extra == 'docs'",
"sphinx-hoverxref (<2) ; extra == 'docs'",
"pytest (>=6) ; extra == 'testing'",
"pytest-checkdocs (>=2.4) ; extra == 'testing'",
"flake8 (<5) ; extra == 'testing'",
"pytest-enabler (>=1.3) ; extra == 'testing'",
"pytest-perf ; extra == 'testing'",
"flake8-2020 ; extra == 'testing'",
"virtualenv (>=13.0.0) ; extra == 'testing'",
"wheel ; extra == 'testing'",
"pip (>=19.1) ; extra == 'testing'",
"jaraco.envs (>=2.2) ; extra == 'testing'",
"pytest-xdist ; extra == 'testing'",
"jaraco.path (>=3.2.0) ; extra == 'testing'",
"build[virtualenv] ; extra == 'testing'",
"filelock (>=3.4.0) ; extra == 'testing'",
"pip-run (>=8.8) ; extra == 'testing'",
"ini2toml[lite] (>=0.9) ; extra == 'testing'",
"tomli-w (>=1.0.0) ; extra == 'testing'",
"pytest-timeout ; extra == 'testing'",
"pytest ; extra == 'testing-integration'",
"pytest-xdist ; extra == 'testing-integration'",
"pytest-enabler ; extra == 'testing-integration'",
"virtualenv (>=13.0.0) ; extra == 'testing-integration'",
"tomli ; extra == 'testing-integration'",
"wheel ; extra == 'testing-integration'",
"jaraco.path (>=3.2.0) ; extra == 'testing-integration'",
"jaraco.envs (>=2.2) ; extra == 'testing-integration'",
"build[virtualenv] ; extra == 'testing-integration'",
"filelock (>=3.4.0) ; extra == 'testing-integration'",
"pytest-black (>=0.3.7) ; (platform_python_implementation != \"PyPy\") and extra == 'testing'",
"pytest-cov ; (platform_python_implementation != \"PyPy\") and extra == 'testing'",
"pytest-mypy (>=0.9.1) ; (platform_python_implementation != \"PyPy\") and extra == 'testing'",
"pytest-flake8 ; (python_version < \"3.12\") and extra == 'testing'"
],
"requires_python": ">=3.7",
"summary": "Easily download, build, install, upgrade, and uninstall Python packages",
"version": "67.6.1",
"yanked": false,
"yanked_reason": null
},
"last_serial": 17478645,
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0bfc8781442def77b0aa22f63f266d4dadd486ebc0c5371d6290caf4320da4b7",
"md5": "3b5b846e000da033d54eeaaf7915126e",
"sha256": "e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078"
},
"downloads": -1,
"filename": "setuptools-67.6.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3b5b846e000da033d54eeaaf7915126e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1089263,
"upload_time": "2023-03-28T13:45:43",
"upload_time_iso_8601": "2023-03-28T13:45:43.525946Z",
"url": "https://files.pythonhosted.org/packages/0b/fc/8781442def77b0aa22f63f266d4dadd486ebc0c5371d6290caf4320da4b7/setuptools-67.6.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cb4622ec35f286a77e6b94adf81b4f0d59f402ed981d4251df0ba7b992299146",
"md5": "a661b7cdf4cf1e914f866506c1022dee",
"sha256": "257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a"
},
"downloads": -1,
"filename": "setuptools-67.6.1.tar.gz",
"has_sig": false,
"md5_digest": "a661b7cdf4cf1e914f866506c1022dee",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 2486256,
"upload_time": "2023-03-28T13:45:45",
"upload_time_iso_8601": "2023-03-28T13:45:45.967259Z",
"url": "https://files.pythonhosted.org/packages/cb/46/22ec35f286a77e6b94adf81b4f0d59f402ed981d4251df0ba7b992299146/setuptools-67.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"vulnerabilities": []
}
{
"files": [
{
"filename": "wheel-0.40.0-py3-none-any.whl",
"hashes": {
"sha256": "d236b20e7cb522daf2390fa84c55eea81c5c30190f90f29ae2ca1ad8355bf247"
},
"requires-python": ">=3.7",
"size": 64545,
"upload-time": "2023-03-14T15:10:00.828550Z",
"url": "https://files.pythonhosted.org/packages/61/86/cc8d1ff2ca31a312a25a708c891cf9facbad4eae493b3872638db6785eb5/wheel-0.40.0-py3-none-any.whl",
"yanked": false
},
{
"filename": "wheel-0.40.0.tar.gz",
"hashes": {
"sha256": "cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873"
},
"requires-python": ">=3.7",
"size": 96226,
"upload-time": "2023-03-14T15:10:02.873691Z",
"url": "https://files.pythonhosted.org/packages/fc/ef/0335f7217dd1e8096a9e8383e1d472aa14717878ffe07c4772e68b6e8735/wheel-0.40.0.tar.gz",
"yanked": false
}
],
"meta": {
"_last-serial": 17289142,
"api-version": "1.1"
},
"name": "wheel",
"versions": [
"0.40.0"
]
}
{
"info": {
"author": "",
"author_email": "Daniel Holth <dholth@fastmail.fm>",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Topic :: System :: Archiving :: Packaging"
],
"description": "wheel\n=====\n\nThis library is the reference implementation of the Python wheel packaging\nstandard, as defined in `PEP 427`_.\n\nIt has two different roles:\n\n#. A setuptools_ extension for building wheels that provides the\n ``bdist_wheel`` setuptools command\n#. A command line tool for working with wheel files\n\nIt should be noted that wheel is **not** intended to be used as a library, and\nas such there is no stable, public API.\n\n.. _PEP 427: https://www.python.org/dev/peps/pep-0427/\n.. _setuptools: https://pypi.org/project/setuptools/\n\nDocumentation\n-------------\n\nThe documentation_ can be found on Read The Docs.\n\n.. _documentation: https://wheel.readthedocs.io/\n\nCode of Conduct\n---------------\n\nEveryone interacting in the wheel project's codebases, issue trackers, chat\nrooms, and mailing lists is expected to follow the `PSF Code of Conduct`_.\n\n.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md\n\n",
"description_content_type": "text/x-rst",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "",
"keywords": "wheel,packaging",
"license": "",
"maintainer": "",
"maintainer_email": "Alex Grönholm <alex.gronholm@nextday.fi>",
"name": "wheel",
"package_url": "https://pypi.org/project/wheel/",
"platform": null,
"project_url": "https://pypi.org/project/wheel/",
"project_urls": {
"Changelog": "https://wheel.readthedocs.io/en/stable/news.html",
"Documentation": "https://wheel.readthedocs.io/",
"Issue Tracker": "https://github.com/pypa/wheel/issues"
},
"release_url": "https://pypi.org/project/wheel/0.40.0/",
"requires_dist": [
"pytest >= 6.0.0 ; extra == \"test\""
],
"requires_python": ">=3.7",
"summary": "A built-package format for Python",
"version": "0.40.0",
"yanked": false,
"yanked_reason": null
},
"last_serial": 17289142,
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6186cc8d1ff2ca31a312a25a708c891cf9facbad4eae493b3872638db6785eb5",
"md5": "517d39f133bd7b1ff17caf09784b7543",
"sha256": "d236b20e7cb522daf2390fa84c55eea81c5c30190f90f29ae2ca1ad8355bf247"
},
"downloads": -1,
"filename": "wheel-0.40.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "517d39f133bd7b1ff17caf09784b7543",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 64545,
"upload_time": "2023-03-14T15:10:00",
"upload_time_iso_8601": "2023-03-14T15:10:00.828550Z",
"url": "https://files.pythonhosted.org/packages/61/86/cc8d1ff2ca31a312a25a708c891cf9facbad4eae493b3872638db6785eb5/wheel-0.40.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fcef0335f7217dd1e8096a9e8383e1d472aa14717878ffe07c4772e68b6e8735",
"md5": "ec5004c46d1905da98bb5bc1a10ddd21",
"sha256": "cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873"
},
"downloads": -1,
"filename": "wheel-0.40.0.tar.gz",
"has_sig": false,
"md5_digest": "ec5004c46d1905da98bb5bc1a10ddd21",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 96226,
"upload_time": "2023-03-14T15:10:02",
"upload_time_iso_8601": "2023-03-14T15:10:02.873691Z",
"url": "https://files.pythonhosted.org/packages/fc/ef/0335f7217dd1e8096a9e8383e1d472aa14717878ffe07c4772e68b6e8735/wheel-0.40.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"vulnerabilities": []
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment