1 |
commit: ea265082ce8693c15c196cec6e743347b152341e |
2 |
Author: Michał Górny <mgorny <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Jul 12 08:32:31 2011 +0000 |
4 |
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Jul 12 08:32:31 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoopm.git;a=commit;h=ea265082 |
7 |
|
8 |
Add abstract configuration interface. |
9 |
|
10 |
--- |
11 |
gentoopm/basepm/__init__.py | 9 +++++++++ |
12 |
gentoopm/basepm/config.py | 11 +++++++++++ |
13 |
gentoopm/paludispm/__init__.py | 5 +++++ |
14 |
gentoopm/paludispm/config.py | 10 ++++++++++ |
15 |
gentoopm/pkgcorepm/__init__.py | 5 +++++ |
16 |
gentoopm/pkgcorepm/config.py | 10 ++++++++++ |
17 |
gentoopm/portagepm/__init__.py | 5 +++++ |
18 |
gentoopm/portagepm/config.py | 10 ++++++++++ |
19 |
8 files changed, 65 insertions(+), 0 deletions(-) |
20 |
|
21 |
diff --git a/gentoopm/basepm/__init__.py b/gentoopm/basepm/__init__.py |
22 |
index 10a727c..2e61d2a 100644 |
23 |
--- a/gentoopm/basepm/__init__.py |
24 |
+++ b/gentoopm/basepm/__init__.py |
25 |
@@ -72,3 +72,12 @@ class PackageManager(ABCObject): |
26 |
@type: L{PMAtom} |
27 |
""" |
28 |
pass |
29 |
+ |
30 |
+ @abstractproperty |
31 |
+ def config(self): |
32 |
+ """ |
33 |
+ The PM config instance. |
34 |
+ |
35 |
+ @type: L{PMConfig} |
36 |
+ """ |
37 |
+ pass |
38 |
|
39 |
diff --git a/gentoopm/basepm/config.py b/gentoopm/basepm/config.py |
40 |
new file mode 100644 |
41 |
index 0000000..90dbb67 |
42 |
--- /dev/null |
43 |
+++ b/gentoopm/basepm/config.py |
44 |
@@ -0,0 +1,11 @@ |
45 |
+#!/usr/bin/python |
46 |
+# vim:fileencoding=utf-8 |
47 |
+# (c) 2011 Michał Górny <mgorny@g.o> |
48 |
+# Released under the terms of the 2-clause BSD license. |
49 |
+ |
50 |
+from abc import abstractproperty |
51 |
+ |
52 |
+from gentoopm.util import ABCObject |
53 |
+ |
54 |
+class PMConfig(ABCObject): |
55 |
+ pass |
56 |
|
57 |
diff --git a/gentoopm/paludispm/__init__.py b/gentoopm/paludispm/__init__.py |
58 |
index cb7fc69..a64657e 100644 |
59 |
--- a/gentoopm/paludispm/__init__.py |
60 |
+++ b/gentoopm/paludispm/__init__.py |
61 |
@@ -7,6 +7,7 @@ import functools, paludis |
62 |
|
63 |
from gentoopm.basepm import PackageManager |
64 |
from gentoopm.paludispm.atom import PaludisAtom |
65 |
+from gentoopm.paludispm.config import PaludisConfig |
66 |
from gentoopm.paludispm.repo import PaludisRepoDict, PaludisInstalledRepo, \ |
67 |
PaludisStackRepo |
68 |
|
69 |
@@ -31,3 +32,7 @@ class PaludisPM(PackageManager): |
70 |
@property |
71 |
def Atom(self): |
72 |
return functools.partial(PaludisAtom, env = self._env) |
73 |
+ |
74 |
+ @property |
75 |
+ def config(self): |
76 |
+ return PaludisConfig(self._env) |
77 |
|
78 |
diff --git a/gentoopm/paludispm/config.py b/gentoopm/paludispm/config.py |
79 |
new file mode 100644 |
80 |
index 0000000..f58803f |
81 |
--- /dev/null |
82 |
+++ b/gentoopm/paludispm/config.py |
83 |
@@ -0,0 +1,10 @@ |
84 |
+#!/usr/bin/python |
85 |
+# vim:fileencoding=utf-8 |
86 |
+# (c) 2011 Michał Górny <mgorny@g.o> |
87 |
+# Released under the terms of the 2-clause BSD license. |
88 |
+ |
89 |
+from gentoopm.basepm.config import PMConfig |
90 |
+ |
91 |
+class PaludisConfig(PMConfig): |
92 |
+ def __init__(self, env): |
93 |
+ self._env = env |
94 |
|
95 |
diff --git a/gentoopm/pkgcorepm/__init__.py b/gentoopm/pkgcorepm/__init__.py |
96 |
index daf6bf5..10a5390 100644 |
97 |
--- a/gentoopm/pkgcorepm/__init__.py |
98 |
+++ b/gentoopm/pkgcorepm/__init__.py |
99 |
@@ -7,6 +7,7 @@ from pkgcore.config import load_config |
100 |
|
101 |
from gentoopm.basepm import PackageManager |
102 |
from gentoopm.pkgcorepm.atom import PkgCoreAtom |
103 |
+from gentoopm.pkgcorepm.config import PkgCoreConfig |
104 |
from gentoopm.pkgcorepm.repo import PkgCoreRepoDict, \ |
105 |
PkgCoreInstalledRepo |
106 |
|
107 |
@@ -28,3 +29,7 @@ class PkgCorePM(PackageManager): |
108 |
@property |
109 |
def Atom(self): |
110 |
return PkgCoreAtom |
111 |
+ |
112 |
+ @property |
113 |
+ def config(self): |
114 |
+ return PkgCoreConfig(self._domain) |
115 |
|
116 |
diff --git a/gentoopm/pkgcorepm/config.py b/gentoopm/pkgcorepm/config.py |
117 |
new file mode 100644 |
118 |
index 0000000..3056268 |
119 |
--- /dev/null |
120 |
+++ b/gentoopm/pkgcorepm/config.py |
121 |
@@ -0,0 +1,10 @@ |
122 |
+#!/usr/bin/python |
123 |
+# vim:fileencoding=utf-8 |
124 |
+# (c) 2011 Michał Górny <mgorny@g.o> |
125 |
+# Released under the terms of the 2-clause BSD license. |
126 |
+ |
127 |
+from gentoopm.basepm.config import PMConfig |
128 |
+ |
129 |
+class PkgCoreConfig(PMConfig): |
130 |
+ def __init__(self, domain): |
131 |
+ self._domain = domain |
132 |
|
133 |
diff --git a/gentoopm/portagepm/__init__.py b/gentoopm/portagepm/__init__.py |
134 |
index 6bade14..797a58b 100644 |
135 |
--- a/gentoopm/portagepm/__init__.py |
136 |
+++ b/gentoopm/portagepm/__init__.py |
137 |
@@ -8,6 +8,7 @@ from portage import create_trees |
138 |
|
139 |
from gentoopm.basepm import PackageManager |
140 |
from gentoopm.portagepm.atom import PortageAtom |
141 |
+from gentoopm.portagepm.config import PortageConfig |
142 |
from gentoopm.portagepm.repo import PortageRepoDict, VDBRepository |
143 |
|
144 |
class PortagePM(PackageManager): |
145 |
@@ -33,3 +34,7 @@ class PortagePM(PackageManager): |
146 |
@property |
147 |
def Atom(self): |
148 |
return PortageAtom |
149 |
+ |
150 |
+ @property |
151 |
+ def config(self): |
152 |
+ return PortageConfig(self._portdb.settings) |
153 |
|
154 |
diff --git a/gentoopm/portagepm/config.py b/gentoopm/portagepm/config.py |
155 |
new file mode 100644 |
156 |
index 0000000..5f80506 |
157 |
--- /dev/null |
158 |
+++ b/gentoopm/portagepm/config.py |
159 |
@@ -0,0 +1,10 @@ |
160 |
+#!/usr/bin/python |
161 |
+# vim:fileencoding=utf-8 |
162 |
+# (c) 2011 Michał Górny <mgorny@g.o> |
163 |
+# Released under the terms of the 2-clause BSD license. |
164 |
+ |
165 |
+from gentoopm.basepm.config import PMConfig |
166 |
+ |
167 |
+class PortageConfig(PMConfig): |
168 |
+ def __init__(self, settings): |
169 |
+ self._settings = settings |