fix json api calls

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
This commit is contained in:
2018-03-09 19:54:58 -05:00
parent 82e984b807
commit 2ef26fdc8d
+16 -16
View File
@@ -135,30 +135,29 @@ class PyPIRepository(BaseRepository):
if not (is_pinned_requirement(ireq)):
raise TypeError('Expected pinned InstallRequirement, got {}'.format(ireq))
def gen():
def gen(ireq):
if self.DEFAULT_INDEX_URL in self.finder.index_urls:
url = str(ireq.link.comes_from)
url = url.replace('pypi.python.org', 'pypi.org')
url = url.replace('/simple/', '/pypi/')
url = '{0}json'.format(url)
url = 'https://pypi.org/pypi/{0}/json'.format(ireq.req.name)
r = self.session.get(url)
r = self.session.get(url)
latest = list(r.json()['releases'].keys())[-1]
if str(ireq.req.specifier) == '=={0}'.format(latest):
latest = list(r.json()['releases'].keys())[-1]
if str(ireq.req.specifier) == '=={0}'.format(latest):
for requires in r.json().get('info', {}).get('requires_dist', {}):
i = InstallRequirement.from_line(requires)
for requires in r.json().get('info', {}).get('requires_dist', {}):
i = InstallRequirement.from_line(requires)
if 'extra' not in repr(i.markers):
yield i
if 'extra' not in repr(i.markers):
print('yay')
yield i
try:
if ireq not in self._json_dep_cache:
self._json_dep_cache[ireq] = [g for g in gen()]
self._json_dep_cache[ireq] = [g for g in gen(ireq)]
return set(self._json_dep_cache[ireq])
except Exception:
except Exception as e:
raise(e)
return set()
def get_dependencies(self, ireq):
@@ -184,7 +183,8 @@ class PyPIRepository(BaseRepository):
'Please run "$ pipenv-resolver {0!r} --verbose" to debug.'.format(str(ireq.req))
)
return json_results | legacy_results
json_results.update(legacy_results)
return json_results
def get_legacy_dependencies(self, ireq):
"""