Gentoo Archives: gentoo-commits

From: Slava Bacherikov <slava@××××××××××××××.ua>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/libs/
Date: Sun, 03 Jun 2012 13:19:51
Message-Id: 1338727578.578144075b13c6e755525dd8565d706baf7d7bff.bacher09@gentoo
1 commit: 578144075b13c6e755525dd8565d706baf7d7bff
2 Author: Slava Bacherikov <slava <AT> bacher09 <DOT> org>
3 AuthorDate: Sun Jun 3 12:46:18 2012 +0000
4 Commit: Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
5 CommitDate: Sun Jun 3 12:46:18 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=57814407
7
8 Changes in herds layer.
9
10 ---
11 gpackages/libs/herds.py | 27 ++++++++++++++++++++++++---
12 1 files changed, 24 insertions(+), 3 deletions(-)
13
14 diff --git a/gpackages/libs/herds.py b/gpackages/libs/herds.py
15 index b1e596b..02d2782 100644
16 --- a/gpackages/libs/herds.py
17 +++ b/gpackages/libs/herds.py
18 @@ -29,6 +29,11 @@ class AbstarctXmlObject(object):
19 class Maintainer(AbstarctXmlObject, ToStrMixin):
20 attrs = ('name', 'email', 'role')
21
22 + def __init__(self, *args, **kwargs):
23 + super(Maintainer, self).__init__(*args, **kwargs)
24 + if self._email is not None:
25 + self._email = self._email.lower()
26 +
27 def __eq__(self, other):
28 return self.email == other.email
29
30 @@ -47,21 +52,31 @@ class Herd(AbstarctXmlObject, ToStrMixin):
31
32 def __init__(self, xml_object):
33 super(Herd, self).__init__(xml_object)
34 - self._iter_maintainer = xml_object.iterfind('maintainer')
35 + self._xml_object = xml_object
36 +
37 + def __eq__(self, other):
38 + return self.name == other.name
39 +
40 + def __ne__(self, other):
41 + return self.name != other.name
42 +
43 + def __hash__(self):
44 + return hash(self.name)
45
46 def iter_mainteiner(self):
47 - for maintainer_tree in self._iter_maintainer:
48 + for maintainer_tree in self._xml_object.iterfind('maintainer'):
49 yield Maintainer(maintainer_tree)
50
51 def __unicode__(self):
52 return self.name
53
54
55 -class Herds(object):
56 +class Herds(ToStrMixin):
57 def __init__(self, herd_path='/usr/portage/metadata/herds.xml'):
58 self._herd_path = herd_path
59 self._herd_parse = etree.parse(herd_path)
60 self._herds_dict = None
61 + self._maintainers_dict = None
62
63 def iter_herd(self):
64 for herd_tree in self._herd_parse.iterfind('herd'):
65 @@ -77,9 +92,15 @@ class Herds(object):
66 return res
67
68 def get_maintainers_with_hers(self):
69 + if self._maintainers_dict is not None:
70 + return self._maintainers_dict
71 herd_dict = self.get_herds_indict()
72 maintainer_dict = defaultdict(list)
73 for herd in herd_dict.itervalues():
74 for maintainer in herd.iter_mainteiner():
75 maintainer_dict[maintainer].append(herd.name)
76 + self._maintainers_dict = maintainer_dict
77 return maintainer_dict
78 +
79 + def __unicode__(self):
80 + return self._herd_path