Gentoo Archives: gentoo-commits

From: Jauhien Piatlicki <piatlicki@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/
Date: Wed, 31 Jul 2013 23:29:35
Message-Id: 1375313363.e21df5236b0ffa8c8cf14e41c5a3da241d883ba4.jauhien@gentoo
1 commit: e21df5236b0ffa8c8cf14e41c5a3da241d883ba4
2 Author: Jauhien Piatlicki (jauhien) <piatlicki <AT> gmail <DOT> com>
3 AuthorDate: Wed Jul 31 23:29:23 2013 +0000
4 Commit: Jauhien Piatlicki <piatlicki <AT> gmail <DOT> com>
5 CommitDate: Wed Jul 31 23:29:23 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=e21df523
7
8 g_sorcery/backend: Docstrings
9
10 ---
11 g_sorcery/backend.py | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++
12 1 file changed, 130 insertions(+)
13
14 diff --git a/g_sorcery/backend.py b/g_sorcery/backend.py
15 index 97c36ce..e38eba7 100644
16 --- a/g_sorcery/backend.py
17 +++ b/g_sorcery/backend.py
18 @@ -87,6 +87,17 @@ class Backend(object):
19 self.logger = Logger()
20
21 def _get_overlay(self, args, config, global_config):
22 + """
23 + Get an overlay directory.
24 +
25 + Args:
26 + args: Command line arguments.
27 + config: Backend config.
28 + global_config: g-sorcery config.
29 +
30 + Returns:
31 + Overlay directory.
32 + """
33 overlay = args.overlay
34 if not overlay:
35 if not 'default_overlay' in config:
36 @@ -98,6 +109,17 @@ class Backend(object):
37 return overlay
38
39 def _get_package_db(self, args, config, global_config):
40 + """
41 + Get package database object.
42 +
43 + Args:
44 + args: Command line arguments.
45 + config: Backend config.
46 + global_config: g-sorcery config.
47 +
48 + Returns:
49 + Package database object.
50 + """
51 overlay = self._get_overlay(args, config, global_config)
52 backend_path = os.path.join(overlay, self.sorcery_dir, config["package"])
53 repository = args.repository
54 @@ -105,6 +127,17 @@ class Backend(object):
55 return pkg_db
56
57 def sync(self, args, config, global_config):
58 + """
59 + Synchronize or generate local database.
60 +
61 + Args:
62 + args: Command line arguments.
63 + config: Backend config.
64 + global_config: g-sorcery config.
65 +
66 + Returns:
67 + Exit status.
68 + """
69 overlay = self._get_overlay(args, config, global_config)
70 backend_path = os.path.join(overlay, self.sorcery_dir, config["package"])
71 repository = args.repository
72 @@ -139,6 +172,17 @@ class Backend(object):
73 return 0
74
75 def list(self, args, config, global_config):
76 + """
77 + List all available packages.
78 +
79 + Args:
80 + args: Command line arguments.
81 + config: Backend config.
82 + global_config: g-sorcery config.
83 +
84 + Returns:
85 + Exit status.
86 + """
87 pkg_db = self._get_package_db(args, config, global_config)
88 pkg_db.read()
89 try:
90 @@ -160,6 +204,17 @@ class Backend(object):
91 return 0
92
93 def generate(self, args, config, global_config):
94 + """
95 + Generate ebuilds for a given package and all its dependecies.
96 +
97 + Args:
98 + args: Command line arguments.
99 + config: Backend config.
100 + global_config: g-sorcery config.
101 +
102 + Returns:
103 + Exit status.
104 + """
105 overlay = self._get_overlay(args, config, global_config)
106 pkg_db = self._get_package_db(args, config, global_config)
107 pkg_db.read()
108 @@ -218,6 +273,16 @@ class Backend(object):
109 return 0
110
111 def generate_ebuilds(self, package_db, overlay, packages, digest=False):
112 + """
113 + Generate ebuilds for given packages.
114 +
115 + Args:
116 + package_db: Package database
117 + overlay: Overlay directory.
118 + packages: List of packages.
119 + digest: whether sources should be digested in Manifest.
120 + """
121 +
122 self.logger.info("ebuild generation")
123 if digest:
124 ebuild_g = self.ebuild_g_with_digest_class(package_db)
125 @@ -237,6 +302,14 @@ class Backend(object):
126
127
128 def generate_metadatas(self, package_db, overlay, packages):
129 + """
130 + Generate metada files for given packages.
131 +
132 + Args:
133 + package_db: Package database
134 + overlay: Overlay directory.
135 + packages: List of packages.
136 + """
137 self.logger.info("metadata generation")
138 metadata_g = self.metadata_g_class(package_db)
139 for package in packages:
140 @@ -248,6 +321,13 @@ class Backend(object):
141 f.write('\n'.join(source))
142
143 def generate_eclasses(self, overlay, eclasses):
144 + """
145 + Generate given eclasses.
146 +
147 + Args:
148 + overlay: Overlay directory.
149 + eclasses: List of eclasses.
150 + """
151 self.logger.info("eclasses generation")
152 eclass_g = self.eclass_g_class()
153 path = os.path.join(overlay, 'eclass')
154 @@ -261,6 +341,21 @@ class Backend(object):
155
156
157 def solve_dependencies(self, package_db, package, solved_deps=None, unsolved_deps=None):
158 + """
159 + Solve dependencies.
160 +
161 + Args:
162 + package_db: Package database.
163 + package: A package we want to solve dependencies for.
164 + solved_deps: List of solved dependencies.
165 + unsolved_deps: List of dependencies to be solved.
166 +
167 + Returns:
168 + A pair (solved_deps, unsolved_deps).
169 +
170 + Note:
171 + Each dependency is an object of class g_collections.Dependency.
172 + """
173 if not solved_deps:
174 solved_deps = set()
175 if not unsolved_deps:
176 @@ -297,6 +392,12 @@ class Backend(object):
177
178
179 def digest(self, overlay):
180 + """
181 + Digest an overlay using repoman.
182 +
183 + Args:
184 + overlay: Overlay directory.
185 + """
186 self.logger.info("digesting overlay")
187 prev = os.getcwd()
188 os.chdir(overlay)
189 @@ -305,12 +406,30 @@ class Backend(object):
190 os.chdir(prev)
191
192 def fast_digest(self, overlay, pkgnames):
193 + """
194 + Digest an overlay using custom method faster than repoman.
195 +
196 + Args:
197 + overlay: Overlay directory.
198 + pkgnames: List of full package names (category/package).
199 + """
200 self.logger.info("fast digesting overlay")
201 for pkgname in pkgnames:
202 directory = os.path.join(overlay, pkgname)
203 fast_manifest(directory)
204
205 def generate_tree(self, args, config, global_config):
206 + """
207 + Generate entire overlay.
208 +
209 + Args:
210 + args: Command line arguments.
211 + config: Backend config.
212 + global_config: g-sorcery config.
213 +
214 + Returns:
215 + Exit status.
216 + """
217 self.logger.info("tree generation")
218 overlay = self._get_overlay(args, config, global_config)
219 pkg_db = self._get_package_db(args, config, global_config)
220 @@ -360,6 +479,17 @@ class Backend(object):
221 self.fast_digest(overlay, pkgnames)
222
223 def install(self, args, config, global_config):
224 + """
225 + Install a package.
226 +
227 + Args:
228 + args: Command line arguments.
229 + config: Backend config.
230 + global_config: g-sorcery config.
231 +
232 + Returns:
233 + Exit status.
234 + """
235 self.generate(args, config, global_config)
236 try:
237 package_manager = global_config.get("main", "package_manager")