Commit c2917480 by Sébastien Eustace

Fix transitive extra dependencies being removed when updating otehr dependency

parent 62fc038d
# Change Log
## [Unreleased]
### Fixed
- Fixed transitive extra dependencies being removed when updating a specific dependency.
## [0.12.4] - 2018-10-21
### Fixed
......
......@@ -348,7 +348,7 @@ class VersionSolver:
else:
dependency = min(*unsatisfied, key=_get_min)
locked = self._get_locked(dependency.name)
locked = self._get_locked(dependency)
if locked is None or not dependency.constraint.allows(locked.version):
try:
packages = self._provider.search_for(dependency)
......@@ -429,17 +429,16 @@ class VersionSolver:
self._incompatibilities[term.dependency.name].append(incompatibility)
def _get_locked(self, package_name): # type: (str) -> Union[Package, None]
if package_name in self._use_latest:
def _get_locked(self, dependency): # type: (Dependency) -> Union[Package, None]
if dependency.name in self._use_latest:
return
locked = self._locked.get(package_name)
locked = self._locked.get(dependency.name)
if not locked:
return
for dep in self._root.all_requires:
if dep.name == locked.name:
locked.requires_extras = dep.extras
if dependency.extras:
locked.requires_extras = dependency.extras
return locked
......
......@@ -85,6 +85,7 @@ class Locker:
package.optional = info["optional"]
package.hashes = lock_data["metadata"]["hashes"][info["name"]]
package.python_versions = info["python-versions"]
package.extras = info.get("extras", {})
if "marker" in info:
package.marker = parse_marker(info["marker"])
......@@ -207,6 +208,12 @@ class Locker:
constraint = {"version": str(dependency.pretty_constraint)}
if dependency.extras:
constraint["extras"] = dependency.extras
if dependency.is_optional():
constraint["optional"] = True
if not dependency.python_constraint.is_any():
constraint["python"] = str(dependency.python_constraint)
......@@ -227,6 +234,16 @@ class Locker:
if not package.marker.is_any():
data["marker"] = str(package.marker)
if package.extras:
extras = {}
for name, deps in package.extras.items():
extras[name] = [
str(dep) if not dep.constraint.is_any() else dep.name
for dep in deps
]
data["extras"] = extras
if dependencies:
for k, constraints in dependencies.items():
if len(constraints) == 1:
......
......@@ -73,7 +73,7 @@ class Pool(BaseRepository):
return package
return None
raise PackageNotFound("Package [{}] not found.".format(name))
def find_packages(
self, name, constraint=None, extras=None, allow_prereleases=False
......
......@@ -66,6 +66,9 @@ class Repository(BaseRepository):
if req.name == dep.name:
dep.activate()
if extras:
package.requires_extras = extras
packages.append(package)
return packages
......
......@@ -7,9 +7,12 @@ optional = false
python-versions = "*"
[package.dependencies]
"B" = "^1.0"
"B" = {version = "^1.0", optional = true}
"C" = {"version" = "^1.0", "python" = ">=2.7,<2.8"}
[package.extras]
foo = ["b"]
[[package]]
name = "B"
version = "1.0"
......
......@@ -15,7 +15,10 @@ optional = false
python-versions = "*"
[package.dependencies]
C = "^1.0"
C = {version = "^1.0", optional = true}
[package.extras]
foo = ["C (^1.0)"]
[[package]]
name = "C"
......
......@@ -22,6 +22,10 @@ optional = false
python-versions = "*"
version = "1.2.3"
[package.extras]
extras_a = ["pendulum (>=1.4.4)"]
extras_b = ["cachy (>=0.2.0)"]
[package.source]
reference = ""
type = "directory"
......
......@@ -23,7 +23,11 @@ python-versions = "*"
version = "1.2.3"
[package.dependencies]
pendulum = ">=1.4.4"
pendulum = {version = ">=1.4.4", optional = true}
[package.extras]
extras_a = ["pendulum (>=1.4.4)"]
extras_b = ["cachy (>=0.2.0)"]
[package.source]
reference = ""
......
......@@ -20,7 +20,7 @@ reference = ""
url = "tests/fixtures/project_with_setup"
[package.dependencies]
cachy = ">=0.2.0"
cachy = {version = ">=0.2.0", extras = ["msgpack"]}
pendulum = ">=1.4.4"
[[package]]
......
......@@ -6,6 +6,11 @@ category = "dev"
optional = false
python-versions = "*"
[package.extras]
dev = ["coverage", "hypothesis", "pympler", "pytest", "six", "zope.interface", "sphinx", "zope.interface"]
docs = ["sphinx", "zope.interface"]
tests = ["coverage", "hypothesis", "pympler", "pytest", "six", "zope.interface"]
[[package]]
name = "colorama"
version = "0.3.9"
......
......@@ -1261,3 +1261,85 @@ def test_installer_test_solver_finds_compatible_package_for_dependency_python_no
assert len(installs) == 1
else:
assert len(installs) == 0
def test_installer_required_extras_should_not_be_removed_when_updating_single_dependency(
installer, locker, repo, package, installed, env, pool
):
package.add_dependency("A", {"version": "^1.0"})
package_a = get_package("A", "1.0.0")
package_a.add_dependency("B", {"version": "^1.0", "extras": ["foo"]})
package_b = get_package("B", "1.0.0")
package_b.add_dependency("C", {"version": "^1.0", "optional": True})
package_b.extras = {"foo": [get_dependency("C")]}
package_c = get_package("C", "1.0.0")
package_d = get_package("D", "1.0.0")
repo.add_package(package_a)
repo.add_package(package_b)
repo.add_package(package_c)
repo.add_package(package_d)
installer.update(True)
installer.run()
assert len(installer.installer.installs) == 3
assert len(installer.installer.updates) == 0
assert len(installer.installer.removals) == 0
package.add_dependency("D", "^1.0")
locker.locked(True)
locker.mock_lock_data(locker.written_data)
installed.add_package(package_a)
installed.add_package(package_b)
installed.add_package(package_c)
installer = Installer(NullIO(), env, package, locker, pool, installed=installed)
installer.update(True)
installer.whitelist(["D"])
installer.run()
assert len(installer.installer.installs) == 1
assert len(installer.installer.updates) == 0
assert len(installer.installer.removals) == 0
def test_installer_required_extras_should_not_be_removed_when_updating_single_dependency_pypi_repository(
locker, repo, package, installed, env
):
pool = Pool()
pool.add_repository(MockRepository())
installer = Installer(NullIO(), env, package, locker, pool, installed=installed)
package.add_dependency("poetry", {"version": "^0.12.0"})
installer.update(True)
installer.run()
assert len(installer.installer.installs) == 3
assert len(installer.installer.updates) == 0
assert len(installer.installer.removals) == 0
package.add_dependency("pytest", "^3.5")
locker.locked(True)
locker.mock_lock_data(locker.written_data)
for pkg in installer.installer.installs:
installed.add_package(pkg)
installer = Installer(NullIO(), env, package, locker, pool, installed=installed)
installer.update(True)
installer.whitelist(["pytest"])
installer.run()
assert len(installer.installer.installs) == 6 if not PY2 else 7
assert len(installer.installer.updates) == 0
assert len(installer.installer.removals) == 0
{
"info": {
"author": "Eric Larson",
"author_email": "eric@ionrock.org",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Topic :: Internet :: WWW/HTTP"
],
"description": "",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/ionrock/cachecontrol",
"keywords": "requests http caching web",
"license": "",
"maintainer": "",
"maintainer_email": "",
"name": "CacheControl",
"package_url": "https://pypi.org/project/CacheControl/",
"platform": "",
"project_url": "https://pypi.org/project/CacheControl/",
"project_urls": {
"Homepage": "https://github.com/ionrock/cachecontrol"
},
"release_url": "https://pypi.org/project/CacheControl/0.12.5/",
"requires_dist": null,
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"summary": "httplib2 caching for requests",
"version": "0.12.5"
},
"last_serial": 3939938,
"releases": {
"0.12.0": [
{
"comment_text": "",
"digests": {
"md5": "807c457b3b7df9d1f23b1aad7f9c9a22",
"sha256": "ce479e88e697dc088297a5781daa2e812aa0dc888dc439602a308af6f4ff09e8"
},
"downloads": -1,
"filename": "CacheControl-0.12.0.tar.gz",
"has_sig": false,
"md5_digest": "807c457b3b7df9d1f23b1aad7f9c9a22",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13815,
"upload_time": "2017-01-30T05:05:38",
"url": "https://files.pythonhosted.org/packages/41/ae/b9c375b001f13d73c0d8eba2264f6de955769f7cef9140d7fc192814255e/CacheControl-0.12.0.tar.gz"
}
],
"0.12.1": [
{
"comment_text": "",
"digests": {
"md5": "c6c5944d3a6f73bb752a4b4e2e1ffca5",
"sha256": "99c1506b98d53c222493e0ff65904c91aaedd7c8e235cb4f00287ddbbb597072"
},
"downloads": -1,
"filename": "CacheControl-0.12.1.tar.gz",
"has_sig": false,
"md5_digest": "c6c5944d3a6f73bb752a4b4e2e1ffca5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13939,
"upload_time": "2017-03-14T21:42:44",
"url": "https://files.pythonhosted.org/packages/3a/f7/075de886ad249f4ca08615ebd8bec9ce995ed6852790b6d9df38ae059e43/CacheControl-0.12.1.tar.gz"
}
],
"0.12.2": [
{
"comment_text": "",
"digests": {
"md5": "38667f538f36c641eb0b00d0db145823",
"sha256": "d7d919830d7edc5f4b355fa678a2ea49e9ccb67966abc373ec20f93f3f471265"
},
"downloads": -1,
"filename": "CacheControl-0.12.2.tar.gz",
"has_sig": false,
"md5_digest": "38667f538f36c641eb0b00d0db145823",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14327,
"upload_time": "2017-03-27T15:49:21",
"url": "https://files.pythonhosted.org/packages/d2/6c/221f699710a6a643bd9a4324cf22ffb9fb73a089d2bfbed5fe4694f3caaf/CacheControl-0.12.2.tar.gz"
}
],
"0.12.3": [
{
"comment_text": "",
"digests": {
"md5": "45bf98a2e3435438dcee89e519b34195",
"sha256": "a9fc50e216c7c101f4ec4312f012dea501c2859cb256c7a68186a172ab71f632"
},
"downloads": -1,
"filename": "CacheControl-0.12.3.tar.gz",
"has_sig": false,
"md5_digest": "45bf98a2e3435438dcee89e519b34195",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14345,
"upload_time": "2017-05-25T13:49:06",
"url": "https://files.pythonhosted.org/packages/a3/b3/6bb6c1535a283f01fe0c4e9644784756fee2ec080e2a6097f1c59325609e/CacheControl-0.12.3.tar.gz"
}
],
"0.12.4": [
{
"comment_text": "",
"digests": {
"md5": "464675fc575b3a0b841598cb916be516",
"sha256": "a7d21ba4e3633d95ac9fed5be205ee6d1da36bdc4b8914eb7a57ff50b7e5628c"
},
"downloads": -1,
"filename": "CacheControl-0.12.4.tar.gz",
"has_sig": false,
"md5_digest": "464675fc575b3a0b841598cb916be516",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14471,
"upload_time": "2018-01-27T06:24:40",
"url": "https://files.pythonhosted.org/packages/98/f5/76619a63f0e4a1d2f5a1792ebc233a395c648c63d3461dc0331479ef120a/CacheControl-0.12.4.tar.gz"
}
],
"0.12.5": [
{
"comment_text": "",
"digests": {
"md5": "f1baef403e8dd68c5a203e2eb23a0f2e",
"sha256": "cef77effdf51b43178f6a2d3b787e3734f98ade253fa3187f3bb7315aaa42ff7"
},
"downloads": -1,
"filename": "CacheControl-0.12.5.tar.gz",
"has_sig": false,
"md5_digest": "f1baef403e8dd68c5a203e2eb23a0f2e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 14383,
"upload_time": "2018-06-07T14:53:13",
"url": "https://files.pythonhosted.org/packages/5e/f0/2c193ed1f17c97ae539da7e1c2d48b80d8cccb1917163b26a91ca4355aa6/CacheControl-0.12.5.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "f1baef403e8dd68c5a203e2eb23a0f2e",
"sha256": "cef77effdf51b43178f6a2d3b787e3734f98ade253fa3187f3bb7315aaa42ff7"
},
"downloads": -1,
"filename": "CacheControl-0.12.5.tar.gz",
"has_sig": false,
"md5_digest": "f1baef403e8dd68c5a203e2eb23a0f2e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 14383,
"upload_time": "2018-06-07T14:53:13",
"url": "https://files.pythonhosted.org/packages/5e/f0/2c193ed1f17c97ae539da7e1c2d48b80d8cccb1917163b26a91ca4355aa6/CacheControl-0.12.5.tar.gz"
}
]
}
{
"info": {
"author": "Eric Larson",
"author_email": "eric@ionrock.org",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Topic :: Internet :: WWW/HTTP"
],
"description": "",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/ionrock/cachecontrol",
"keywords": "requests http caching web",
"license": "",
"maintainer": "",
"maintainer_email": "",
"name": "CacheControl",
"package_url": "https://pypi.org/project/CacheControl/",
"platform": "",
"project_url": "https://pypi.org/project/CacheControl/",
"project_urls": {
"Homepage": "https://github.com/ionrock/cachecontrol"
},
"release_url": "https://pypi.org/project/CacheControl/0.12.5/",
"requires_dist": [
"lockfile; extra == \"filecache\""
],
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"summary": "httplib2 caching for requests",
"version": "0.12.5"
},
"last_serial": 3939938,
"releases": {
"0.12.0": [
{
"comment_text": "",
"digests": {
"md5": "807c457b3b7df9d1f23b1aad7f9c9a22",
"sha256": "ce479e88e697dc088297a5781daa2e812aa0dc888dc439602a308af6f4ff09e8"
},
"downloads": -1,
"filename": "CacheControl-0.12.0.tar.gz",
"has_sig": false,
"md5_digest": "807c457b3b7df9d1f23b1aad7f9c9a22",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13815,
"upload_time": "2017-01-30T05:05:38",
"url": "https://files.pythonhosted.org/packages/41/ae/b9c375b001f13d73c0d8eba2264f6de955769f7cef9140d7fc192814255e/CacheControl-0.12.0.tar.gz"
}
],
"0.12.1": [
{
"comment_text": "",
"digests": {
"md5": "c6c5944d3a6f73bb752a4b4e2e1ffca5",
"sha256": "99c1506b98d53c222493e0ff65904c91aaedd7c8e235cb4f00287ddbbb597072"
},
"downloads": -1,
"filename": "CacheControl-0.12.1.tar.gz",
"has_sig": false,
"md5_digest": "c6c5944d3a6f73bb752a4b4e2e1ffca5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13939,
"upload_time": "2017-03-14T21:42:44",
"url": "https://files.pythonhosted.org/packages/3a/f7/075de886ad249f4ca08615ebd8bec9ce995ed6852790b6d9df38ae059e43/CacheControl-0.12.1.tar.gz"
}
],
"0.12.2": [
{
"comment_text": "",
"digests": {
"md5": "38667f538f36c641eb0b00d0db145823",
"sha256": "d7d919830d7edc5f4b355fa678a2ea49e9ccb67966abc373ec20f93f3f471265"
},
"downloads": -1,
"filename": "CacheControl-0.12.2.tar.gz",
"has_sig": false,
"md5_digest": "38667f538f36c641eb0b00d0db145823",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14327,
"upload_time": "2017-03-27T15:49:21",
"url": "https://files.pythonhosted.org/packages/d2/6c/221f699710a6a643bd9a4324cf22ffb9fb73a089d2bfbed5fe4694f3caaf/CacheControl-0.12.2.tar.gz"
}
],
"0.12.3": [
{
"comment_text": "",
"digests": {
"md5": "45bf98a2e3435438dcee89e519b34195",
"sha256": "a9fc50e216c7c101f4ec4312f012dea501c2859cb256c7a68186a172ab71f632"
},
"downloads": -1,
"filename": "CacheControl-0.12.3.tar.gz",
"has_sig": false,
"md5_digest": "45bf98a2e3435438dcee89e519b34195",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14345,
"upload_time": "2017-05-25T13:49:06",
"url": "https://files.pythonhosted.org/packages/a3/b3/6bb6c1535a283f01fe0c4e9644784756fee2ec080e2a6097f1c59325609e/CacheControl-0.12.3.tar.gz"
}
],
"0.12.4": [
{
"comment_text": "",
"digests": {
"md5": "464675fc575b3a0b841598cb916be516",
"sha256": "a7d21ba4e3633d95ac9fed5be205ee6d1da36bdc4b8914eb7a57ff50b7e5628c"
},
"downloads": -1,
"filename": "CacheControl-0.12.4.tar.gz",
"has_sig": false,
"md5_digest": "464675fc575b3a0b841598cb916be516",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14471,
"upload_time": "2018-01-27T06:24:40",
"url": "https://files.pythonhosted.org/packages/98/f5/76619a63f0e4a1d2f5a1792ebc233a395c648c63d3461dc0331479ef120a/CacheControl-0.12.4.tar.gz"
}
],
"0.12.5": [
{
"comment_text": "",
"digests": {
"md5": "f1baef403e8dd68c5a203e2eb23a0f2e",
"sha256": "cef77effdf51b43178f6a2d3b787e3734f98ade253fa3187f3bb7315aaa42ff7"
},
"downloads": -1,
"filename": "CacheControl-0.12.5.tar.gz",
"has_sig": false,
"md5_digest": "f1baef403e8dd68c5a203e2eb23a0f2e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 14383,
"upload_time": "2018-06-07T14:53:13",
"url": "https://files.pythonhosted.org/packages/5e/f0/2c193ed1f17c97ae539da7e1c2d48b80d8cccb1917163b26a91ca4355aa6/CacheControl-0.12.5.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "f1baef403e8dd68c5a203e2eb23a0f2e",
"sha256": "cef77effdf51b43178f6a2d3b787e3734f98ade253fa3187f3bb7315aaa42ff7"
},
"downloads": -1,
"filename": "CacheControl-0.12.5.tar.gz",
"has_sig": false,
"md5_digest": "f1baef403e8dd68c5a203e2eb23a0f2e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 14383,
"upload_time": "2018-06-07T14:53:13",
"url": "https://files.pythonhosted.org/packages/5e/f0/2c193ed1f17c97ae539da7e1c2d48b80d8cccb1917163b26a91ca4355aa6/CacheControl-0.12.5.tar.gz"
}
]
}
{
"info": {
"author": "OpenStack",
"author_email": "openstack-dev@lists.openstack.org",
"bugtrack_url": null,
"classifiers": [
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows :: Windows NT/2000",
"Operating System :: POSIX",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.3",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "",
"description_content_type": null,
"docs_url": "https://pythonhosted.org/lockfile/",
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://launchpad.net/pylockfile",
"keywords": "",
"license": "",
"maintainer": "",
"maintainer_email": "",
"name": "lockfile",
"package_url": "https://pypi.org/project/lockfile/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/lockfile/",
"project_urls": {
"Homepage": "http://launchpad.net/pylockfile"
},
"release_url": "https://pypi.org/project/lockfile/0.12.2/",
"requires_dist": null,
"requires_python": "",
"summary": "Platform-independent file locking module",
"version": "0.12.2"
},
"last_serial": 2139845,
"releases": {
"0.12.2": [
{
"comment_text": "",
"digests": {
"md5": "07b04864472c90cdf4452cf250687334",
"sha256": "6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"
},
"downloads": -1,
"filename": "lockfile-0.12.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "07b04864472c90cdf4452cf250687334",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 13564,
"upload_time": "2015-11-25T18:29:51",
"url": "https://files.pythonhosted.org/packages/c8/22/9460e311f340cb62d26a38c419b1381b8593b0bb6b5d1f056938b086d362/lockfile-0.12.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a6a1a82957a23afdf44cfdd039b65ff9",
"sha256": "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"
},
"downloads": -1,
"filename": "lockfile-0.12.2.tar.gz",
"has_sig": false,
"md5_digest": "a6a1a82957a23afdf44cfdd039b65ff9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20874,
"upload_time": "2015-11-25T18:29:58",
"url": "https://files.pythonhosted.org/packages/17/47/72cb04a58a35ec495f96984dddb48232b551aafb95bde614605b754fe6f7/lockfile-0.12.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "07b04864472c90cdf4452cf250687334",
"sha256": "6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"
},
"downloads": -1,
"filename": "lockfile-0.12.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "07b04864472c90cdf4452cf250687334",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 13564,
"upload_time": "2015-11-25T18:29:51",
"url": "https://files.pythonhosted.org/packages/c8/22/9460e311f340cb62d26a38c419b1381b8593b0bb6b5d1f056938b086d362/lockfile-0.12.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a6a1a82957a23afdf44cfdd039b65ff9",
"sha256": "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"
},
"downloads": -1,
"filename": "lockfile-0.12.2.tar.gz",
"has_sig": false,
"md5_digest": "a6a1a82957a23afdf44cfdd039b65ff9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20874,
"upload_time": "2015-11-25T18:29:58",
"url": "https://files.pythonhosted.org/packages/17/47/72cb04a58a35ec495f96984dddb48232b551aafb95bde614605b754fe6f7/lockfile-0.12.2.tar.gz"
}
]
}
{
"info": {
"author": "OpenStack",
"author_email": "openstack-dev@lists.openstack.org",
"bugtrack_url": null,
"classifiers": [
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows :: Windows NT/2000",
"Operating System :: POSIX",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.3",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "",
"description_content_type": null,
"docs_url": "https://pythonhosted.org/lockfile/",
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://launchpad.net/pylockfile",
"keywords": "",
"license": "",
"maintainer": "",
"maintainer_email": "",
"name": "lockfile",
"package_url": "https://pypi.org/project/lockfile/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/lockfile/",
"project_urls": {
"Homepage": "http://launchpad.net/pylockfile"
},
"release_url": "https://pypi.org/project/lockfile/0.12.2/",
"requires_dist": null,
"requires_python": "",
"summary": "Platform-independent file locking module",
"version": "0.12.2"
},
"last_serial": 2139845,
"releases": {
"0.12.2": [
{
"comment_text": "",
"digests": {
"md5": "07b04864472c90cdf4452cf250687334",
"sha256": "6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"
},
"downloads": -1,
"filename": "lockfile-0.12.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "07b04864472c90cdf4452cf250687334",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 13564,
"upload_time": "2015-11-25T18:29:51",
"url": "https://files.pythonhosted.org/packages/c8/22/9460e311f340cb62d26a38c419b1381b8593b0bb6b5d1f056938b086d362/lockfile-0.12.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a6a1a82957a23afdf44cfdd039b65ff9",
"sha256": "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"
},
"downloads": -1,
"filename": "lockfile-0.12.2.tar.gz",
"has_sig": false,
"md5_digest": "a6a1a82957a23afdf44cfdd039b65ff9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20874,
"upload_time": "2015-11-25T18:29:58",
"url": "https://files.pythonhosted.org/packages/17/47/72cb04a58a35ec495f96984dddb48232b551aafb95bde614605b754fe6f7/lockfile-0.12.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "07b04864472c90cdf4452cf250687334",
"sha256": "6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"
},
"downloads": -1,
"filename": "lockfile-0.12.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "07b04864472c90cdf4452cf250687334",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 13564,
"upload_time": "2015-11-25T18:29:51",
"url": "https://files.pythonhosted.org/packages/c8/22/9460e311f340cb62d26a38c419b1381b8593b0bb6b5d1f056938b086d362/lockfile-0.12.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a6a1a82957a23afdf44cfdd039b65ff9",
"sha256": "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"
},
"downloads": -1,
"filename": "lockfile-0.12.2.tar.gz",
"has_sig": false,
"md5_digest": "a6a1a82957a23afdf44cfdd039b65ff9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20874,
"upload_time": "2015-11-25T18:29:58",
"url": "https://files.pythonhosted.org/packages/17/47/72cb04a58a35ec495f96984dddb48232b551aafb95bde614605b754fe6f7/lockfile-0.12.2.tar.gz"
}
]
}
{
"info": {
"author": "Sébastien Eustace",
"author_email": "sebastien@eustace.io",
"bugtrack_url": null,
"classifiers": [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Topic :: Software Development :: Build Tools",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://poetry.eustace.io/",
"keywords": "packaging,dependency,poetry",
"license": "MIT",
"maintainer": "Sébastien Eustace",
"maintainer_email": "sebastien@eustace.io",
"name": "poetry",
"package_url": "https://pypi.org/project/poetry/",
"platform": "",
"project_url": "https://pypi.org/project/poetry/",
"project_urls": {
"Documentation": "https://poetry.eustace.io/docs",
"Homepage": "https://poetry.eustace.io/",
"Repository": "https://github.com/sdispater/poetry"
},
"release_url": "https://pypi.org/project/poetry/0.12.4/",
"requires_dist": [
"virtualenv (>=16.0,<17.0); python_version >= \"2.7\" and python_version < \"2.8\"",
"pathlib2 (>=2.3,<3.0); python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.4\" and python_version < \"3.5\"",
"typing (>=3.6,<4.0); python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.4\" and python_version < \"3.5\"",
"tomlkit (>=0.4.4,<0.5.0)",
"shellingham (>=1.1,<2.0)",
"html5lib (>=1.0,<2.0)",
"pkginfo (>=1.4,<2.0)",
"cachecontrol[filecache] (>=0.12.4,<0.13.0)",
"pyparsing (>=2.2,<3.0)",
"pyrsistent (>=0.14.2,<0.15.0)",
"jsonschema (>=3.0a3,<4.0)",
"requests-toolbelt (>=0.8.0,<0.9.0)",
"cachy (>=0.2,<0.3)",
"requests (>=2.18,<3.0)",
"cleo (>=0.6.7,<0.7.0)"
],
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"summary": "Python dependency management and packaging made easy.",
"version": "0.12.4"
},
"last_serial": 4399781,
"releases": {
"0.12.0": [
{
"comment_text": "",
"digests": {
"md5": "e41b413e4ee8d551cc867adb968843a5",
"sha256": "1c818dcca72a9dc5cd13a30e29654986e3e288f6b158673e3d5b2cc51dec2309"
},
"downloads": -1,
"filename": "poetry-0.12.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e41b413e4ee8d551cc867adb968843a5",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 627048,
"upload_time": "2018-10-17T20:31:41",
"url": "https://files.pythonhosted.org/packages/9f/34/cb438970b165513f66f681082092871aa3b88be60218f74ca933a8af4009/poetry-0.12.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "18c57cdba5fc86cb74b36e766114959b",
"sha256": "f8565669c5b7679fb5a560a1f93d367f7729f5f2ad1ed06e835549196e764fdb"
},
"downloads": -1,
"filename": "poetry-0.12.0.tar.gz",
"has_sig": false,
"md5_digest": "18c57cdba5fc86cb74b36e766114959b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 145585,
"upload_time": "2018-10-17T20:31:43",
"url": "https://files.pythonhosted.org/packages/c6/68/471e26c5d04474aa51b4eb3173645b0e8987e4fb632a035488278d626438/poetry-0.12.0.tar.gz"
}
],
"0.12.1": [
{
"comment_text": "",
"digests": {
"md5": "01da4d43121437cd730160b803d4fe48",
"sha256": "2f1c3f3545ff0b192f543a35523ece22824bdee0954627960a7562ec0e377113"
},
"downloads": -1,
"filename": "poetry-0.12.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "01da4d43121437cd730160b803d4fe48",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 627051,
"upload_time": "2018-10-17T21:24:48",
"url": "https://files.pythonhosted.org/packages/de/b4/087632dcc5d0d54bbc2c66a91d23ab6550c26e0849eab0ce713c638cbcb9/poetry-0.12.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9dd2e98a85a36bde43d0f10b991d6982",
"sha256": "adefe0e70c91bc98b272a2c0dd7ac67882de62972eafac7625606b14cc49c8a9"
},
"downloads": -1,
"filename": "poetry-0.12.1.tar.gz",
"has_sig": false,
"md5_digest": "9dd2e98a85a36bde43d0f10b991d6982",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 145596,
"upload_time": "2018-10-17T21:24:51",
"url": "https://files.pythonhosted.org/packages/89/90/1698d2d1f7c3d25b62c701995cce4f0432308c9899614e34489e8d5c364a/poetry-0.12.1.tar.gz"
}
],
"0.12.2": [
{
"comment_text": "",
"digests": {
"md5": "8d52945ff3e6d057f0a5c8d43dbdd1be",
"sha256": "07bb0d57798b54564526a83b3b6ee31450e3ff9c91580deff7970402e8cf9648"
},
"downloads": -1,
"filename": "poetry-0.12.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "8d52945ff3e6d057f0a5c8d43dbdd1be",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 627151,
"upload_time": "2018-10-17T21:55:08",
"url": "https://files.pythonhosted.org/packages/a5/62/4f4c9a0c49145e5368829806baa202f760403299d3a6a4d8d9e2dd277f85/poetry-0.12.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "03a09bf2b231701bc698e9fe2e237bd0",
"sha256": "1b9c7a70ac71a416c2b4ec69b89e37fa39afd965a1d0fe58a01e3121d89e98ef"
},
"downloads": -1,
"filename": "poetry-0.12.2.tar.gz",
"has_sig": false,
"md5_digest": "03a09bf2b231701bc698e9fe2e237bd0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 145641,
"upload_time": "2018-10-17T21:55:09",
"url": "https://files.pythonhosted.org/packages/72/9d/30c6c7b2823bda75a568827fe518bc6fc7d59a199336767afb7ac888da4c/poetry-0.12.2.tar.gz"
}
],
"0.12.3": [
{
"comment_text": "",
"digests": {
"md5": "541da5e58318b5b5804ee068c9c98468",
"sha256": "936365627f5a29921886c5d2f9aef688899e691af706d136bf17d291a4f33d9b"
},
"downloads": -1,
"filename": "poetry-0.12.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "541da5e58318b5b5804ee068c9c98468",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 630173,
"upload_time": "2018-10-18T23:53:33",
"url": "https://files.pythonhosted.org/packages/91/5c/fd1507d5950bf31050650b0ea973c3aa98cd231ed0a18ab36eefde7db9c3/poetry-0.12.3-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "48e88e9ae840e2f0c5da5cd00c8b5b1e",
"sha256": "dbc6f7269f8015d2f2408471f2b2eec2365b5bfd20cff8d9824664b67505aaae"
},
"downloads": -1,
"filename": "poetry-0.12.3.tar.gz",
"has_sig": false,
"md5_digest": "48e88e9ae840e2f0c5da5cd00c8b5b1e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 146247,
"upload_time": "2018-10-18T23:53:35",
"url": "https://files.pythonhosted.org/packages/23/86/9166b68a9b9084eca5a3a53ef6131b3318a0b9c48ee8593623330e164c85/poetry-0.12.3.tar.gz"
}
],
"0.12.4": [
{
"comment_text": "",
"digests": {
"md5": "a7975e8b090eb3e006814d5e7c2c986f",
"sha256": "9d3759bf7f3d8107262cda917b615c185da57e96785a696dd1f117526917f850"
},
"downloads": -1,
"filename": "poetry-0.12.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a7975e8b090eb3e006814d5e7c2c986f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 630184,
"upload_time": "2018-10-21T16:33:56",
"url": "https://files.pythonhosted.org/packages/1b/af/013cdcc6f9d4c0bf025b3924981991a8b034db7818fd324c525b7e8a2b6c/poetry-0.12.4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c3d1d7576d2ee6663b59e12236a163e9",
"sha256": "fc924ef535c9229aac4f7cfda948e64e890417242d808c0880febb0ea333b9f6"
},
"downloads": -1,
"filename": "poetry-0.12.4.tar.gz",
"has_sig": false,
"md5_digest": "c3d1d7576d2ee6663b59e12236a163e9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 146262,
"upload_time": "2018-10-21T16:33:58",
"url": "https://files.pythonhosted.org/packages/b5/4f/8a864e12a4a03f13467d5ac3d0cc67e75130ae966e3528e9ecbe3df980d6/poetry-0.12.4.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "a7975e8b090eb3e006814d5e7c2c986f",
"sha256": "9d3759bf7f3d8107262cda917b615c185da57e96785a696dd1f117526917f850"
},
"downloads": -1,
"filename": "poetry-0.12.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a7975e8b090eb3e006814d5e7c2c986f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 630184,
"upload_time": "2018-10-21T16:33:56",
"url": "https://files.pythonhosted.org/packages/1b/af/013cdcc6f9d4c0bf025b3924981991a8b034db7818fd324c525b7e8a2b6c/poetry-0.12.4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c3d1d7576d2ee6663b59e12236a163e9",
"sha256": "fc924ef535c9229aac4f7cfda948e64e890417242d808c0880febb0ea333b9f6"
},
"downloads": -1,
"filename": "poetry-0.12.4.tar.gz",
"has_sig": false,
"md5_digest": "c3d1d7576d2ee6663b59e12236a163e9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 146262,
"upload_time": "2018-10-21T16:33:58",
"url": "https://files.pythonhosted.org/packages/b5/4f/8a864e12a4a03f13467d5ac3d0cc67e75130ae966e3528e9ecbe3df980d6/poetry-0.12.4.tar.gz"
}
]
}
{
"info": {
"author": "Sébastien Eustace",
"author_email": "sebastien@eustace.io",
"bugtrack_url": null,
"classifiers": [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Topic :: Software Development :: Build Tools",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://poetry.eustace.io/",
"keywords": "packaging,dependency,poetry",
"license": "MIT",
"maintainer": "Sébastien Eustace",
"maintainer_email": "sebastien@eustace.io",
"name": "poetry",
"package_url": "https://pypi.org/project/poetry/",
"platform": "",
"project_url": "https://pypi.org/project/poetry/",
"project_urls": {
"Documentation": "https://poetry.eustace.io/docs",
"Homepage": "https://poetry.eustace.io/",
"Repository": "https://github.com/sdispater/poetry"
},
"release_url": "https://pypi.org/project/poetry/0.12.4/",
"requires_dist": [
"cachecontrol[filecache] (>=0.12.4,<0.13.0)"
],
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"summary": "Python dependency management and packaging made easy.",
"version": "0.12.4"
},
"last_serial": 4399781,
"releases": {
"0.12.0": [
{
"comment_text": "",
"digests": {
"md5": "e41b413e4ee8d551cc867adb968843a5",
"sha256": "1c818dcca72a9dc5cd13a30e29654986e3e288f6b158673e3d5b2cc51dec2309"
},
"downloads": -1,
"filename": "poetry-0.12.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e41b413e4ee8d551cc867adb968843a5",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 627048,
"upload_time": "2018-10-17T20:31:41",
"url": "https://files.pythonhosted.org/packages/9f/34/cb438970b165513f66f681082092871aa3b88be60218f74ca933a8af4009/poetry-0.12.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "18c57cdba5fc86cb74b36e766114959b",
"sha256": "f8565669c5b7679fb5a560a1f93d367f7729f5f2ad1ed06e835549196e764fdb"
},
"downloads": -1,
"filename": "poetry-0.12.0.tar.gz",
"has_sig": false,
"md5_digest": "18c57cdba5fc86cb74b36e766114959b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 145585,
"upload_time": "2018-10-17T20:31:43",
"url": "https://files.pythonhosted.org/packages/c6/68/471e26c5d04474aa51b4eb3173645b0e8987e4fb632a035488278d626438/poetry-0.12.0.tar.gz"
}
],
"0.12.1": [
{
"comment_text": "",
"digests": {
"md5": "01da4d43121437cd730160b803d4fe48",
"sha256": "2f1c3f3545ff0b192f543a35523ece22824bdee0954627960a7562ec0e377113"
},
"downloads": -1,
"filename": "poetry-0.12.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "01da4d43121437cd730160b803d4fe48",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 627051,
"upload_time": "2018-10-17T21:24:48",
"url": "https://files.pythonhosted.org/packages/de/b4/087632dcc5d0d54bbc2c66a91d23ab6550c26e0849eab0ce713c638cbcb9/poetry-0.12.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9dd2e98a85a36bde43d0f10b991d6982",
"sha256": "adefe0e70c91bc98b272a2c0dd7ac67882de62972eafac7625606b14cc49c8a9"
},
"downloads": -1,
"filename": "poetry-0.12.1.tar.gz",
"has_sig": false,
"md5_digest": "9dd2e98a85a36bde43d0f10b991d6982",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 145596,
"upload_time": "2018-10-17T21:24:51",
"url": "https://files.pythonhosted.org/packages/89/90/1698d2d1f7c3d25b62c701995cce4f0432308c9899614e34489e8d5c364a/poetry-0.12.1.tar.gz"
}
],
"0.12.2": [
{
"comment_text": "",
"digests": {
"md5": "8d52945ff3e6d057f0a5c8d43dbdd1be",
"sha256": "07bb0d57798b54564526a83b3b6ee31450e3ff9c91580deff7970402e8cf9648"
},
"downloads": -1,
"filename": "poetry-0.12.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "8d52945ff3e6d057f0a5c8d43dbdd1be",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 627151,
"upload_time": "2018-10-17T21:55:08",
"url": "https://files.pythonhosted.org/packages/a5/62/4f4c9a0c49145e5368829806baa202f760403299d3a6a4d8d9e2dd277f85/poetry-0.12.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "03a09bf2b231701bc698e9fe2e237bd0",
"sha256": "1b9c7a70ac71a416c2b4ec69b89e37fa39afd965a1d0fe58a01e3121d89e98ef"
},
"downloads": -1,
"filename": "poetry-0.12.2.tar.gz",
"has_sig": false,
"md5_digest": "03a09bf2b231701bc698e9fe2e237bd0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 145641,
"upload_time": "2018-10-17T21:55:09",
"url": "https://files.pythonhosted.org/packages/72/9d/30c6c7b2823bda75a568827fe518bc6fc7d59a199336767afb7ac888da4c/poetry-0.12.2.tar.gz"
}
],
"0.12.3": [
{
"comment_text": "",
"digests": {
"md5": "541da5e58318b5b5804ee068c9c98468",
"sha256": "936365627f5a29921886c5d2f9aef688899e691af706d136bf17d291a4f33d9b"
},
"downloads": -1,
"filename": "poetry-0.12.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "541da5e58318b5b5804ee068c9c98468",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 630173,
"upload_time": "2018-10-18T23:53:33",
"url": "https://files.pythonhosted.org/packages/91/5c/fd1507d5950bf31050650b0ea973c3aa98cd231ed0a18ab36eefde7db9c3/poetry-0.12.3-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "48e88e9ae840e2f0c5da5cd00c8b5b1e",
"sha256": "dbc6f7269f8015d2f2408471f2b2eec2365b5bfd20cff8d9824664b67505aaae"
},
"downloads": -1,
"filename": "poetry-0.12.3.tar.gz",
"has_sig": false,
"md5_digest": "48e88e9ae840e2f0c5da5cd00c8b5b1e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 146247,
"upload_time": "2018-10-18T23:53:35",
"url": "https://files.pythonhosted.org/packages/23/86/9166b68a9b9084eca5a3a53ef6131b3318a0b9c48ee8593623330e164c85/poetry-0.12.3.tar.gz"
}
],
"0.12.4": [
{
"comment_text": "",
"digests": {
"md5": "a7975e8b090eb3e006814d5e7c2c986f",
"sha256": "9d3759bf7f3d8107262cda917b615c185da57e96785a696dd1f117526917f850"
},
"downloads": -1,
"filename": "poetry-0.12.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a7975e8b090eb3e006814d5e7c2c986f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 630184,
"upload_time": "2018-10-21T16:33:56",
"url": "https://files.pythonhosted.org/packages/1b/af/013cdcc6f9d4c0bf025b3924981991a8b034db7818fd324c525b7e8a2b6c/poetry-0.12.4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c3d1d7576d2ee6663b59e12236a163e9",
"sha256": "fc924ef535c9229aac4f7cfda948e64e890417242d808c0880febb0ea333b9f6"
},
"downloads": -1,
"filename": "poetry-0.12.4.tar.gz",
"has_sig": false,
"md5_digest": "c3d1d7576d2ee6663b59e12236a163e9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 146262,
"upload_time": "2018-10-21T16:33:58",
"url": "https://files.pythonhosted.org/packages/b5/4f/8a864e12a4a03f13467d5ac3d0cc67e75130ae966e3528e9ecbe3df980d6/poetry-0.12.4.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "a7975e8b090eb3e006814d5e7c2c986f",
"sha256": "9d3759bf7f3d8107262cda917b615c185da57e96785a696dd1f117526917f850"
},
"downloads": -1,
"filename": "poetry-0.12.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a7975e8b090eb3e006814d5e7c2c986f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 630184,
"upload_time": "2018-10-21T16:33:56",
"url": "https://files.pythonhosted.org/packages/1b/af/013cdcc6f9d4c0bf025b3924981991a8b034db7818fd324c525b7e8a2b6c/poetry-0.12.4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c3d1d7576d2ee6663b59e12236a163e9",
"sha256": "fc924ef535c9229aac4f7cfda948e64e890417242d808c0880febb0ea333b9f6"
},
"downloads": -1,
"filename": "poetry-0.12.4.tar.gz",
"has_sig": false,
"md5_digest": "c3d1d7576d2ee6663b59e12236a163e9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 146262,
"upload_time": "2018-10-21T16:33:58",
"url": "https://files.pythonhosted.org/packages/b5/4f/8a864e12a4a03f13467d5ac3d0cc67e75130ae966e3528e9ecbe3df980d6/poetry-0.12.4.tar.gz"
}
]
}
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