Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoopm:master commit in: gentoopm/portagepm/
Date: Wed, 06 Jul 2011 16:04:04
Message-Id: 1289b60a321e7b0fa507ee22e9a92d4baef2234c.mgorny@gentoo
1 commit: 1289b60a321e7b0fa507ee22e9a92d4baef2234c
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Wed Jul 6 15:59:59 2011 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Wed Jul 6 15:59:59 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoopm.git;a=commit;h=1289b60a
7
8 Portage: cleanup class inheritance.
9
10 ---
11 gentoopm/portagepm/__init__.py | 3 +-
12 gentoopm/portagepm/db.py | 65 ----------------------------------------
13 gentoopm/portagepm/pkg.py | 36 ++++++++++++++++++----
14 gentoopm/portagepm/repo.py | 15 ++++++++-
15 4 files changed, 43 insertions(+), 76 deletions(-)
16
17 diff --git a/gentoopm/portagepm/__init__.py b/gentoopm/portagepm/__init__.py
18 index 15a9bec..0919916 100644
19 --- a/gentoopm/portagepm/__init__.py
20 +++ b/gentoopm/portagepm/__init__.py
21 @@ -7,8 +7,7 @@ import os
22 from portage import create_trees
23
24 from gentoopm.basepm import PackageManager
25 -from gentoopm.portagepm.repo import PortageRepoDict
26 -from gentoopm.portagepm.db import VDBRepository
27 +from gentoopm.portagepm.repo import PortageRepoDict, VDBRepository
28
29 class PortagePM(PackageManager):
30 name = 'portage'
31
32 diff --git a/gentoopm/portagepm/db.py b/gentoopm/portagepm/db.py
33 deleted file mode 100644
34 index 3eae39a..0000000
35 --- a/gentoopm/portagepm/db.py
36 +++ /dev/null
37 @@ -1,65 +0,0 @@
38 -#!/usr/bin/python
39 -# vim:fileencoding=utf-8
40 -# (c) 2011 Michał Górny <mgorny@g.o>
41 -# Released under the terms of the 2-clause BSD license.
42 -
43 -import portage.versions
44 -
45 -from gentoopm.basepm.metadata import PMPackageMetadata
46 -from gentoopm.basepm.repo import PMRepository
47 -from gentoopm.portagepm.pkg import PortageCPV
48 -
49 -# XXX: cleanup all this mess!
50 -
51 -class PortageDBCPV(PortageCPV):
52 - def __init__(self, cpv, dbapi):
53 - self._cpv = cpv
54 - self._dbapi = dbapi
55 -
56 - @property
57 - def metadata(self):
58 - return PortageDBMetadata(self._cpv, self._dbapi)
59 -
60 - @property
61 - def path(self):
62 - # .findname() gives .ebuild path
63 - return self._dbapi.getpath(self._cpv)
64 -
65 -class PortageDBMetadata(PMPackageMetadata):
66 - def __init__(self, cpv, dbapi):
67 - self._cpv = cpv
68 - self._dbapi = dbapi
69 -
70 - def __getattr__(self, key):
71 - return self._dbapi.aux_get(self._cpv, [key])[0]
72 -
73 - @property
74 - def CATEGORY(self):
75 - return portage.versions.catsplit(self._cpv)[0]
76 -
77 - @property
78 - def PN(self):
79 - return portage.versions.catpkgsplit(self._cpv)[1]
80 -
81 - @property
82 - def PV(self):
83 - return portage.versions.pkgsplit(self._cpv)[1]
84 -
85 - @property
86 - def PR(self):
87 - return portage.versions.pkgsplit(self._cpv)[2]
88 -
89 - @property
90 - def PVR(self):
91 - return portage.versions.cpv_getversion(self._cpv)
92 -
93 -class PortDBRepository(PMRepository):
94 - def __init__(self, dbapi):
95 - self._dbapi = dbapi
96 -
97 - def __iter__(self):
98 - for p in self._dbapi.cpv_all(): # XXX
99 - yield PortageDBCPV(p, self._dbapi)
100 -
101 -class VDBRepository(PortDBRepository):
102 - pass
103
104 diff --git a/gentoopm/portagepm/pkg.py b/gentoopm/portagepm/pkg.py
105 index 8696706..a92af4e 100644
106 --- a/gentoopm/portagepm/pkg.py
107 +++ b/gentoopm/portagepm/pkg.py
108 @@ -10,10 +10,23 @@ from gentoopm.basepm.pkg import PMPackage
109
110 # XXX: cleanup all this mess!
111
112 -class PortageCPV(PMPackage):
113 - def __init__(self, cpv, dbapi, tree):
114 +class PortageDBCPV(PMPackage):
115 + def __init__(self, cpv, dbapi):
116 self._cpv = cpv
117 self._dbapi = dbapi
118 +
119 + @property
120 + def metadata(self):
121 + return PortageDBMetadata(self._cpv, self._dbapi)
122 +
123 + @property
124 + def path(self):
125 + # .findname() gives .ebuild path
126 + return self._dbapi.getpath(self._cpv)
127 +
128 +class PortageCPV(PortageDBCPV):
129 + def __init__(self, cpv, dbapi, tree = None):
130 + PortageDBCPV.__init__(self, cpv, dbapi)
131 self._tree = tree
132
133 @property
134 @@ -35,17 +48,15 @@ class PortageCPV(PMPackage):
135 portage.versions.cpv_getversion(self._cpv),
136 portage.versions.cpv_getversion(other._cpv))
137
138 -class PortageMetadata(PMPackageMetadata):
139 - def __init__(self, cpv, dbapi, tree):
140 +class PortageDBMetadata(PMPackageMetadata):
141 + def __init__(self, cpv, dbapi):
142 self._cpv = cpv
143 self._dbapi = dbapi
144 - self._tree = tree
145
146 def __getattr__(self, key):
147 if key not in self:
148 raise AttributeError('Unsupported metadata key: %s' % key)
149 - return self._dbapi.aux_get(self._cpv, [key],
150 - mytree = self._tree)[0]
151 + return self._dbapi.aux_get(self._cpv, [key])[0]
152
153 @property
154 def CATEGORY(self):
155 @@ -66,3 +77,14 @@ class PortageMetadata(PMPackageMetadata):
156 @property
157 def PVR(self):
158 return portage.versions.cpv_getversion(self._cpv)
159 +
160 +class PortageMetadata(PortageDBMetadata):
161 + def __init__(self, cpv, dbapi, tree):
162 + PortageDBMetadata.__init__(self, cpv, dbapi)
163 + self._tree = tree
164 +
165 + def __getattr__(self, key):
166 + if key not in self:
167 + raise AttributeError('Unsupported metadata key: %s' % key)
168 + return self._dbapi.aux_get(self._cpv, [key],
169 + mytree = self._tree)[0]
170
171 diff --git a/gentoopm/portagepm/repo.py b/gentoopm/portagepm/repo.py
172 index 8203f92..aece5f6 100644
173 --- a/gentoopm/portagepm/repo.py
174 +++ b/gentoopm/portagepm/repo.py
175 @@ -5,8 +5,8 @@
176
177 import os.path
178
179 -from gentoopm.basepm.repo import PMRepositoryDict, PMEbuildRepository
180 -from gentoopm.portagepm.db import PortDBRepository
181 +from gentoopm.basepm.repo import PMRepositoryDict, PMEbuildRepository, \
182 + PMRepository
183 from gentoopm.portagepm.pkg import PortageCPV
184
185 class PortageRepoDict(PMRepositoryDict):
186 @@ -29,6 +29,14 @@ class PortageRepoDict(PMRepositoryDict):
187 def __init__(self, portdbapi):
188 self._dbapi = portdbapi
189
190 +class PortDBRepository(PMRepository):
191 + def __init__(self, dbapi):
192 + self._dbapi = dbapi
193 +
194 + def __iter__(self):
195 + for p in self._dbapi.cpv_all(): # XXX
196 + yield PortageCPV(p, self._dbapi)
197 +
198 class PortageRepository(PortDBRepository, PMEbuildRepository):
199 def __init__(self, repo_obj, portdbapi):
200 self._repo = repo_obj
201 @@ -50,3 +58,6 @@ class PortageRepository(PortDBRepository, PMEbuildRepository):
202
203 def __cmp__(self, other):
204 return cmp(self._repo.priority, other._repo.priority)
205 +
206 +class VDBRepository(PortDBRepository):
207 + pass