summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/__init__.py23
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: