package.py 844 B

1234567891011121314151617181920212223242526272829
  1. class Package(object):
  2. """Abstract class for wrappers around objects that pip returns.
  3. This class needs to be subclassed with implementations for
  4. `render_as_root` and `render_as_branch` methods.
  5. """
  6. def __init__(self, obj):
  7. self._obj = obj
  8. self.project_name = obj.project_name
  9. self.key = obj.key
  10. def render_as_root(self, frozen):
  11. return NotImplementedError
  12. def render_as_branch(self, frozen):
  13. return NotImplementedError
  14. def render(self, parent=None, frozen=False):
  15. if not parent:
  16. return self.render_as_root(frozen)
  17. else:
  18. return self.render_as_branch(frozen)
  19. def __getattr__(self, key):
  20. return getattr(self._obj, key)
  21. def __repr__(self):
  22. return '<{0}("{1}")>'.format(self.__class__.__name__, self.key)