Add Package.counter and mtime attributes.
authorZac Medico <zmedico@gentoo.org>
Thu, 5 Jun 2008 23:35:23 +0000 (23:35 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 5 Jun 2008 23:35:23 +0000 (23:35 -0000)
svn path=/main/trunk/; revision=10587

pym/_emerge/__init__.py

index 12723e6552bfe93fe53ec941cf5968db8be933bf..913c0d35e3c3d2e15ae97d8241cb000a47da5b37 100644 (file)
@@ -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: