Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
python-poetry
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open
python-poetry
Commits
dffb895f
Unverified
Commit
dffb895f
authored
Oct 25, 2018
by
Sébastien Eustace
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix transitive extra dependencies being removed when updating otehr dependency
parent
bdd7909c
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1293 additions
and
12 deletions
+1293
-12
CHANGELOG.md
+1
-0
poetry/mixology/version_solver.py
+6
-7
poetry/packages/locker.py
+17
-0
poetry/repositories/pool.py
+1
-1
poetry/repositories/repository.py
+3
-0
tests/installation/fixtures/update-with-locked-extras.test
+4
-1
tests/installation/fixtures/with-dependencies-extras.test
+4
-1
tests/installation/fixtures/with-directory-dependency-poetry-transitive.test
+4
-0
tests/installation/fixtures/with-directory-dependency-poetry.test
+5
-1
tests/installation/fixtures/with-directory-dependency-setuptools.test
+1
-1
tests/installation/fixtures/with-pypi-repository.test
+5
-0
tests/installation/test_installer.py
+82
-0
tests/repositories/fixtures/pypi.org/json/cachecontrol.json
+182
-0
tests/repositories/fixtures/pypi.org/json/cachecontrol/0.12.5.json
+184
-0
tests/repositories/fixtures/pypi.org/json/lockfile.json
+122
-0
tests/repositories/fixtures/pypi.org/json/lockfile/0.12.2.json
+122
-0
tests/repositories/fixtures/pypi.org/json/poetry.json
+282
-0
tests/repositories/fixtures/pypi.org/json/poetry/0.12.4.json
+268
-0
No files found.
CHANGELOG.md
View file @
dffb895f
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
-
Fixed handling of Python versions compatibility.
-
Fixed handling of Python versions compatibility.
-
Fixed the dependency resolver picking up unnecessary dependencies due to not using the
`python_full_version`
marker.
-
Fixed the dependency resolver picking up unnecessary dependencies due to not using the
`python_full_version`
marker.
-
Fixed the
`Python-Requires`
metadata being invalid for single Python versions.
-
Fixed the
`Python-Requires`
metadata being invalid for single Python versions.
-
Fixed transitive extra dependencies being removed when updating a specific dependency.
## [0.12.4] - 2018-10-21
## [0.12.4] - 2018-10-21
...
...
poetry/mixology/version_solver.py
View file @
dffb895f
...
@@ -348,7 +348,7 @@ class VersionSolver:
...
@@ -348,7 +348,7 @@ class VersionSolver:
else
:
else
:
dependency
=
min
(
*
unsatisfied
,
key
=
_get_min
)
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
):
if
locked
is
None
or
not
dependency
.
constraint
.
allows
(
locked
.
version
):
try
:
try
:
packages
=
self
.
_provider
.
search_for
(
dependency
)
packages
=
self
.
_provider
.
search_for
(
dependency
)
...
@@ -429,17 +429,16 @@ class VersionSolver:
...
@@ -429,17 +429,16 @@ class VersionSolver:
self
.
_incompatibilities
[
term
.
dependency
.
name
]
.
append
(
incompatibility
)
self
.
_incompatibilities
[
term
.
dependency
.
name
]
.
append
(
incompatibility
)
def
_get_locked
(
self
,
package_name
):
# type: (str
) -> Union[Package, None]
def
_get_locked
(
self
,
dependency
):
# type: (Dependency
) -> Union[Package, None]
if
package_
name
in
self
.
_use_latest
:
if
dependency
.
name
in
self
.
_use_latest
:
return
return
locked
=
self
.
_locked
.
get
(
package_
name
)
locked
=
self
.
_locked
.
get
(
dependency
.
name
)
if
not
locked
:
if
not
locked
:
return
return
for
dep
in
self
.
_root
.
all_requires
:
if
dependency
.
extras
:
if
dep
.
name
==
locked
.
name
:
locked
.
requires_extras
=
dependency
.
extras
locked
.
requires_extras
=
dep
.
extras
return
locked
return
locked
...
...
poetry/packages/locker.py
View file @
dffb895f
...
@@ -85,6 +85,7 @@ class Locker:
...
@@ -85,6 +85,7 @@ class Locker:
package
.
optional
=
info
[
"optional"
]
package
.
optional
=
info
[
"optional"
]
package
.
hashes
=
lock_data
[
"metadata"
][
"hashes"
][
info
[
"name"
]]
package
.
hashes
=
lock_data
[
"metadata"
][
"hashes"
][
info
[
"name"
]]
package
.
python_versions
=
info
[
"python-versions"
]
package
.
python_versions
=
info
[
"python-versions"
]
package
.
extras
=
info
.
get
(
"extras"
,
{})
if
"marker"
in
info
:
if
"marker"
in
info
:
package
.
marker
=
parse_marker
(
info
[
"marker"
])
package
.
marker
=
parse_marker
(
info
[
"marker"
])
...
@@ -207,6 +208,12 @@ class Locker:
...
@@ -207,6 +208,12 @@ class Locker:
constraint
=
{
"version"
:
str
(
dependency
.
pretty_constraint
)}
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
():
if
not
dependency
.
python_constraint
.
is_any
():
constraint
[
"python"
]
=
str
(
dependency
.
python_constraint
)
constraint
[
"python"
]
=
str
(
dependency
.
python_constraint
)
...
@@ -227,6 +234,16 @@ class Locker:
...
@@ -227,6 +234,16 @@ class Locker:
if
not
package
.
marker
.
is_any
():
if
not
package
.
marker
.
is_any
():
data
[
"marker"
]
=
str
(
package
.
marker
)
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
:
if
dependencies
:
for
k
,
constraints
in
dependencies
.
items
():
for
k
,
constraints
in
dependencies
.
items
():
if
len
(
constraints
)
==
1
:
if
len
(
constraints
)
==
1
:
...
...
poetry/repositories/pool.py
View file @
dffb895f
...
@@ -73,7 +73,7 @@ class Pool(BaseRepository):
...
@@ -73,7 +73,7 @@ class Pool(BaseRepository):
return
package
return
package
r
eturn
None
r
aise
PackageNotFound
(
"Package [{}] not found."
.
format
(
name
))
def
find_packages
(
def
find_packages
(
self
,
name
,
constraint
=
None
,
extras
=
None
,
allow_prereleases
=
False
self
,
name
,
constraint
=
None
,
extras
=
None
,
allow_prereleases
=
False
...
...
poetry/repositories/repository.py
View file @
dffb895f
...
@@ -66,6 +66,9 @@ class Repository(BaseRepository):
...
@@ -66,6 +66,9 @@ class Repository(BaseRepository):
if
req
.
name
==
dep
.
name
:
if
req
.
name
==
dep
.
name
:
dep
.
activate
()
dep
.
activate
()
if
extras
:
package
.
requires_extras
=
extras
packages
.
append
(
package
)
packages
.
append
(
package
)
return
packages
return
packages
...
...
tests/installation/fixtures/update-with-locked-extras.test
View file @
dffb895f
...
@@ -7,9 +7,12 @@ optional = false
...
@@ -7,9 +7,12 @@ optional = false
python
-
versions
=
"*"
python
-
versions
=
"*"
[
package
.
dependencies
]
[
package
.
dependencies
]
"B"
=
"^1.0"
"B"
=
{
version
=
"^1.0"
,
optional
=
true
}
"C"
=
{
"version"
=
"^1.0"
,
"python"
=
">=2.7,<2.8"
}
"C"
=
{
"version"
=
"^1.0"
,
"python"
=
">=2.7,<2.8"
}
[
package
.
extras
]
foo
=
[
"b"
]
[[
package
]]
[[
package
]]
name
=
"B"
name
=
"B"
version
=
"1.0"
version
=
"1.0"
...
...
tests/installation/fixtures/with-dependencies-extras.test
View file @
dffb895f
...
@@ -15,7 +15,10 @@ optional = false
...
@@ -15,7 +15,10 @@ optional = false
python
-
versions
=
"*"
python
-
versions
=
"*"
[
package
.
dependencies
]
[
package
.
dependencies
]
C
=
"^1.0"
C
=
{
version
=
"^1.0"
,
optional
=
true
}
[
package
.
extras
]
foo
=
[
"C (^1.0)"
]
[[
package
]]
[[
package
]]
name
=
"C"
name
=
"C"
...
...
tests/installation/fixtures/with-directory-dependency-poetry-transitive.test
View file @
dffb895f
...
@@ -22,6 +22,10 @@ optional = false
...
@@ -22,6 +22,10 @@ optional = false
python
-
versions
=
"*"
python
-
versions
=
"*"
version
=
"1.2.3"
version
=
"1.2.3"
[
package
.
extras
]
extras_a
=
[
"pendulum (>=1.4.4)"
]
extras_b
=
[
"cachy (>=0.2.0)"
]
[
package
.
source
]
[
package
.
source
]
reference
=
""
reference
=
""
type
=
"directory"
type
=
"directory"
...
...
tests/installation/fixtures/with-directory-dependency-poetry.test
View file @
dffb895f
...
@@ -23,7 +23,11 @@ python-versions = "*"
...
@@ -23,7 +23,11 @@ python-versions = "*"
version
=
"1.2.3"
version
=
"1.2.3"
[
package
.
dependencies
]
[
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
]
[
package
.
source
]
reference
=
""
reference
=
""
...
...
tests/installation/fixtures/with-directory-dependency-setuptools.test
View file @
dffb895f
...
@@ -20,7 +20,7 @@ reference = ""
...
@@ -20,7 +20,7 @@ reference = ""
url
=
"tests/fixtures/project_with_setup"
url
=
"tests/fixtures/project_with_setup"
[
package
.
dependencies
]
[
package
.
dependencies
]
cachy
=
">=0.2.0"
cachy
=
{
version
=
">=0.2.0"
,
extras
=
[
"msgpack"
]}
pendulum
=
">=1.4.4"
pendulum
=
">=1.4.4"
[[
package
]]
[[
package
]]
...
...
tests/installation/fixtures/with-pypi-repository.test
View file @
dffb895f
...
@@ -6,6 +6,11 @@ category = "dev"
...
@@ -6,6 +6,11 @@ category = "dev"
optional
=
false
optional
=
false
python
-
versions
=
"*"
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
]]
[[
package
]]
name
=
"colorama"
name
=
"colorama"
version
=
"0.3.9"
version
=
"0.3.9"
...
...
tests/installation/test_installer.py
View file @
dffb895f
...
@@ -1261,3 +1261,85 @@ def test_installer_test_solver_finds_compatible_package_for_dependency_python_no
...
@@ -1261,3 +1261,85 @@ def test_installer_test_solver_finds_compatible_package_for_dependency_python_no
assert
len
(
installs
)
==
1
assert
len
(
installs
)
==
1
else
:
else
:
assert
len
(
installs
)
==
0
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
tests/repositories/fixtures/pypi.org/json/cachecontrol.json
0 → 100644
View file @
dffb895f
{
"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"
}
]
}
tests/repositories/fixtures/pypi.org/json/cachecontrol/0.12.5.json
0 → 100644
View file @
dffb895f
{
"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"
}
]
}
tests/repositories/fixtures/pypi.org/json/lockfile.json
0 → 100644
View file @
dffb895f
{
"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"
}
]
}
tests/repositories/fixtures/pypi.org/json/lockfile/0.12.2.json
0 → 100644
View file @
dffb895f
{
"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"
}
]
}
tests/repositories/fixtures/pypi.org/json/poetry.json
0 → 100644
View file @
dffb895f
{
"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"
}
]
}
tests/repositories/fixtures/pypi.org/json/poetry/0.12.4.json
0 → 100644
View file @
dffb895f
{
"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"
}
]
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment