Commit c061ac55 by David Hotham Committed by GitHub

feat: lock file format 2.0 (store package files on the package in lockfile) (#6393)

parent be3d184e
......@@ -47,7 +47,8 @@ GENERATED_COMMENT = (
class Locker:
_VERSION = "1.1"
_VERSION = "2.0"
_READ_VERSION_RANGE = ">=1,<3"
_legacy_keys = ["dependencies", "source", "extras", "dev-dependencies"]
_relevant_keys = [*_legacy_keys, "group"]
......@@ -116,8 +117,9 @@ class Locker:
if source_type in ["directory", "file"]:
url = self._lock.path.parent.joinpath(url).resolve().as_posix()
name = info["name"]
package = Package(
info["name"],
name,
info["version"],
info["version"],
source_type=source_type,
......@@ -130,9 +132,19 @@ class Locker:
package.category = info.get("category", "main")
package.optional = info["optional"]
metadata = cast("dict[str, Any]", lock_data["metadata"])
name = info["name"]
if "hashes" in metadata:
# Old lock so we create dummy files from the hashes
# Storing of package files and hashes has been through a few generations in
# the lockfile, we can read them all:
#
# - latest and preferred is that this is read per package, from
# package.files
# - oldest is that hashes were stored in metadata.hashes without filenames
# - in between those two, hashes were stored alongside filenames in
# metadata.files
package_files = info.get("files")
if package_files is not None:
package.files = package_files
elif "hashes" in metadata:
hashes = cast("dict[str, Any]", metadata["hashes"])
package.files = [{"name": h, "hash": h} for h in hashes[name]]
elif source_type in {"git", "directory", "url"}:
......@@ -233,8 +245,6 @@ class Locker:
assert isinstance(package_files, Array)
files[package["name"]] = package_files.multiline(True)
del package["files"]
lock = document()
lock.add(comment(GENERATED_COMMENT))
lock["package"] = package_specs
......@@ -249,7 +259,6 @@ class Locker:
"lock-version": self._VERSION,
"python-versions": root.python_versions,
"content-hash": self._content_hash,
"files": files,
}
if not self.is_locked() or lock != self.lock_data:
......@@ -297,11 +306,7 @@ class Locker:
metadata = cast("Table", lock_data["metadata"])
lock_version = Version.parse(metadata.get("lock-version", "1.0"))
current_version = Version.parse(self._VERSION)
# We expect the locker to be able to read lock files
# from the same semantic versioning range
accepted_versions = parse_constraint(
f"^{Version.from_parts(current_version.major, 0)}"
)
accepted_versions = parse_constraint(self._READ_VERSION_RANGE)
lock_version_allowed = accepted_versions.allows(lock_version)
if lock_version_allowed and current_version < lock_version:
logger.warning(
......
......@@ -55,7 +55,7 @@ def install_plugin(installed: Repository) -> None:
"python-versions": "^3.6",
"platform": "*",
"content-hash": "123456789",
"hashes": {"poetry-plugin": []},
"files": {"poetry-plugin": []},
},
}
system_pyproject_file.parent.joinpath("poetry.lock").write_text(
......
......@@ -146,7 +146,7 @@ def test_lock_no_update(
assert len(packages) == len(locked_repository.packages)
assert locker.lock_data["metadata"].get("lock-version") == "1.1"
assert locker.lock_data["metadata"].get("lock-version") == "2.0"
for package in packages:
assert locked_repository.find_packages(package.to_dependency())
......@@ -87,7 +87,7 @@ def test_show_basic_with_installed_packages(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": [], "pytest": []},
"files": {"cachy": [], "pendulum": [], "pytest": []},
},
}
)
......@@ -168,7 +168,7 @@ def _configure_project_with_groups(poetry: Poetry, installed: Repository) -> Non
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": [], "pytest": []},
"files": {"cachy": [], "pendulum": [], "pytest": []},
},
}
)
......@@ -293,7 +293,7 @@ def test_show_basic_with_installed_packages_single(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": []},
"files": {"cachy": []},
},
}
)
......@@ -335,7 +335,7 @@ def test_show_basic_with_installed_packages_single_canonicalized(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"foo-bar": []},
"files": {"foo-bar": []},
},
}
)
......@@ -390,7 +390,7 @@ def test_show_basic_with_not_installed_packages_non_decorated(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": []},
"files": {"cachy": [], "pendulum": []},
},
}
)
......@@ -446,7 +446,7 @@ def test_show_basic_with_not_installed_packages_decorated(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": []},
"files": {"cachy": [], "pendulum": []},
},
}
)
......@@ -516,7 +516,7 @@ def test_show_latest_non_decorated(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": []},
"files": {"cachy": [], "pendulum": []},
},
}
)
......@@ -586,7 +586,7 @@ def test_show_latest_decorated(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": []},
"files": {"cachy": [], "pendulum": []},
},
}
)
......@@ -655,7 +655,7 @@ def test_show_outdated(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": []},
"files": {"cachy": [], "pendulum": []},
},
}
)
......@@ -699,7 +699,7 @@ def test_show_outdated_with_only_up_to_date_packages(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": []},
"files": {"cachy": []},
},
}
)
......@@ -768,7 +768,7 @@ def test_show_outdated_has_prerelease_but_not_allowed(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": []},
"files": {"cachy": [], "pendulum": []},
},
}
)
......@@ -843,7 +843,7 @@ def test_show_outdated_has_prerelease_and_allowed(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": []},
"files": {"cachy": [], "pendulum": []},
},
}
)
......@@ -912,7 +912,7 @@ def test_show_outdated_formatting(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": []},
"files": {"cachy": [], "pendulum": []},
},
}
)
......@@ -1029,7 +1029,7 @@ def test_show_outdated_local_dependencies(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {
"files": {
"cachy": [],
"pendulum": [],
"demo": [],
......@@ -1136,7 +1136,7 @@ def test_show_outdated_git_dev_dependency(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": [], "demo": [], "pytest": []},
"files": {"cachy": [], "pendulum": [], "demo": [], "pytest": []},
},
}
)
......@@ -1235,7 +1235,7 @@ def test_show_outdated_no_dev_git_dev_dependency(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": [], "demo": [], "pytest": []},
"files": {"cachy": [], "pendulum": [], "demo": [], "pytest": []},
},
}
)
......@@ -1296,7 +1296,7 @@ def test_show_hides_incompatible_package(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": []},
"files": {"cachy": [], "pendulum": []},
},
}
)
......@@ -1353,7 +1353,7 @@ def test_show_all_shows_incompatible_package(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": []},
"files": {"cachy": [], "pendulum": []},
},
}
)
......@@ -1429,7 +1429,7 @@ def test_show_non_dev_with_basic_installed_packages(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": [], "pytest": []},
"files": {"cachy": [], "pendulum": [], "pytest": []},
},
}
)
......@@ -1505,7 +1505,7 @@ def test_show_with_group_only(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": [], "pytest": []},
"files": {"cachy": [], "pendulum": [], "pytest": []},
},
}
)
......@@ -1580,7 +1580,7 @@ def test_show_with_optional_group(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": [], "pytest": []},
"files": {"cachy": [], "pendulum": [], "pytest": []},
},
}
)
......@@ -1642,7 +1642,7 @@ def test_show_tree(tester: CommandTester, poetry: Poetry, installed: Repository)
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "msgpack-python": []},
"files": {"cachy": [], "msgpack-python": []},
},
}
)
......@@ -1709,7 +1709,7 @@ def test_show_tree_no_dev(tester: CommandTester, poetry: Poetry, installed: Repo
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "msgpack-python": [], "pytest": []},
"files": {"cachy": [], "msgpack-python": [], "pytest": []},
},
}
)
......@@ -1768,7 +1768,7 @@ def test_show_tree_why_package(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"a": [], "b": [], "c": []},
"files": {"a": [], "b": [], "c": []},
},
}
)
......@@ -1825,7 +1825,7 @@ def test_show_tree_why(tester: CommandTester, poetry: Poetry, installed: Reposit
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"a": [], "b": [], "c": []},
"files": {"a": [], "b": [], "c": []},
},
}
)
......@@ -1894,7 +1894,7 @@ def test_show_required_by_deps(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"cachy": [], "pendulum": [], "msgpack-python": []},
"files": {"cachy": [], "pendulum": [], "msgpack-python": []},
},
}
)
......@@ -1983,7 +1983,7 @@ def test_show_dependency_installed_from_git_in_dev(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"demo": [], "pendulum": []},
"files": {"demo": [], "pendulum": []},
},
}
)
......
[[package]]
name = "certifi"
version = "2020.6.20"
description = "Python package for providing Mozilla's CA Bundle."
category = "main"
optional = false
python-versions = "*"
[[package]]
name = "chardet"
version = "3.0.4"
description = "Universal encoding detector for Python 2 and 3"
category = "main"
optional = false
python-versions = "*"
[[package]]
name = "docker"
version = "4.3.1"
description = "A Python library for the Docker Engine API."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[package.dependencies]
pywin32 = {version = "227", markers = "sys_platform == \"win32\""}
requests = ">=2.14.2,<2.18.0 || >2.18.0"
six = ">=1.4.0"
websocket-client = ">=0.32.0"
[package.extras]
ssh = ["paramiko (>=2.4.2)"]
tls = ["pyOpenSSL (>=17.5.0)", "cryptography (>=1.3.4)", "idna (>=2.0.0)"]
[[package]]
name = "idna"
version = "2.10"
description = "Internationalized Domain Names in Applications (IDNA)"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "pywin32"
version = "227"
description = "Python for Window Extensions"
category = "main"
optional = false
python-versions = "*"
[[package]]
name = "requests"
version = "2.24.0"
description = "Python HTTP for Humans."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[package.dependencies]
certifi = ">=2017.4.17"
chardet = ">=3.0.2,<4"
idna = ">=2.5,<3"
urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26"
[package.extras]
security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"]
[[package]]
name = "six"
version = "1.15.0"
description = "Python 2 and 3 compatibility utilities"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
[[package]]
name = "urllib3"
version = "1.25.10"
description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
[package.extras]
brotli = ["brotlipy (>=0.6.0)"]
secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"]
socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
[[package]]
name = "websocket-client"
version = "0.57.0"
description = "WebSocket client for Python. hybi13 is supported."
category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.dependencies]
six = "*"
[metadata]
lock-version = "1.1"
python-versions = "^3.8"
content-hash = "bb4c2f3c089b802c1930b6acbeed04711d93e9cdfd9a003eb17518a6d9f350c6"
[metadata.files]
certifi = [
{file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"},
{file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"},
]
chardet = [
{file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
{file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
]
docker = [
{file = "docker-4.3.1-py2.py3-none-any.whl", hash = "sha256:13966471e8bc23b36bfb3a6fb4ab75043a5ef1dac86516274777576bed3b9828"},
{file = "docker-4.3.1.tar.gz", hash = "sha256:bad94b8dd001a8a4af19ce4becc17f41b09f228173ffe6a4e0355389eef142f2"},
]
idna = [
{file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
{file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
]
pywin32 = [
{file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"},
{file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"},
{file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"},
{file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"},
{file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"},
{file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"},
{file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"},
{file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"},
{file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"},
{file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"},
{file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"},
{file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"},
]
requests = [
{file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
{file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
]
six = [
{file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
{file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
]
urllib3 = [
{file = "urllib3-1.25.10-py2.py3-none-any.whl", hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"},
{file = "urllib3-1.25.10.tar.gz", hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"},
]
websocket-client = [
{file = "websocket_client-0.57.0-py2.py3-none-any.whl", hash = "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549"},
{file = "websocket_client-0.57.0.tar.gz", hash = "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"},
]
......@@ -6,6 +6,14 @@ category = "main"
optional = false
python-versions = "*"
[[package.files]]
file = "certifi-2020.6.20-py2.py3-none-any.whl"
hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"
[[package.files]]
file = "certifi-2020.6.20.tar.gz"
hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"
[[package]]
name = "chardet"
version = "3.0.4"
......@@ -14,6 +22,14 @@ category = "main"
optional = false
python-versions = "*"
[[package.files]]
file = "chardet-3.0.4-py2.py3-none-any.whl"
hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
[[package.files]]
file = "chardet-3.0.4.tar.gz"
hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"
[[package]]
name = "docker"
version = "4.3.0"
......@@ -22,6 +38,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package.files]]
file = "docker-4.3.0-py2.py3-none-any.whl"
hash = "sha256:ba118607b0ba6bfc1b236ec32019a355c47b5d012d01d976467d4692ef443929"
[[package.files]]
file = "docker-4.3.0.tar.gz"
hash = "sha256:431a268f2caf85aa30613f9642da274c62f6ee8bae7d70d968e01529f7d6af93"
[package.dependencies]
pywin32 = {version = "227", markers = "sys_platform == \"win32\""}
requests = ">=2.14.2,<2.18.0 || >2.18.0"
......@@ -40,6 +64,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package.files]]
file = "idna-2.10-py2.py3-none-any.whl"
hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"
[[package.files]]
file = "idna-2.10.tar.gz"
hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"
[[package]]
name = "pywin32"
version = "227"
......@@ -48,6 +80,54 @@ category = "main"
optional = false
python-versions = "*"
[[package.files]]
file = "pywin32-227-cp27-cp27m-win32.whl"
hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"
[[package.files]]
file = "pywin32-227-cp27-cp27m-win_amd64.whl"
hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"
[[package.files]]
file = "pywin32-227-cp35-cp35m-win32.whl"
hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"
[[package.files]]
file = "pywin32-227-cp35-cp35m-win_amd64.whl"
hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"
[[package.files]]
file = "pywin32-227-cp36-cp36m-win32.whl"
hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"
[[package.files]]
file = "pywin32-227-cp36-cp36m-win_amd64.whl"
hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"
[[package.files]]
file = "pywin32-227-cp37-cp37m-win32.whl"
hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"
[[package.files]]
file = "pywin32-227-cp37-cp37m-win_amd64.whl"
hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"
[[package.files]]
file = "pywin32-227-cp38-cp38-win32.whl"
hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"
[[package.files]]
file = "pywin32-227-cp38-cp38-win_amd64.whl"
hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"
[[package.files]]
file = "pywin32-227-cp39-cp39-win32.whl"
hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"
[[package.files]]
file = "pywin32-227-cp39-cp39-win_amd64.whl"
hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"
[[package]]
name = "requests"
version = "2.24.0"
......@@ -56,6 +136,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package.files]]
file = "requests-2.24.0-py2.py3-none-any.whl"
hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"
[[package.files]]
file = "requests-2.24.0.tar.gz"
hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"
[package.dependencies]
certifi = ">=2017.4.17"
chardet = ">=3.0.2,<4"
......@@ -74,6 +162,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
[[package.files]]
file = "six-1.15.0-py2.py3-none-any.whl"
hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
[[package.files]]
file = "six-1.15.0.tar.gz"
hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"
[[package]]
name = "urllib3"
version = "1.25.10"
......@@ -82,6 +178,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
[[package.files]]
file = "urllib3-1.25.10-py2.py3-none-any.whl"
hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"
[[package.files]]
file = "urllib3-1.25.10.tar.gz"
hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"
[package.extras]
brotli = ["brotlipy (>=0.6.0)"]
secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"]
......@@ -95,58 +199,18 @@ category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package.files]]
file = "websocket_client-0.57.0-py2.py3-none-any.whl"
hash = "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549"
[[package.files]]
file = "websocket_client-0.57.0.tar.gz"
hash = "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"
[package.dependencies]
six = "*"
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "^3.8"
content-hash = "2f47de5e052dabeff3c1362d3a37b5cfcaf9bbe9d9ce1681207e72ca1f4dab55"
[metadata.files]
certifi = [
{file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"},
{file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"},
]
chardet = [
{file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
{file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
]
docker = [
{file = "docker-4.3.0-py2.py3-none-any.whl", hash = "sha256:ba118607b0ba6bfc1b236ec32019a355c47b5d012d01d976467d4692ef443929"},
{file = "docker-4.3.0.tar.gz", hash = "sha256:431a268f2caf85aa30613f9642da274c62f6ee8bae7d70d968e01529f7d6af93"},
]
idna = [
{file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
{file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
]
pywin32 = [
{file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"},
{file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"},
{file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"},
{file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"},
{file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"},
{file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"},
{file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"},
{file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"},
{file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"},
{file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"},
{file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"},
{file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"},
]
requests = [
{file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
{file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
]
six = [
{file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
{file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
]
urllib3 = [
{file = "urllib3-1.25.10-py2.py3-none-any.whl", hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"},
{file = "urllib3-1.25.10.tar.gz", hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"},
]
websocket-client = [
{file = "websocket_client-0.57.0-py2.py3-none-any.whl", hash = "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549"},
{file = "websocket_client-0.57.0.tar.gz", hash = "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"},
]
......@@ -6,6 +6,14 @@ category = "main"
optional = false
python-versions = "*"
[[package.files]]
file = "certifi-2020.12.5-py2.py3-none-any.whl"
hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"
[[package.files]]
file = "certifi-2020.12.5.tar.gz"
hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"
[[package]]
name = "chardet"
version = "4.0.0"
......@@ -14,6 +22,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package.files]]
file = "chardet-4.0.0-py2.py3-none-any.whl"
hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"
[[package.files]]
file = "chardet-4.0.0.tar.gz"
hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"
[[package]]
name = "docker"
version = "4.3.1"
......@@ -22,6 +38,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package.files]]
file = "docker-4.3.1-py2.py3-none-any.whl"
hash = "sha256:13966471e8bc23b36bfb3a6fb4ab75043a5ef1dac86516274777576bed3b9828"
[[package.files]]
file = "docker-4.3.1.tar.gz"
hash = "sha256:bad94b8dd001a8a4af19ce4becc17f41b09f228173ffe6a4e0355389eef142f2"
[package.dependencies]
pywin32 = {version = "227", markers = "sys_platform == \"win32\""}
requests = ">=2.14.2,<2.18.0 || >2.18.0"
......@@ -40,6 +64,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package.files]]
file = "idna-2.10-py2.py3-none-any.whl"
hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"
[[package.files]]
file = "idna-2.10.tar.gz"
hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"
[[package]]
name = "pywin32"
version = "227"
......@@ -48,6 +80,54 @@ category = "main"
optional = false
python-versions = "*"
[[package.files]]
file = "pywin32-227-cp27-cp27m-win32.whl"
hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"
[[package.files]]
file = "pywin32-227-cp27-cp27m-win_amd64.whl"
hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"
[[package.files]]
file = "pywin32-227-cp35-cp35m-win32.whl"
hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"
[[package.files]]
file = "pywin32-227-cp35-cp35m-win_amd64.whl"
hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"
[[package.files]]
file = "pywin32-227-cp36-cp36m-win32.whl"
hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"
[[package.files]]
file = "pywin32-227-cp36-cp36m-win_amd64.whl"
hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"
[[package.files]]
file = "pywin32-227-cp37-cp37m-win32.whl"
hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"
[[package.files]]
file = "pywin32-227-cp37-cp37m-win_amd64.whl"
hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"
[[package.files]]
file = "pywin32-227-cp38-cp38-win32.whl"
hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"
[[package.files]]
file = "pywin32-227-cp38-cp38-win_amd64.whl"
hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"
[[package.files]]
file = "pywin32-227-cp39-cp39-win32.whl"
hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"
[[package.files]]
file = "pywin32-227-cp39-cp39-win_amd64.whl"
hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"
[[package]]
name = "requests"
version = "2.25.1"
......@@ -56,6 +136,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package.files]]
file = "requests-2.25.1-py2.py3-none-any.whl"
hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"
[[package.files]]
file = "requests-2.25.1.tar.gz"
hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"
[package.dependencies]
certifi = ">=2017.4.17"
chardet = ">=3.0.2,<5"
......@@ -74,6 +162,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
[[package.files]]
file = "six-1.15.0-py2.py3-none-any.whl"
hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
[[package.files]]
file = "six-1.15.0.tar.gz"
hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"
[[package]]
name = "urllib3"
version = "1.26.3"
......@@ -82,6 +178,14 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
[[package.files]]
file = "urllib3-1.26.3-py2.py3-none-any.whl"
hash = "sha256:1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80"
[[package.files]]
file = "urllib3-1.26.3.tar.gz"
hash = "sha256:de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73"
[package.extras]
brotli = ["brotlipy (>=0.6.0)"]
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
......@@ -95,58 +199,18 @@ category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package.files]]
file = "websocket_client-0.58.0-py2.py3-none-any.whl"
hash = "sha256:44b5df8f08c74c3d82d28100fdc81f4536809ce98a17f0757557813275fbb663"
[[package.files]]
file = "websocket_client-0.58.0.tar.gz"
hash = "sha256:63509b41d158ae5b7f67eb4ad20fecbb4eee99434e73e140354dc3ff8e09716f"
[package.dependencies]
six = "*"
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "^3.8"
content-hash = "0cd068218f235c162f7b74bc8faf4ce3387b82daee1c1bb7a97af034f27ee116"
[metadata.files]
certifi = [
{file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"},
{file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"},
]
chardet = [
{file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
{file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
]
docker = [
{file = "docker-4.3.1-py2.py3-none-any.whl", hash = "sha256:13966471e8bc23b36bfb3a6fb4ab75043a5ef1dac86516274777576bed3b9828"},
{file = "docker-4.3.1.tar.gz", hash = "sha256:bad94b8dd001a8a4af19ce4becc17f41b09f228173ffe6a4e0355389eef142f2"},
]
idna = [
{file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
{file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
]
pywin32 = [
{file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"},
{file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"},
{file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"},
{file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"},
{file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"},
{file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"},
{file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"},
{file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"},
{file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"},
{file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"},
{file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"},
{file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"},
]
requests = [
{file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"},
{file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"},
]
six = [
{file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
{file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
]
urllib3 = [
{file = "urllib3-1.26.3-py2.py3-none-any.whl", hash = "sha256:1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80"},
{file = "urllib3-1.26.3.tar.gz", hash = "sha256:de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73"},
]
websocket-client = [
{file = "websocket_client-0.58.0-py2.py3-none-any.whl", hash = "sha256:44b5df8f08c74c3d82d28100fdc81f4536809ce98a17f0757557813275fbb663"},
{file = "websocket_client-0.58.0.tar.gz", hash = "sha256:63509b41d158ae5b7f67eb4ad20fecbb4eee99434e73e140354dc3ff8e09716f"},
]
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "B"
......@@ -13,6 +14,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "C"
......@@ -21,6 +23,7 @@ description = ""
category = "main"
optional = true
python-versions = "*"
files = []
[package.dependencies]
D = "^1.0"
......@@ -32,17 +35,12 @@ description = ""
category = "main"
optional = true
python-versions = "*"
files = []
[extras]
foo = ["C"]
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
A = []
B = []
C = []
D = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "B"
......@@ -13,6 +14,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "C"
......@@ -21,6 +23,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "D"
......@@ -29,17 +32,12 @@ description = ""
category = "main"
optional = true
python-versions = "*"
files = []
[extras]
foo = ["D"]
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
A = []
B = []
C = []
D = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "B"
......@@ -13,6 +14,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "C"
......@@ -21,13 +23,9 @@ description = ""
category = "dev"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"A" = []
"B" = []
"C" = []
......@@ -2,7 +2,5 @@ package = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
......@@ -5,11 +5,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"A" = []
......@@ -5,11 +5,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"A" = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
"B" = {version = "^1.0", optional = true}
......@@ -20,6 +21,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "C"
......@@ -28,6 +30,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "D"
......@@ -36,14 +39,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"A" = []
"B" = []
"C" = []
"D" = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "B"
......@@ -13,15 +14,12 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
A = "^1.0"
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"A" = []
"B" = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = ">=3.5"
files = []
[package.requirements]
python = ">=3.5,<4.0"
......@@ -16,14 +17,12 @@ description = ""
category = "main"
optional = false
python-versions = ">=3.6"
files = []
[package.requirements]
python = ">=3.6,<4.0"
[metadata]
python-versions = "~2.7 || ^3.4"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
A = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "B"
......@@ -13,6 +14,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
C = {version = "^1.0", optional = true}
......@@ -27,13 +29,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"A" = []
"B" = []
"C" = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
B = {version = "^1.0", optional = true, extras = ["C"]}
......@@ -19,6 +20,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
C = {version = "^1.0", optional = true}
......@@ -33,13 +35,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"A" = []
"B" = []
"C" = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "B"
......@@ -13,12 +14,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"A" = []
"B" = []
......@@ -6,6 +6,10 @@ optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "0.1.0"
[[package.files]]
file = "demo-0.1.0-py2.py3-none-any.whl"
hash = "sha256:70e704135718fffbcbf61ed1fc45933cfd86951a744b681000eaaa75da31f17a"
[package.dependencies]
pendulum = ">=1.4.4"
......@@ -24,6 +28,7 @@ develop = false
name = "inner-directory-project"
optional = false
python-versions = "*"
files = []
version = "1.2.4"
[package.source]
......@@ -36,6 +41,7 @@ description = ""
name = "pendulum"
optional = false
python-versions = "*"
files = []
version = "1.4.4"
[[package]]
......@@ -45,6 +51,7 @@ develop = false
name = "project-with-extras"
optional = false
python-versions = "*"
files = []
version = "1.2.3"
[package.extras]
......@@ -62,6 +69,7 @@ develop = false
name = "project-with-transitive-directory-dependencies"
optional = false
python-versions = "*"
files = []
version = "1.2.3"
[package.dependencies]
......@@ -79,6 +87,7 @@ develop = false
name = "project-with-transitive-file-dependencies"
optional = false
python-versions = "*"
files = []
version = "1.2.3"
[package.dependencies]
......@@ -91,15 +100,5 @@ url = "project_with_transitive_file_dependencies"
[metadata]
content-hash = "123456789"
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
[metadata.files]
demo = [
{file = "demo-0.1.0-py2.py3-none-any.whl", hash = "sha256:70e704135718fffbcbf61ed1fc45933cfd86951a744b681000eaaa75da31f17a"},
]
inner-directory-project = []
pendulum = []
project-with-extras = []
project-with-transitive-directory-dependencies = []
project-with-transitive-file-dependencies = []
......@@ -4,6 +4,7 @@ category = "main"
name = "pendulum"
optional = false
python-versions = "*"
files = []
version = "1.4.4"
[[package]]
......@@ -13,6 +14,7 @@ develop = false
name = "project-with-extras"
optional = false
python-versions = "*"
files = []
version = "1.2.3"
[package.dependencies]
......@@ -28,9 +30,5 @@ url = "tests/fixtures/project_with_extras"
[metadata]
content-hash = "123456789"
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
[metadata.files]
project-with-extras = []
pendulum = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "pendulum"
......@@ -13,6 +14,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "project-with-setup"
......@@ -22,6 +24,7 @@ description = "Demo project."
category = "main"
optional = false
python-versions = "*"
files = []
[package.source]
type = "directory"
......@@ -33,10 +36,5 @@ pendulum = ">=1.4.4"
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
cachy = []
project-with-setup = []
pendulum = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
B = "^2.0"
......@@ -16,6 +17,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
C = "1.5"
......@@ -27,13 +29,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
A = []
B = []
C = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
B = [
......@@ -19,6 +20,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
C = "1.2"
......@@ -30,6 +32,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
C = "1.5"
......@@ -41,6 +44,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "C"
......@@ -49,13 +53,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
A = []
B = []
C = []
......@@ -6,6 +6,10 @@ optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "0.1.0"
[[package.files]]
file = "demo-0.1.0-py2.py3-none-any.whl"
hash = "sha256:70e704135718fffbcbf61ed1fc45933cfd86951a744b681000eaaa75da31f17a"
[package.dependencies]
pendulum = ">=1.4.4"
......@@ -24,6 +28,7 @@ develop = false
name = "inner-directory-project"
optional = false
python-versions = "*"
files = []
version = "1.2.4"
[package.source]
......@@ -36,6 +41,7 @@ description = ""
name = "pendulum"
optional = false
python-versions = "*"
files = []
version = "1.4.4"
[[package]]
......@@ -45,6 +51,7 @@ develop = false
name = "project-with-transitive-file-dependencies"
optional = false
python-versions = "*"
files = []
version = "1.2.3"
[package.dependencies]
......@@ -57,13 +64,5 @@ url = "project_with_transitive_file_dependencies"
[metadata]
content-hash = "123456789"
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
[metadata.files]
demo = [
{file = "demo-0.1.0-py2.py3-none-any.whl", hash = "sha256:70e704135718fffbcbf61ed1fc45933cfd86951a744b681000eaaa75da31f17a"},
]
inner-directory-project = []
pendulum = []
project-with-transitive-file-dependencies = []
......@@ -6,6 +6,10 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package.files]]
file = "demo-0.1.0-py2.py3-none-any.whl"
hash = "sha256:70e704135718fffbcbf61ed1fc45933cfd86951a744b681000eaaa75da31f17a"
[package.source]
type = "file"
url = "tests/fixtures/distributions/demo-0.1.0-py2.py3-none-any.whl"
......@@ -24,14 +28,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
demo = [
{file = "demo-0.1.0-py2.py3-none-any.whl", hash = "sha256:70e704135718fffbcbf61ed1fc45933cfd86951a744b681000eaaa75da31f17a"},
]
pendulum = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
B = ">=1.0.1"
......@@ -20,6 +21,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "C"
......@@ -28,6 +30,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "C"
......@@ -36,13 +39,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "~2.7 || ^3.4"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
A = []
B = []
C = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = true
python-versions = "*"
files = []
[[package]]
name = "C"
......@@ -13,6 +14,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
D = "^1.2"
......@@ -24,16 +26,12 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[extras]
foo = ["A"]
[metadata]
python-versions = "~2.7 || ^3.4"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
A = []
C = []
D = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = true
python-versions = "*"
files = []
[[package]]
name = "B"
......@@ -13,6 +14,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "C"
......@@ -21,6 +23,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
D = "^1.2"
......@@ -32,17 +35,12 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[extras]
foo = ["A"]
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
A = []
B = []
C = []
D = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "B"
......@@ -13,12 +14,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"A" = []
"B" = []
......@@ -6,6 +6,14 @@ 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"
[package.extras]
dev = ["coverage", "hypothesis", "pympler", "pytest", "six", "sphinx", "zope.interface", "zope.interface"]
docs = ["sphinx", "zope.interface"]
......@@ -19,6 +27,14 @@ 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"
......@@ -27,6 +43,14 @@ 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"
[[package]]
name = "more-itertools"
version = "4.1.0"
......@@ -35,6 +59,18 @@ 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"
[package.dependencies]
six = ">=1.0.0,<2.0.0"
......@@ -46,6 +82,10 @@ 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"
[[package]]
name = "py"
version = "1.5.3"
......@@ -54,6 +94,14 @@ 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"
[[package]]
name = "pytest"
version = "3.5.0"
......@@ -62,6 +110,14 @@ 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"
[package.dependencies]
py = ">=1.5.0"
six = ">=1.10.0"
......@@ -80,6 +136,14 @@ 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"
[package.extras]
certs = ["certifi (==2016.9.26)"]
ssl = ["wincertstore (==0.2)"]
......@@ -92,45 +156,15 @@ 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"
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
attrs = [
{file = "attrs-17.4.0-py2.py3-none-any.whl", hash = "sha256:a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450"},
{file = "attrs-17.4.0.tar.gz", hash = "sha256:1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9"},
]
colorama = [
{file = "colorama-0.3.9-py2.py3-none-any.whl", hash = "sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda"},
{file = "colorama-0.3.9.tar.gz", hash = "sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1"},
]
funcsigs = [
{file = "funcsigs-1.0.2-py2.py3-none-any.whl", hash = "sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca"},
{file = "funcsigs-1.0.2.tar.gz", hash = "sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50"},
]
more-itertools = [
{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"},
]
pluggy = [
{file = "pluggy-0.6.0.tar.gz", hash = "sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff"},
]
py = [
{file = "py-1.5.3-py2.py3-none-any.whl", hash = "sha256:983f77f3331356039fdd792e9220b7b8ee1aa6bd2b25f567a963ff1de5a64f6a"},
{file = "py-1.5.3.tar.gz", hash = "sha256:29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881"},
]
pytest = [
{file = "pytest-3.5.0-py2.py3-none-any.whl", hash = "sha256:6266f87ab64692112e5477eba395cfedda53b1933ccd29478e671e73b420c19c"},
{file = "pytest-3.5.0.tar.gz", hash = "sha256:fae491d1874f199537fd5872b5e1f0e74a009b979df9d53d1553fd03da1703e1"},
]
setuptools = [
{file = "setuptools-39.2.0-py2.py3-none-any.whl", hash = "sha256:8fca9275c89964f13da985c3656cb00ba029d7f3916b37990927ffdf264e7926"},
{file = "setuptools-39.2.0.zip", hash = "sha256:f7cddbb5f5c640311eb00eab6e849f7701fa70bf6a183fc8a2c33dd1d1672fb2"},
]
six = [
{file = "six-1.11.0-py2.py3-none-any.whl", hash = "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"},
{file = "six-1.11.0.tar.gz", hash = "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9"},
]
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "B"
......@@ -13,6 +14,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "C"
......@@ -21,13 +23,9 @@ description = ""
category = "main"
optional = false
python-versions = "~2.7 || ^3.3"
files = []
[metadata]
python-versions = "~2.7 || ^3.4"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
A = []
B = []
C = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = []
[package.source]
type = "url"
......@@ -24,6 +25,7 @@ description = ""
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = []
[package.source]
type = "url"
......@@ -43,12 +45,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
demo = []
pendulum = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
D = "^1.0"
......@@ -16,6 +17,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
C = "~1.2"
......@@ -27,6 +29,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "D"
......@@ -35,14 +38,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
A = []
B = []
C = []
D = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = []
[package.source]
type = "url"
......@@ -24,12 +25,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
demo = []
pendulum = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
develop = false
[package.dependencies]
......@@ -27,6 +28,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "cleo"
......@@ -35,13 +37,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
demo = []
pendulum = []
cleo = []
......@@ -5,6 +5,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
develop = false
[package.dependencies]
......@@ -23,12 +24,9 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
demo = []
pendulum = []
......@@ -6,16 +6,15 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package.files]]
file = "demo-0.1.0-py2.py3-none-any.whl"
hash = "sha256:c25eb81459126848a1788eb3520d1a32014eb51ce3d3bae88c56bfdde4ce02db"
[package.source]
type = "file"
url = "tests/fixtures/wheel_with_no_requires_dist/demo-0.1.0-py2.py3-none-any.whl"
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
demo = [
{file = "demo-0.1.0-py2.py3-none-any.whl", hash = "sha256:c25eb81459126848a1788eb3520d1a32014eb51ce3d3bae88c56bfdde4ce02db"},
]
......@@ -275,7 +275,7 @@ def test_run_update_after_removing_dependencies(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": [], "C": []},
"files": {"A": [], "B": [], "C": []},
},
}
)
......@@ -351,7 +351,7 @@ def _configure_run_install_dev(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": [], "C": []},
"files": {"A": [], "B": [], "C": []},
},
}
)
......@@ -480,7 +480,7 @@ def test_run_install_does_not_remove_locked_packages_if_installed_but_not_requir
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {package_a.name: [], package_b.name: [], package_c.name: []},
"files": {package_a.name: [], package_b.name: [], package_c.name: []},
},
}
)
......@@ -550,7 +550,7 @@ def test_run_install_removes_locked_packages_if_installed_and_synchronization_is
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {package_a.name: [], package_b.name: [], package_c.name: []},
"files": {package_a.name: [], package_b.name: [], package_c.name: []},
},
}
)
......@@ -621,7 +621,7 @@ def test_run_install_removes_no_longer_locked_packages_if_installed(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {package_a.name: [], package_b.name: [], package_c.name: []},
"files": {package_a.name: [], package_b.name: [], package_c.name: []},
},
}
)
......@@ -699,7 +699,7 @@ def test_run_install_with_synchronization(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {pkg.name: [] for pkg in locked_packages},
"files": {pkg.name: [] for pkg in locked_packages},
},
}
)
......@@ -741,7 +741,7 @@ def test_run_whitelist_add(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": []},
"files": {"A": []},
},
}
)
......@@ -798,7 +798,7 @@ def test_run_whitelist_remove(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": []},
"files": {"A": [], "B": []},
},
}
)
......@@ -1370,7 +1370,7 @@ def test_run_with_prereleases(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": []},
"files": {"A": []},
},
}
)
......@@ -1414,7 +1414,7 @@ def test_run_changes_category_if_needed(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": []},
"files": {"A": []},
},
}
)
......@@ -1461,7 +1461,7 @@ def test_run_update_all_with_lock(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": []},
"files": {"A": []},
},
}
)
......@@ -1520,7 +1520,7 @@ def test_run_update_with_locked_extras(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": [], "C": []},
"files": {"A": [], "B": [], "C": []},
},
}
)
......@@ -1662,7 +1662,7 @@ def test_run_install_duplicate_dependencies_different_constraints_with_lock(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": [], "C": []},
"files": {"A": [], "B": [], "C": []},
},
}
)
......@@ -1737,7 +1737,7 @@ def test_run_update_uninstalls_after_removal_transient_dependency(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": []},
"files": {"A": [], "B": []},
},
}
)
......@@ -1835,7 +1835,7 @@ def test_run_install_duplicate_dependencies_different_constraints_with_lock_upda
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": [], "C": []},
"files": {"A": [], "B": [], "C": []},
},
}
)
......@@ -2126,7 +2126,7 @@ def test_update_multiple_times_with_split_dependencies_is_idempotent(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": []},
"files": {"A": [], "B": []},
},
}
)
......@@ -2451,7 +2451,7 @@ def test_installer_should_use_the_locked_version_of_git_dependencies(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"demo": [], "pendulum": []},
"files": {"demo": [], "pendulum": []},
},
}
)
......
......@@ -215,7 +215,7 @@ def test_run_update_after_removing_dependencies(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": [], "C": []},
"files": {"A": [], "B": [], "C": []},
},
}
)
......@@ -292,7 +292,7 @@ def test_run_install_no_group(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": [], "C": []},
"files": {"A": [], "B": [], "C": []},
},
}
)
......@@ -389,7 +389,7 @@ def test_run_install_with_synchronization(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {pkg.name: [] for pkg in locked_packages},
"files": {pkg.name: [] for pkg in locked_packages},
},
}
)
......@@ -434,7 +434,7 @@ def test_run_whitelist_add(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": []},
"files": {"A": []},
},
}
)
......@@ -491,7 +491,7 @@ def test_run_whitelist_remove(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": []},
"files": {"A": [], "B": []},
},
}
)
......@@ -1013,7 +1013,7 @@ def test_run_with_prereleases(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": []},
"files": {"A": []},
},
}
)
......@@ -1057,7 +1057,7 @@ def test_run_changes_category_if_needed(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": []},
"files": {"A": []},
},
}
)
......@@ -1104,7 +1104,7 @@ def test_run_update_all_with_lock(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": []},
"files": {"A": []},
},
}
)
......@@ -1163,7 +1163,7 @@ def test_run_update_with_locked_extras(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": [], "C": []},
"files": {"A": [], "B": [], "C": []},
},
}
)
......@@ -1307,7 +1307,7 @@ def test_run_install_duplicate_dependencies_different_constraints_with_lock(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": [], "C": []},
"files": {"A": [], "B": [], "C": []},
},
}
)
......@@ -1385,7 +1385,7 @@ def test_run_update_uninstalls_after_removal_transient_dependency(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": []},
"files": {"A": [], "B": []},
},
}
)
......@@ -1486,7 +1486,7 @@ def test_run_install_duplicate_dependencies_different_constraints_with_lock_upda
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": [], "C": []},
"files": {"A": [], "B": [], "C": []},
},
}
)
......@@ -1742,7 +1742,7 @@ def test_update_multiple_times_with_split_dependencies_is_idempotent(
"python-versions": "*",
"platform": "*",
"content-hash": "123456789",
"hashes": {"A": [], "B": []},
"files": {"A": [], "B": []},
},
}
)
......
......@@ -105,6 +105,14 @@ category = "main"
optional = false
python-versions = "*"
[[package.files]]
file = "bar"
hash = "123"
[[package.files]]
file = "foo"
hash = "456"
[package.dependencies]
B = "^1.0"
......@@ -116,6 +124,10 @@ category = "main"
optional = false
python-versions = "*"
[[package.files]]
file = "baz"
hash = "345"
[[package]]
name = "B"
version = "1.2"
......@@ -123,6 +135,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[[package]]
name = "git-package"
......@@ -131,6 +144,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
develop = false
[package.source]
......@@ -146,6 +160,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
develop = false
[package.source]
......@@ -162,6 +177,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.source]
type = "url"
......@@ -174,26 +190,16 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.source]
type = "url"
url = "https://example.org/url-package-1.0-cp39-win_amd64.whl"
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
A = [
{{file = "bar", hash = "123"}},
{{file = "foo", hash = "456"}},
{{file = "baz", hash = "345"}},
]
B = []
git-package = []
git-package-subdir = []
url-package = []
""" # noqa: E800
assert content == expected
......@@ -210,6 +216,7 @@ description = "httplib2 caching for requests"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = []
[package.dependencies]
msgpack = "*"
......@@ -224,12 +231,9 @@ filecache = ["lockfile (>=0.9)"]
redis = ["redis (>=2.10.5)"]
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "~2.7 || ^3.4"
content-hash = "c3d07fca33fba542ef2b2a4d75bf5b48d892d21a830e2ad9c952ba5123a52f77"
[metadata.files]
cachecontrol = []
""" # noqa: E800
locker.lock.write(tomlkit.parse(content))
......@@ -257,6 +261,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
b = {{version = "^1.0", optional = true, extras = "c"}}
......@@ -271,6 +276,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
c = {{version = "^1.0", optional = true}}
......@@ -285,16 +291,12 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"a" = []
"b" = []
"c" = []
""" # noqa: E800
locker.lock.write(tomlkit.parse(content))
......@@ -339,6 +341,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
b = {{version = "^1.0", optional = true}}
......@@ -353,15 +356,12 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
python-versions = "*"
lock-version = "1.1"
lock-version = "2.0"
content-hash = "123456789"
[metadata.files]
"a" = []
"b" = []
""" # noqa: E800
locker.lock.write(tomlkit.parse(content))
......@@ -390,6 +390,7 @@ category = "main"
optional = false
python-versions = "*"
develop = false
files = []
[package.source]
type = "git"
......@@ -399,12 +400,9 @@ resolved_reference = "123456"
subdirectory = "subdir"
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
git-package-subdir = []
"""
locker.lock.write(tomlkit.parse(content))
......@@ -551,14 +549,12 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
A = []
""" # noqa: E800
assert content == expected
......@@ -585,6 +581,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
B = [
......@@ -596,12 +593,9 @@ B = [
foo = ["B (>=1.0.0)"]
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
A = []
""" # noqa: E800
with locker.lock.open(encoding="utf-8") as f:
......@@ -621,6 +615,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.extras]
foo = ["bar"]
......@@ -629,12 +624,9 @@ foo = ["bar"]
foo = ["bar"]
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
A = []
""" # noqa: E800
with locker.lock.open("w", encoding="utf-8") as f:
f.write(content)
......@@ -672,6 +664,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.source]
type = "legacy"
......@@ -679,12 +672,9 @@ url = "https://foo.bar"
reference = "legacy"
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
A = []
""" # noqa: E800
assert content == expected
......@@ -699,8 +689,6 @@ def test_locker_should_emit_warnings_if_lock_version_is_newer_but_allowed(
lock-version = "{version}"
python-versions = "~2.7 || ^3.4"
content-hash = "c3d07fca33fba542ef2b2a4d75bf5b48d892d21a830e2ad9c952ba5123a52f77"
[metadata.files]
"""
caplog.set_level(logging.WARNING, logger="poetry.packages.locker")
......@@ -728,11 +716,9 @@ def test_locker_should_raise_an_error_if_lock_version_is_newer_and_not_allowed(
# {GENERATED_COMMENT}
[metadata]
lock-version = "2.0"
lock-version = "3.0"
python-versions = "~2.7 || ^3.4"
content-hash = "c3d07fca33fba542ef2b2a4d75bf5b48d892d21a830e2ad9c952ba5123a52f77"
[metadata.files]
""" # noqa: E800
caplog.set_level(logging.WARNING, logger="poetry.packages.locker")
......@@ -763,17 +749,15 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
B = {{version = "^1.0.0", extras = ["a", "b", "c"], optional = true}}
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
A = []
""" # noqa: E800
with locker.lock.open(encoding="utf-8") as f:
......@@ -785,10 +769,7 @@ A = []
def test_locker_should_neither_emit_warnings_nor_raise_error_for_lower_compatible_versions( # noqa: E501
locker: Locker, caplog: LogCaptureFixture
):
current_version = Version.parse(Locker._VERSION)
older_version = ".".join(
[str(current_version.major), str(current_version.minor - 1)]
)
older_version = "1.1"
content = f"""\
[metadata]
lock-version = "{older_version}"
......@@ -856,6 +837,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.dependencies]
B = {{path = "project_with_extras", develop = true}}
......@@ -865,12 +847,9 @@ E = {{url = "https://python-poetry.org/poetry-1.2.0.tar.gz"}}
F = {{git = "https://github.com/python-poetry/poetry.git", branch = "foo"}}
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
A = []
""" # noqa: E800
assert content == expected
......@@ -902,6 +881,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
develop = false
[package.source]
......@@ -912,12 +892,9 @@ resolved_reference = "123456"
subdirectory = "subdir"
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
git-package-subdir = []
""" # noqa: E800
assert content == expected
......@@ -954,18 +931,16 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.extras]
B = ["first (==1.0.0)", "second (==1.0.0)", "third (==1.0.0)"]
C = ["first (==1.0.0)", "second (==1.0.0)", "third (==1.0.0)"]
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
A = []
""" # noqa: E800
assert content == expected
......@@ -985,6 +960,7 @@ category = "main"
optional = false
python-versions = "^2.7.9"
develop = true
file = []
[package.dependencies]
lib-b = {{path = "../libB", develop = true}}
......@@ -994,13 +970,9 @@ type = "directory"
url = "lib/libA"
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
lib-a = []
lib-b = []
""" # noqa: E800
locker.lock.write(tomlkit.parse(content))
......@@ -1126,6 +1098,7 @@ description = ""
category = "main"
optional = false
python-versions = "*"
files = []
[package.source]
type = "file"
......@@ -1141,12 +1114,9 @@ reference = "develop"
resolved_reference = "123456"
[metadata]
lock-version = "1.1"
lock-version = "2.0"
python-versions = "*"
content-hash = "115cf985d932e9bf5f540555bbdd75decbb62cac81e399375fc19f6277f8c1d8"
[metadata.files]
local-package = []
""" # noqa: E800
assert content == expected
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