diff options
-rw-r--r-- | pym/_emerge/__init__.py | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 12723e655..913c0d35e 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -1274,13 +1274,13 @@ class Package(Task): __slots__ = ("built", "cpv", "depth", "installed", "metadata", "onlydeps", "operation", "root_config", "type_name", - "category", "cp", "cpv_split", "iuse", + "category", "counter", "cp", "cpv_split", "iuse", "mtime", "pf", "pv_split", "root", "slot", "slot_atom", "use") metadata_keys = [ "CHOST", "COUNTER", "DEPEND", "EAPI", "IUSE", "KEYWORDS", "LICENSE", "PDEPEND", "PROVIDE", "RDEPEND", - "repository", "RESTRICT", "SLOT", "USE"] + "repository", "RESTRICT", "SLOT", "USE", "_mtime_"] def __init__(self, **kwargs): Task.__init__(self, **kwargs) @@ -1336,7 +1336,8 @@ class Package(Task): """ Detect metadata updates and synchronize Package attributes. """ - _wrapped_keys = frozenset(["IUSE", "SLOT", "USE"]) + _wrapped_keys = frozenset( + ["COUNTER", "IUSE", "SLOT", "USE", "_mtime_"]) def __init__(self, pkg, metadata): dict.__init__(self) @@ -1364,6 +1365,22 @@ class Package(Task): def _set_use(self, k, v): self._pkg.use = self._pkg._use(v.split()) + def _set_counter(self, k, v): + if isinstance(v, basestring): + try: + v = int(v.strip()) + except ValueError: + v = 0 + self._pkg.counter = v + + def _set__mtime_(self, k, v): + if isinstance(v, basestring): + try: + v = float(v.strip()) + except ValueError: + v = 0 + self._pkg.mtime = v + def _get_hash_key(self): hash_key = getattr(self, "_hash_key", None) if hash_key is None: |