Source code for pkgcore.package.virtual

"""
virtual package
"""

__all__ = ("package", "factory")

from ..restrictions.packages import OrRestriction
from . import metadata


[docs] class package(metadata.package): """ Virtual package. Mainly useful since it's generating so little attrs on the fly. """ package_is_real = False built = True __slots__ = ("__dict__",) def __init__(self, repo, provider, *a, **kwds): super().__init__(repo, *a, **kwds) object.__setattr__(self, "provider", provider) object.__setattr__(self, "data", {}) def __getattr__(self, key): val = None if key == "rdepend": val = self.provider elif key in ("bdepend", "depend", "pdepend", "idepend"): val = OrRestriction() elif key == "slot": val = f"{self.provider.category}-{self.version}" else: return super().__getattr__(key) self.__dict__[key] = val return val def _fetch_metadata(self): data = self._parent._parent_repo._fetch_metadata(self) return data
[docs] class factory(metadata.factory): child_class = package