Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/
Date: Mon, 30 Jul 2012 08:54:26
Message-Id: 1342716736.2c8f26987ba0e1fe111b45cd2d9566abb69372b9.dywi@gentoo
1 commit: 2c8f26987ba0e1fe111b45cd2d9566abb69372b9
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Thu Jul 19 16:52:16 2012 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Thu Jul 19 16:52:16 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=2c8f2698
7
8 packageinfo: compare_version, has_key
9
10 ---
11 roverlay/packageinfo.py | 34 +++++++++++++++++++++++++++++++++-
12 1 files changed, 33 insertions(+), 1 deletions(-)
13
14 diff --git a/roverlay/packageinfo.py b/roverlay/packageinfo.py
15 index a2910c5..f9d26d1 100644
16 --- a/roverlay/packageinfo.py
17 +++ b/roverlay/packageinfo.py
18 @@ -114,6 +114,38 @@ class PackageInfo ( object ):
19 return True
20 # --- end of _writelock_acquire (...) ---
21
22 + def has_key ( self, *keys ):
23 + for k in keys:
24 + if k not in self._info:
25 + # try harder - use get() with fallback value to see if value
26 + # can be calculated
27 + if self.get ( k, do_fallback=True ) is None:
28 + return False
29 + return True
30 + # --- end of has_key (...) ---
31 +
32 + has = has_key
33 +
34 + def compare_version ( self, other_package ):
35 + """Compares the version of two PackageInfo objects.
36 + Returns 1 if self's version is higher, -1 if lower and 0 if equal.
37 +
38 + arguments:
39 + * other_package --
40 + """
41 + if other_package is None: return 1
42 +
43 + my_ver = self.get ( 'version', fallback_value=0 )
44 + other_ver = other_package.get ( 'version', fallback_value=0 )
45 +
46 + if my_ver > other_ver:
47 + return 1
48 + elif my_ver == other_ver:
49 + return 0
50 + else:
51 + return -1
52 + # --- end of compare_version (...) ---
53 +
54 def get ( self, key, fallback_value=None, do_fallback=False ):
55 """Returns the value specified by key.
56 The value is either calculated or taken from dict self._info.
57 @@ -172,7 +204,7 @@ class PackageInfo ( object ):
58
59
60 # fallback
61 - if do_fallback:
62 + if do_fallback or fallback_value is not None:
63 return fallback_value
64
65 elif key_low in self.__class__.ALWAYS_FALLBACK: