serious upgrades

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
This commit is contained in:
2018-01-10 09:22:04 -05:00
parent c5a145be0e
commit bf705666df
+43 -2
View File
@@ -1,8 +1,10 @@
import os
import json
import toml
import delegator
class Dependency(object):
"""A Dependency."""
@@ -17,6 +19,18 @@ class Dependency(object):
)
class LockedDependency(object):
"""A Locked Dependency"""
def __init__(self, name, constraint, hashes):
self.name = name
self.constraint = constraint
self.hashes = hashes
def __repr__(self):
return "<LockedDepedency '{0}{1}'>".format(
self.name, self.constraint
)
class Requirement(object):
"""A Requirement."""
@@ -72,23 +86,49 @@ class PipenvProject(object):
@property
def packages(self):
"""Returns a list of Dependency objects (for [packages]) for
the Pipenv project.
"""
return self._get_section_of_pipfile('packages', Dependency)
@property
def dev_packages(self):
"""Returns a list of Dependency objects (for [dev-packages]) for
the Pipenv project.
"""
return self._get_section_of_pipfile('dev-packages', Dependency)
@property
def requires(self):
"""Returns a list of Requirement objects for the Pipenv project.
"""
return self._get_section_of_pipfile('requires', Requirement)
@property
def locked_packages(self):
pass
"""Returns a list of LockedDependency objects for the Pipenv
project.
"""
self.assert_has_lockfile()
def gen():
with open(self._lockfile_path) as f:
lockfile = json.load(f)
for package in lockfile['default']:
name = package
constraint = lockfile['default'][package]['version']
hashes = lockfile['default'][package]['hashes']
yield LockedDependency(name, constraint, hashes)
return [l for l in gen()]
@property
def locked_dev_packages(self):
pass
self.assert_has_lockfile()
def _assert_pipenv_is_installed(self):
pass
@@ -116,6 +156,7 @@ class PipenvProject(object):
@property
def virtualenv_location(self):
# return self._
pass
# @property