Gentoo Archives: gentoo-commits

From: Brian Dolbec <brian.dolbec@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:repoman commit in: pym/repoman/checks/ebuilds/, pym/repoman/checks/herds/, ...
Date: Wed, 01 Oct 2014 23:46:47
Message-Id: 1412207134.b0cc44e4e57948421b474ad6693c6aa3994b6555.dol-sen@gentoo
1 commit: b0cc44e4e57948421b474ad6693c6aa3994b6555
2 Author: Tom Wijsman <tomwij <AT> gentoo <DOT> org>
3 AuthorDate: Fri Jun 6 12:24:18 2014 +0000
4 Commit: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
5 CommitDate: Wed Oct 1 23:45:34 2014 +0000
6 URL: http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=b0cc44e4
7
8 repoman: Apply PEP 8 guidelines again (except for W191)
9
10 ---
11 pym/repoman/_portage.py | 1 -
12 pym/repoman/_xml.py | 6 --
13 pym/repoman/checks/directories/files.py | 17 ++--
14 pym/repoman/checks/ebuilds/checks.py | 2 +-
15 pym/repoman/checks/ebuilds/eclasses/live.py | 2 +-
16 pym/repoman/checks/ebuilds/eclasses/ruby.py | 2 +-
17 pym/repoman/checks/ebuilds/fetches.py | 29 ++++---
18 pym/repoman/checks/ebuilds/isebuild.py | 6 +-
19 pym/repoman/checks/ebuilds/manifests.py | 7 +-
20 pym/repoman/checks/ebuilds/misc.py | 11 ++-
21 pym/repoman/checks/ebuilds/pkgmetadata.py | 42 ++++-----
22 pym/repoman/checks/ebuilds/thirdpartymirrors.py | 8 +-
23 pym/repoman/checks/ebuilds/use_flags.py | 5 --
24 pym/repoman/checks/herds/metadata.py | 4 -
25 pym/repoman/ebuild.py | 6 +-
26 pym/repoman/errors.py | 2 -
27 pym/repoman/main.py | 109 ++++++++++++++----------
28 pym/repoman/qa_data.py | 4 -
29 pym/repoman/qa_tracker.py | 13 ++-
30 pym/repoman/repos.py | 35 ++++----
31 pym/repoman/scan.py | 18 ++--
32 pym/repoman/vcs/vcs.py | 10 ++-
33 pym/repoman/vcs/vcsstatus.py | 17 ++--
34 23 files changed, 169 insertions(+), 187 deletions(-)
35
36 diff --git a/pym/repoman/_portage.py b/pym/repoman/_portage.py
37 index e72ce9f..0f611f7 100644
38 --- a/pym/repoman/_portage.py
39 +++ b/pym/repoman/_portage.py
40 @@ -23,4 +23,3 @@ sys.path.insert(0, pym_path)
41 import portage
42 portage._internal_caller = True
43 portage._disable_legacy_globals()
44 -
45
46 diff --git a/pym/repoman/_xml.py b/pym/repoman/_xml.py
47 index d5b5a5e..7bf6698 100644
48 --- a/pym/repoman/_xml.py
49 +++ b/pym/repoman/_xml.py
50 @@ -15,7 +15,6 @@ from repoman._subprocess import repoman_getstatusoutput
51
52 class _XMLParser(xml.etree.ElementTree.XMLParser):
53
54 -
55 def __init__(self, data, **kwargs):
56 xml.etree.ElementTree.XMLParser.__init__(self, **kwargs)
57 self._portage_data = data
58 @@ -27,13 +26,11 @@ class _XMLParser(xml.etree.ElementTree.XMLParser):
59 self.parser.StartDoctypeDeclHandler = \
60 self._portage_StartDoctypeDeclHandler
61
62 -
63 def _portage_XmlDeclHandler(self, version, encoding, standalone):
64 if self._base_XmlDeclHandler is not None:
65 self._base_XmlDeclHandler(version, encoding, standalone)
66 self._portage_data["XML_DECLARATION"] = (version, encoding, standalone)
67
68 -
69 def _portage_StartDoctypeDeclHandler(
70 self, doctypeName, systemId, publicId, has_internal_subset):
71 if self._base_StartDoctypeDeclHandler is not None:
72 @@ -61,7 +58,6 @@ class XmlLint(object):
73 self.binary = None
74 self._check_capable()
75
76 -
77 def _check_capable(self):
78 if self.options.mode == "manifest":
79 return
80 @@ -74,12 +70,10 @@ class XmlLint(object):
81 # this can be problematic if xmllint changes their output
82 self._is_capable = True
83
84 -
85 @property
86 def capable(self):
87 return self._is_capable
88
89 -
90 def check(self, checkdir, repolevel):
91 '''Runs checks on the package metadata.xml file
92
93
94 diff --git a/pym/repoman/checks/directories/files.py b/pym/repoman/checks/directories/files.py
95 index 87220c0..b1d77df 100644
96 --- a/pym/repoman/checks/directories/files.py
97 +++ b/pym/repoman/checks/directories/files.py
98 @@ -13,8 +13,8 @@ from repoman.vcs.vcs import vcs_new_changed
99
100 class FileChecks(object):
101
102 - def __init__(self, qatracker, repoman_settings, repo_settings, portdb,
103 - vcs_settings):
104 + def __init__(
105 + self, qatracker, repoman_settings, repo_settings, portdb, vcs_settings):
106 '''
107 @param qatracker: QATracker instance
108 @param repoman_settings: settings instance
109 @@ -27,7 +27,6 @@ class FileChecks(object):
110 self.repoman_settings = repoman_settings
111 self.vcs_settings = vcs_settings
112
113 -
114 def check(self, checkdir, checkdirlist, checkdir_relative, changed, new):
115 '''Checks the ebuild sources and files for errors
116
117 @@ -48,10 +47,12 @@ class FileChecks(object):
118 # prohibited characters). See bug #406877.
119 index = -1
120 if index != -1:
121 - self.qatracker.add_error("file.name",
122 + self.qatracker.add_error(
123 + "file.name",
124 "%s/%s: char '%s'" % (checkdir, y_file, y_file[index]))
125
126 - if not (y_file in ("ChangeLog", "metadata.xml")
127 + if not (
128 + y_file in ("ChangeLog", "metadata.xml")
129 or y_file.endswith(".ebuild")):
130 continue
131 f = None
132 @@ -70,10 +71,10 @@ class FileChecks(object):
133 line += l2
134 if l2 != 0:
135 s = s[s.rfind("\n") + 1:]
136 - self.qatracker.add_error("file.UTF8",
137 - "%s/%s: line %i, just after: '%s'" % (checkdir, y_file, line, s))
138 + self.qatracker.add_error(
139 + "file.UTF8", "%s/%s: line %i, just after: '%s'" % (
140 + checkdir, y_file, line, s))
141 finally:
142 if f is not None:
143 f.close()
144 return
145 -
146
147 diff --git a/pym/repoman/checks/ebuilds/checks.py b/pym/repoman/checks/ebuilds/checks.py
148 index 890cd18..27d8942 100644
149 --- a/pym/repoman/checks/ebuilds/checks.py
150 +++ b/pym/repoman/checks/ebuilds/checks.py
151 @@ -518,7 +518,7 @@ class InheritEclass(LineCheck):
152
153 def end(self):
154 if not self._disabled and self._comprehensive and self._inherit \
155 - and not self._func_call:
156 + and not self._func_call:
157 self.repoman_check_name = 'inherit.unused'
158 yield 'no function called from %s.eclass; please drop' % self._eclass
159
160
161 diff --git a/pym/repoman/checks/ebuilds/eclasses/live.py b/pym/repoman/checks/ebuilds/eclasses/live.py
162 index 20c573e..bf14cff 100644
163 --- a/pym/repoman/checks/ebuilds/eclasses/live.py
164 +++ b/pym/repoman/checks/ebuilds/eclasses/live.py
165 @@ -36,4 +36,4 @@ class LiveEclassChecks(object):
166
167 good_keywords_exist = len(bad_stable_keywords) < len(keywords)
168 if good_keywords_exist and not has_global_mask(pkg, global_pmaskdict):
169 - self.qatracker.add_error("LIVEVCS.unmasked", ebuild.relative_path)
170 \ No newline at end of file
171 + self.qatracker.add_error("LIVEVCS.unmasked", ebuild.relative_path)
172
173 diff --git a/pym/repoman/checks/ebuilds/eclasses/ruby.py b/pym/repoman/checks/ebuilds/eclasses/ruby.py
174 index abfb166..e8d36ea 100644
175 --- a/pym/repoman/checks/ebuilds/eclasses/ruby.py
176 +++ b/pym/repoman/checks/ebuilds/eclasses/ruby.py
177 @@ -29,4 +29,4 @@ class RubyEclassChecks(object):
178 self.qatracker.add_error(
179 "IUSE.rubydeprecated",
180 (ebuild.relative_path + ": Deprecated ruby target: %s")
181 - % myruby)
182 \ No newline at end of file
183 + % myruby)
184
185 diff --git a/pym/repoman/checks/ebuilds/fetches.py b/pym/repoman/checks/ebuilds/fetches.py
186 index 22e89b6..53ed64f 100644
187 --- a/pym/repoman/checks/ebuilds/fetches.py
188 +++ b/pym/repoman/checks/ebuilds/fetches.py
189 @@ -16,8 +16,8 @@ from repoman.vcs.vcs import vcs_new_changed
190 class FetchChecks(object):
191 '''Performs checks on the files needed for the ebuild'''
192
193 - def __init__(self, qatracker, repoman_settings, repo_settings, portdb,
194 - vcs_settings):
195 + def __init__(
196 + self, qatracker, repoman_settings, repo_settings, portdb, vcs_settings):
197 '''
198 @param qatracker: QATracker instance
199 @param repoman_settings: settings instance
200 @@ -31,7 +31,6 @@ class FetchChecks(object):
201 self.vcs_settings = vcs_settings
202 self._digests = None
203
204 -
205 def check(self, xpkg, checkdir, checkdir_relative, mychanged, mynew):
206 '''Checks the ebuild sources and files for errors
207
208 @@ -40,7 +39,8 @@ class FetchChecks(object):
209 @param checkdir_relative: repolevel determined path
210 '''
211 self.checkdir = checkdir
212 - fetchlist_dict = portage.FetchlistDict(checkdir, self.repoman_settings, self.portdb)
213 + fetchlist_dict = portage.FetchlistDict(
214 + checkdir, self.repoman_settings, self.portdb)
215 myfiles_all = []
216 self.src_uri_error = False
217 for mykey in fetchlist_dict:
218 @@ -54,8 +54,8 @@ class FetchChecks(object):
219 # This will be reported as an "ebuild.syntax" error.
220 pass
221 else:
222 - self.qatracker.add_error("SRC_URI.syntax",
223 - "%s.ebuild SRC_URI: %s" % (mykey, e))
224 + self.qatracker.add_error(
225 + "SRC_URI.syntax", "%s.ebuild SRC_URI: %s" % (mykey, e))
226 del fetchlist_dict
227 if not self.src_uri_error:
228 # This test can produce false positives if SRC_URI could not
229 @@ -102,26 +102,29 @@ class FetchChecks(object):
230 # File size between 20 KiB and 60 KiB causes a warning,
231 # while file size over 60 KiB causes an error.
232 elif mystat.st_size > 61440:
233 - self.qatracker.add_error("file.size.fatal",
234 - "(%d KiB) %s/files/%s" % (mystat.st_size // 1024, xpkg, y))
235 + self.qatracker.add_error(
236 + "file.size.fatal", "(%d KiB) %s/files/%s" % (
237 + mystat.st_size // 1024, xpkg, y))
238 elif mystat.st_size > 20480:
239 - self.qatracker.add_error("file.size",
240 - "(%d KiB) %s/files/%s" % (mystat.st_size // 1024, xpkg, y))
241 + self.qatracker.add_error(
242 + "file.size", "(%d KiB) %s/files/%s" % (
243 + mystat.st_size // 1024, xpkg, y))
244
245 index = self.repo_settings.repo_config.find_invalid_path_char(y)
246 if index != -1:
247 y_relative = os.path.join(checkdir_relative, "files", y)
248 - if self.vcs_settings.vcs is not None and not vcs_new_changed(y_relative, mychanged, mynew):
249 + if self.vcs_settings.vcs is not None \
250 + and not vcs_new_changed(y_relative, mychanged, mynew):
251 # If the file isn't in the VCS new or changed set, then
252 # assume that it's an irrelevant temporary file (Manifest
253 # entries are not generated for file names containing
254 # prohibited characters). See bug #406877.
255 index = -1
256 if index != -1:
257 - self.qatracker.add_error("file.name",
258 + self.qatracker.add_error(
259 + "file.name",
260 "%s/files/%s: char '%s'" % (checkdir, y, y[index]))
261
262 -
263 @property
264 def digests(self):
265 '''Property function, returns the saved digests or
266
267 diff --git a/pym/repoman/checks/ebuilds/isebuild.py b/pym/repoman/checks/ebuilds/isebuild.py
268 index 065914e..f0c9a48 100644
269 --- a/pym/repoman/checks/ebuilds/isebuild.py
270 +++ b/pym/repoman/checks/ebuilds/isebuild.py
271 @@ -14,14 +14,12 @@ from repoman.qa_data import no_exec, allvars
272
273 class IsEbuild(object):
274
275 -
276 def __init__(self, repoman_settings, repo_settings, portdb, qatracker):
277 ''''''
278 self.portdb = portdb
279 self.qatracker = qatracker
280 - self.root_config = RootConfig(repoman_settings,
281 - repo_settings.trees[repo_settings.root], None)
282 -
283 + self.root_config = RootConfig(
284 + repoman_settings, repo_settings.trees[repo_settings.root], None)
285
286 def check(self, checkdirlist, checkdir, xpkg):
287 self.continue_ = False
288
289 diff --git a/pym/repoman/checks/ebuilds/manifests.py b/pym/repoman/checks/ebuilds/manifests.py
290 index 1d65e1d..3b8dec5 100644
291 --- a/pym/repoman/checks/ebuilds/manifests.py
292 +++ b/pym/repoman/checks/ebuilds/manifests.py
293 @@ -12,14 +12,12 @@ from portage.util import writemsg_level
294
295 class Manifests(object):
296
297 -
298 def __init__(self, options, qatracker=None, repoman_settings=None):
299 self.options = options
300 self.qatracker = qatracker
301 self.repoman_settings = repoman_settings
302 self.generated_manifest = False
303
304 -
305 def run(self, checkdir, portdb):
306 self.generated_manifest = False
307 self.digest_only = self.options.mode != 'manifest-check' \
308 @@ -45,7 +43,8 @@ class Manifests(object):
309 level=logging.ERROR, noiselevel=-1)
310
311 if not self.generated_manifest:
312 - writemsg_level("Unable to generate manifest.",
313 + writemsg_level(
314 + "Unable to generate manifest.",
315 level=logging.ERROR, noiselevel=-1)
316 failed = True
317
318 @@ -75,7 +74,6 @@ class Manifests(object):
319 sys.exit(1)
320 return False
321
322 -
323 def create_manifest(self, checkdir, fetchlist_dict):
324 try:
325 distdir = self.repoman_settings['DISTDIR']
326 @@ -95,7 +93,6 @@ class Manifests(object):
327 finally:
328 portage._doebuild_manifest_exempt_depend -= 1
329
330 -
331 def digest_check(self, xpkg, checkdir):
332 self.repoman_settings['O'] = checkdir
333 self.repoman_settings['PORTAGE_QUIET'] = '1'
334
335 diff --git a/pym/repoman/checks/ebuilds/misc.py b/pym/repoman/checks/ebuilds/misc.py
336 index 744784a..d735542 100644
337 --- a/pym/repoman/checks/ebuilds/misc.py
338 +++ b/pym/repoman/checks/ebuilds/misc.py
339 @@ -28,13 +28,13 @@ def bad_split_check(xpkg, y_ebuild, pkgdir, qatracker):
340 is_pv_toolong2 = pv_toolong_re.search(myesplit[2])
341
342 if is_pv_toolong or is_pv_toolong2:
343 - qatracker.add_error("ebuild.invalidname",
344 - xpkg + "/" + y_ebuild + ".ebuild")
345 + qatracker.add_error(
346 + "ebuild.invalidname", xpkg + "/" + y_ebuild + ".ebuild")
347 return True
348 elif myesplit[0] != pkgdir:
349 print(pkgdir, myesplit[0])
350 - qatracker.add_error("ebuild.namenomatch",
351 - xpkg + "/" + y_ebuild + ".ebuild")
352 + qatracker.add_error(
353 + "ebuild.namenomatch", xpkg + "/" + y_ebuild + ".ebuild")
354 return True
355 return False
356
357 @@ -49,7 +49,6 @@ def pkg_invalid(pkg, qatracker, ebuild):
358 if pkg.invalid:
359 for k, msgs in pkg.invalid.items():
360 for msg in msgs:
361 - qatracker.add_error(k,
362 - "%s: %s" % (ebuild.relative_path, msg))
363 + qatracker.add_error(k, "%s: %s" % (ebuild.relative_path, msg))
364 return True
365 return False
366
367 diff --git a/pym/repoman/checks/ebuilds/pkgmetadata.py b/pym/repoman/checks/ebuilds/pkgmetadata.py
368 index 674d32f..8dc3f60 100644
369 --- a/pym/repoman/checks/ebuilds/pkgmetadata.py
370 +++ b/pym/repoman/checks/ebuilds/pkgmetadata.py
371 @@ -28,7 +28,8 @@ from portage import os
372 from portage import _encodings, _unicode_encode
373 from portage.dep import Atom
374
375 -from repoman.metadata import (metadata_xml_encoding, metadata_doctype_name,
376 +from repoman.metadata import (
377 + metadata_xml_encoding, metadata_doctype_name,
378 metadata_dtd_uri, metadata_xml_declaration, parse_metadata_use)
379 from repoman.checks.herds.herdbase import get_herd_base
380 from repoman.checks.herds.metadata import check_metadata, UnknownHerdsError
381 @@ -51,8 +52,6 @@ class PkgMetadata(object):
382 self.musedict = {}
383 self.xmllint = XmlLint(self.options, self.repoman_settings)
384
385 -
386 -
387 def check(self, xpkg, checkdir, checkdirlist, repolevel):
388 '''Performs the checks on the metadata.xml for the package
389
390 @@ -91,8 +90,8 @@ class PkgMetadata(object):
391 pass
392 else:
393 if "XML_DECLARATION" not in xml_info:
394 - self.qatracker.add_error("metadata.bad",
395 - "%s/metadata.xml: "
396 + self.qatracker.add_error(
397 + "metadata.bad", "%s/metadata.xml: "
398 "xml declaration is missing on first line, "
399 "should be '%s'" % (xpkg, metadata_xml_declaration))
400 else:
401 @@ -104,14 +103,15 @@ class PkgMetadata(object):
402 encoding_problem = "but it is undefined"
403 else:
404 encoding_problem = "not '%s'" % xml_encoding
405 - self.qatracker.add_error("metadata.bad",
406 - "%s/metadata.xml: "
407 + self.qatracker.add_error(
408 + "metadata.bad", "%s/metadata.xml: "
409 "xml declaration encoding should be '%s', %s" %
410 (xpkg, metadata_xml_encoding, encoding_problem))
411
412 if "DOCTYPE" not in xml_info:
413 metadata_bad = True
414 - self.qatracker.add_error("metadata.bad",
415 + self.qatracker.add_error(
416 + "metadata.bad",
417 "%s/metadata.xml: %s" % (xpkg, "DOCTYPE is missing"))
418 else:
419 doctype_name, doctype_system, doctype_pubid = \
420 @@ -121,14 +121,14 @@ class PkgMetadata(object):
421 system_problem = "but it is undefined"
422 else:
423 system_problem = "not '%s'" % doctype_system
424 - self.qatracker.add_error("metadata.bad",
425 - "%s/metadata.xml: "
426 + self.qatracker.add_error(
427 + "metadata.bad", "%s/metadata.xml: "
428 "DOCTYPE: SYSTEM should refer to '%s', %s" %
429 (xpkg, metadata_dtd_uri, system_problem))
430
431 if doctype_name != metadata_doctype_name:
432 - self.qatracker.add_error("metadata.bad",
433 - "%s/metadata.xml: "
434 + self.qatracker.add_error(
435 + "metadata.bad", "%s/metadata.xml: "
436 "DOCTYPE: name should be '%s', not '%s'" %
437 (xpkg, metadata_doctype_name, doctype_name))
438
439 @@ -137,8 +137,8 @@ class PkgMetadata(object):
440 self.musedict = parse_metadata_use(_metadata_xml)
441 except portage.exception.ParseError as e:
442 metadata_bad = True
443 - self.qatracker.add_error("metadata.bad",
444 - "%s/metadata.xml: %s" % (xpkg, e))
445 + self.qatracker.add_error(
446 + "metadata.bad", "%s/metadata.xml: %s" % (xpkg, e))
447 else:
448 for atom in chain(*self.musedict.values()):
449 if atom is None:
450 @@ -146,22 +146,24 @@ class PkgMetadata(object):
451 try:
452 atom = Atom(atom)
453 except InvalidAtom as e:
454 - self.qatracker.add_error("metadata.bad",
455 + self.qatracker.add_error(
456 + "metadata.bad",
457 "%s/metadata.xml: Invalid atom: %s" % (xpkg, e))
458 else:
459 if atom.cp != xpkg:
460 - self.qatracker.add_error("metadata.bad",
461 + self.qatracker.add_error(
462 + "metadata.bad",
463 "%s/metadata.xml: Atom contains "
464 "unexpected cat/pn: %s" % (xpkg, atom))
465
466 # Run other metadata.xml checkers
467 try:
468 - check_metadata(_metadata_xml,
469 - get_herd_base(self.repoman_settings))
470 + check_metadata(_metadata_xml, get_herd_base(
471 + self.repoman_settings))
472 except (UnknownHerdsError, ) as e:
473 metadata_bad = True
474 - self.qatracker.add_error("metadata.bad",
475 - "%s/metadata.xml: %s" % (xpkg, e))
476 + self.qatracker.add_error(
477 + "metadata.bad", "%s/metadata.xml: %s" % (xpkg, e))
478 del e
479
480 # Only carry out if in package directory or check forced
481
482 diff --git a/pym/repoman/checks/ebuilds/thirdpartymirrors.py b/pym/repoman/checks/ebuilds/thirdpartymirrors.py
483 index 50a0da8..061e71f 100644
484 --- a/pym/repoman/checks/ebuilds/thirdpartymirrors.py
485 +++ b/pym/repoman/checks/ebuilds/thirdpartymirrors.py
486 @@ -17,7 +17,6 @@ class ThirdPartyMirrors(object):
487
488 self.qatracker = qatracker
489
490 -
491 def check(self, myaux, relative_path):
492 # Check that URIs don't reference a server from thirdpartymirrors.
493 for uri in portage.dep.use_reduce(
494 @@ -32,7 +31,8 @@ class ThirdPartyMirrors(object):
495 continue
496
497 new_uri = "mirror://%s/%s" % (mirror_alias, uri[len(mirror):])
498 - self.qatracker.add_error("SRC_URI.mirror",
499 - "%s: '%s' found in thirdpartymirrors, use '%s'" %
500 - (relative_path, mirror, new_uri))
501 + self.qatracker.add_error(
502 + "SRC_URI.mirror",
503 + "%s: '%s' found in thirdpartymirrors, use '%s'" % (
504 + relative_path, mirror, new_uri))
505 return
506
507 diff --git a/pym/repoman/checks/ebuilds/use_flags.py b/pym/repoman/checks/ebuilds/use_flags.py
508 index d63ae6d..73680d0 100644
509 --- a/pym/repoman/checks/ebuilds/use_flags.py
510 +++ b/pym/repoman/checks/ebuilds/use_flags.py
511 @@ -24,7 +24,6 @@ class USEFlagChecks(object):
512 self.defaultUseFlags = []
513 self.usedUseFlags = set()
514
515 -
516 def check(self, pkg, package, ebuild, y_ebuild, localUseFlags):
517 '''Perform the check.
518
519 @@ -42,12 +41,10 @@ class USEFlagChecks(object):
520 self._checkMetadata(package, ebuild, y_ebuild, localUseFlags)
521 self._checkRequiredUSE(pkg, ebuild)
522
523 -
524 def getUsedUseFlags(self):
525 '''Get the USE flags that this check has seen'''
526 return self.usedUseFlags
527
528 -
529 def _checkGlobal(self, pkg):
530 for myflag in pkg._metadata["IUSE"].split():
531 flag_name = myflag.lstrip("+-")
532 @@ -57,7 +54,6 @@ class USEFlagChecks(object):
533 if flag_name not in self.globalUseFlags:
534 self.useFlags.append(flag_name)
535
536 -
537 def _checkMetadata(self, package, ebuild, y_ebuild, localUseFlags):
538 for mypos in range(len(self.useFlags) - 1, -1, -1):
539 if self.useFlags[mypos] and (self.useFlags[mypos] in localUseFlags):
540 @@ -75,7 +71,6 @@ class USEFlagChecks(object):
541 "IUSE.invalid",
542 "%s/%s.ebuild: %s" % (package, y_ebuild, self.useFlags[mypos]))
543
544 -
545 def _checkRequiredUSE(self, pkg, ebuild):
546 required_use = pkg._metadata["REQUIRED_USE"]
547 if required_use:
548
549 diff --git a/pym/repoman/checks/herds/metadata.py b/pym/repoman/checks/herds/metadata.py
550 index ef0c9d0..3c67fcf 100644
551 --- a/pym/repoman/checks/herds/metadata.py
552 +++ b/pym/repoman/checks/herds/metadata.py
553 @@ -1,7 +1,5 @@
554
555
556 -
557 -
558 class UnknownHerdsError(ValueError):
559 def __init__(self, herd_names):
560 _plural = len(herd_names) != 1
561 @@ -25,5 +23,3 @@ def check_metadata_herds(xml_tree, herd_base):
562 def check_metadata(xml_tree, herd_base):
563 if herd_base is not None:
564 check_metadata_herds(xml_tree, herd_base)
565 -
566 -
567
568 diff --git a/pym/repoman/ebuild.py b/pym/repoman/ebuild.py
569 index fbe25a9..1dddfb9 100644
570 --- a/pym/repoman/ebuild.py
571 +++ b/pym/repoman/ebuild.py
572 @@ -6,7 +6,8 @@ from portage import os
573 class Ebuild(object):
574 '''Class to run primary checks on ebuilds'''
575
576 - def __init__(self, repo_settings, repolevel, pkgdir, catdir, vcs_settings, x, y):
577 + def __init__(
578 + self, repo_settings, repolevel, pkgdir, catdir, vcs_settings, x, y):
579 self.vcs_settings = vcs_settings
580 self.relative_path = os.path.join(x, y + ".ebuild")
581 self.full_path = os.path.join(repo_settings.repodir, self.relative_path)
582 @@ -17,7 +18,6 @@ class Ebuild(object):
583 self.ebuild_path = os.path.join(catdir, self.ebuild_path)
584 self.ebuild_path = os.path.join(".", self.ebuild_path)
585
586 -
587 def untracked(self, check_ebuild_notadded, y, eadded):
588 do_check = self.vcs_settings.vcs in ("cvs", "svn", "bzr")
589 really_notadded = check_ebuild_notadded and y not in eadded
590 @@ -26,5 +26,3 @@ class Ebuild(object):
591 # ebuild not added to vcs
592 return True
593 return False
594 -
595 -
596
597 diff --git a/pym/repoman/errors.py b/pym/repoman/errors.py
598 index dff6547..305eece 100644
599 --- a/pym/repoman/errors.py
600 +++ b/pym/repoman/errors.py
601 @@ -17,5 +17,3 @@ def caterror(catdir, repodir):
602 " Skipping QA checks in this directory.\n"
603 "Please ensure that you add %s to %s/profiles/categories\n"
604 "if it is a new category." % (catdir, catdir, repodir))
605 -
606 -
607
608 diff --git a/pym/repoman/main.py b/pym/repoman/main.py
609 index e338d82..ecdecfa 100755
610 --- a/pym/repoman/main.py
611 +++ b/pym/repoman/main.py
612 @@ -132,8 +132,9 @@ vcs_settings = VCSSettings(options, repoman_settings)
613
614 ##################
615
616 -repo_settings = RepoSettings(config_root, portdir, portdir_overlay,
617 - repoman_settings, vcs_settings, options, qawarnings)
618 +repo_settings = RepoSettings(
619 + config_root, portdir, portdir_overlay,
620 + repoman_settings, vcs_settings, options, qawarnings)
621
622 repoman_settings = repo_settings.repoman_settings
623
624 @@ -204,12 +205,14 @@ if repolevel == 1:
625 startdir = repo_settings.repodir
626 else:
627 startdir = normalize_path(mydir)
628 - startdir = os.path.join(repo_settings.repodir, *startdir.split(os.sep)[-2 - repolevel + 3:])
629 + startdir = os.path.join(
630 + repo_settings.repodir, *startdir.split(os.sep)[-2 - repolevel + 3:])
631 ###################
632
633 # get lists of valid keywords, licenses, and use
634 new_data = repo_metadata(repo_settings.portdb, repoman_settings)
635 -kwlist, liclist, uselist, profile_list, global_pmaskdict, liclist_deprecated = new_data
636 +kwlist, liclist, uselist, profile_list, \
637 + global_pmaskdict, liclist_deprecated = new_data
638
639 repoman_settings['PORTAGE_ARCHLIST'] = ' '.join(sorted(kwlist))
640 repoman_settings.backup_changes('PORTAGE_ARCHLIST')
641 @@ -336,14 +339,15 @@ for xpkg in effective_scanlist:
642 ebuildlist = sorted(pkgs.values())
643 ebuildlist = [pkg.pf for pkg in ebuildlist]
644 #######################
645 - filescheck.check(checkdir, checkdirlist, checkdir_relative,
646 - changed.changed, changed.new)
647 + filescheck.check(
648 + checkdir, checkdirlist, checkdir_relative, changed.changed, changed.new)
649 #######################
650 status_check.check(check_ebuild_notadded, checkdir, checkdir_relative, xpkg)
651 eadded.extend(status_check.eadded)
652
653 #################
654 - fetchcheck.check(xpkg, checkdir, checkdir_relative, changed.changed, changed.new)
655 + fetchcheck.check(
656 + xpkg, checkdir, checkdir_relative, changed.changed, changed.new)
657 #################
658
659 if check_changelog and "ChangeLog" not in checkdirlist:
660 @@ -360,9 +364,11 @@ for xpkg in effective_scanlist:
661 used_useflags = set()
662
663 for y_ebuild in ebuildlist:
664 -##################
665 - ebuild = Ebuild(repo_settings, repolevel, pkgdir, catdir, vcs_settings, xpkg, y_ebuild)
666 -##################
667 + ##################
668 + ebuild = Ebuild(
669 + repo_settings, repolevel, pkgdir, catdir, vcs_settings,
670 + xpkg, y_ebuild)
671 + ##################
672
673 if check_changelog and not changelog_modified \
674 and ebuild.ebuild_path in changed.new_ebuilds:
675 @@ -370,8 +376,8 @@ for xpkg in effective_scanlist:
676
677 if ebuild.untracked(check_ebuild_notadded, y_ebuild, eadded):
678 # ebuild not added to vcs
679 - qatracker.add_error("ebuild.notadded",
680 - xpkg + "/" + y_ebuild + ".ebuild")
681 + qatracker.add_error(
682 + "ebuild.notadded", xpkg + "/" + y_ebuild + ".ebuild")
683
684 ##################
685 if bad_split_check(xpkg, y_ebuild, pkgdir, qatracker):
686 @@ -388,19 +394,20 @@ for xpkg in effective_scanlist:
687 live_ebuild = live_eclasses.intersection(inherited)
688
689 if repo_settings.repo_config.eapi_is_banned(eapi):
690 - qatracker.add_error("repo.eapi.banned",
691 - "%s: %s" % (ebuild.relative_path, eapi))
692 + qatracker.add_error(
693 + "repo.eapi.banned", "%s: %s" % (ebuild.relative_path, eapi))
694
695 elif repo_settings.repo_config.eapi_is_deprecated(eapi):
696 - qatracker.add_error("repo.eapi.deprecated",
697 - "%s: %s" % (ebuild.relative_path, eapi))
698 + qatracker.add_error(
699 + "repo.eapi.deprecated", "%s: %s" % (ebuild.relative_path, eapi))
700
701 for k, v in myaux.items():
702 if not isinstance(v, basestring):
703 continue
704 m = non_ascii_re.search(v)
705 if m is not None:
706 - qatracker.add_error("variable.invalidchar",
707 + qatracker.add_error(
708 + "variable.invalidchar",
709 "%s: %s variable contains non-ASCII "
710 "character at position %s" %
711 (ebuild.relative_path, k, m.start() + 1))
712 @@ -430,7 +437,8 @@ for xpkg in effective_scanlist:
713
714 # 14 is the length of DESCRIPTION=""
715 if len(myaux['DESCRIPTION']) > max_desc_len:
716 - qatracker.add_error('DESCRIPTION.toolong',
717 + qatracker.add_error(
718 + 'DESCRIPTION.toolong',
719 "%s: DESCRIPTION is %d characters (max %d)" %
720 (ebuild.relative_path, len(myaux['DESCRIPTION']), max_desc_len))
721
722 @@ -516,7 +524,8 @@ for xpkg in effective_scanlist:
723 if atoms and mytype.endswith("DEPEND"):
724 if runtime and \
725 "test?" in mydepstr.split():
726 - qatracker.add_error(mytype + '.suspect',
727 + qatracker.add_error(
728 + mytype + '.suspect',
729 "%s: 'test?' USE conditional in %s" %
730 (ebuild.relative_path, mytype))
731
732 @@ -537,8 +546,8 @@ for xpkg in effective_scanlist:
733 if catdir != "virtual":
734 if not is_blocker and \
735 atom.cp in suspect_virtual:
736 - qatracker.add_error('virtual.suspect',
737 - ebuild.relative_path +
738 + qatracker.add_error(
739 + 'virtual.suspect', ebuild.relative_path +
740 ": %s: consider using '%s' instead of '%s'" %
741 (mytype, suspect_virtual[atom.cp], atom))
742 if not is_blocker and \
743 @@ -553,26 +562,28 @@ for xpkg in effective_scanlist:
744 not is_blocker and \
745 not inherited_java_eclass and \
746 atom.cp == "virtual/jdk":
747 - qatracker.add_error('java.eclassesnotused',
748 - ebuild.relative_path)
749 + qatracker.add_error(
750 + 'java.eclassesnotused', ebuild.relative_path)
751 elif buildtime and \
752 not is_blocker and \
753 not inherited_wxwidgets_eclass and \
754 atom.cp == "x11-libs/wxGTK":
755 - qatracker.add_error('wxwidgets.eclassnotused',
756 + qatracker.add_error(
757 + 'wxwidgets.eclassnotused',
758 "%s: %ss on x11-libs/wxGTK without inheriting"
759 " wxwidgets.eclass" % (ebuild.relative_path, mytype))
760 elif runtime:
761 if not is_blocker and \
762 atom.cp in suspect_rdepend:
763 - qatracker.add_error(mytype + '.suspect',
764 + qatracker.add_error(
765 + mytype + '.suspect',
766 ebuild.relative_path + ": '%s'" % atom)
767
768 if atom.operator == "~" and \
769 portage.versions.catpkgsplit(atom.cpv)[3] != "r0":
770 qacat = 'dependency.badtilde'
771 - qatracker.add_error(qacat,
772 - "%s: %s uses the ~ operator"
773 + qatracker.add_error(
774 + qacat, "%s: %s uses the ~ operator"
775 " with a non-zero revision: '%s'" %
776 (ebuild.relative_path, mytype, atom))
777
778 @@ -583,8 +594,8 @@ for xpkg in effective_scanlist:
779 qacat = "dependency.syntax"
780 else:
781 qacat = m + ".syntax"
782 - qatracker.add_error(qacat,
783 - "%s: %s: %s" % (ebuild.relative_path, m, b))
784 + qatracker.add_error(
785 + qacat, "%s: %s: %s" % (ebuild.relative_path, m, b))
786
787 badlicsyntax = len([z for z in type_list if z == "LICENSE"])
788 badprovsyntax = len([z for z in type_list if z == "PROVIDE"])
789 @@ -612,10 +623,12 @@ for xpkg in effective_scanlist:
790 # Need to check for "||" manually as no portage
791 # function will remove it without removing values.
792 if lic not in liclist and lic != "||":
793 - qatracker.add_error("LICENSE.invalid",
794 + qatracker.add_error(
795 + "LICENSE.invalid",
796 xpkg + "/" + y_ebuild + ".ebuild: %s" % lic)
797 elif lic in liclist_deprecated:
798 - qatracker.add_error("LICENSE.deprecated",
799 + qatracker.add_error(
800 + "LICENSE.deprecated",
801 "%s: %s" % (ebuild.relative_path, lic))
802
803 # restrict checks
804 @@ -624,7 +637,8 @@ for xpkg in effective_scanlist:
805 myrestrict = portage.dep.use_reduce(
806 myaux["RESTRICT"], matchall=1, flat=True)
807 except portage.exception.InvalidDependString as e:
808 - qatracker.add_error("RESTRICT.syntax",
809 + qatracker.add_error(
810 + "RESTRICT.syntax",
811 "%s: RESTRICT: %s" % (ebuild.relative_path, e))
812 del e
813 if myrestrict:
814 @@ -632,7 +646,8 @@ for xpkg in effective_scanlist:
815 mybadrestrict = myrestrict.difference(valid_restrict)
816 if mybadrestrict:
817 for mybad in mybadrestrict:
818 - qatracker.add_error("RESTRICT.invalid",
819 + qatracker.add_error(
820 + "RESTRICT.invalid",
821 xpkg + "/" + y_ebuild + ".ebuild: %s" % mybad)
822
823 # Syntax Checks
824 @@ -649,8 +664,8 @@ for xpkg in effective_scanlist:
825 mode='r', encoding=_encodings['repo.content'])
826 try:
827 for check_name, e in run_checks(f, pkg):
828 - qatracker.add_error(check_name,
829 - ebuild.relative_path + ': %s' % e)
830 + qatracker.add_error(
831 + check_name, ebuild.relative_path + ': %s' % e)
832 finally:
833 f.close()
834 except UnicodeDecodeError:
835 @@ -807,14 +822,14 @@ for xpkg in effective_scanlist:
836 # if we emptied out our list, continue:
837 if not atoms:
838 continue
839 - qatracker.add_error(mykey,
840 - "%s: %s: %s(%s) %s"
841 - % (ebuild.relative_path, mytype, keyword, prof,
842 + qatracker.add_error(
843 + mykey, "%s: %s: %s(%s) %s" % (
844 + ebuild.relative_path, mytype, keyword, prof,
845 repr(atoms)))
846 else:
847 - qatracker.add_error(mykey,
848 - "%s: %s: %s(%s) %s"
849 - % (ebuild.relative_path, mytype, keyword, prof,
850 + qatracker.add_error(
851 + mykey, "%s: %s: %s(%s) %s" % (
852 + ebuild.relative_path, mytype, keyword, prof,
853 repr(atoms)))
854
855 if not baddepsyntax and unknown_pkgs:
856 @@ -822,15 +837,16 @@ for xpkg in effective_scanlist:
857 for mytype, atom in unknown_pkgs:
858 type_map.setdefault(mytype, set()).add(atom)
859 for mytype, atoms in type_map.items():
860 - qatracker.add_error("dependency.unknown",
861 - "%s: %s: %s"
862 + qatracker.add_error(
863 + "dependency.unknown", "%s: %s: %s"
864 % (ebuild.relative_path, mytype, ", ".join(sorted(atoms))))
865
866 # check if there are unused local USE-descriptions in metadata.xml
867 # (unless there are any invalids, to avoid noise)
868 if allvalid:
869 for myflag in muselist.difference(used_useflags):
870 - qatracker.add_error("metadata.warning",
871 + qatracker.add_error(
872 + "metadata.warning",
873 "%s/metadata.xml: unused local USE-description: '%s'"
874 % (xpkg, myflag))
875
876 @@ -1118,7 +1134,10 @@ else:
877 myremoved = ["./" + elem.rstrip() for elem in myremoved]
878
879 if vcs_settings.vcs:
880 - if not (mychanged or mynew or myremoved or (vcs_settings.vcs == "hg" and mydeleted)):
881 + a_file_is_changed = mychanged or mynew or myremoved
882 + a_file_is_deleted_hg = vcs_settings.vcs == "hg" and mydeleted
883 +
884 + if not (a_file_is_changed or a_file_is_deleted_hg):
885 utilities.repoman_sez(
886 "\"Doing nothing is not always good for QA.\"")
887 print()
888
889 diff --git a/pym/repoman/qa_data.py b/pym/repoman/qa_data.py
890 index 4b62b5d..09015cc 100644
891 --- a/pym/repoman/qa_data.py
892 +++ b/pym/repoman/qa_data.py
893 @@ -6,8 +6,6 @@ from _emerge.Package import Package
894 # import our initialized portage instance
895 from repoman._portage import portage
896
897 -
898 -
899 # 14 is the length of DESCRIPTION=""
900 max_desc_len = 100
901 allowed_filename_chars = "a-zA-Z0-9._-+:"
902 @@ -426,5 +424,3 @@ def format_qa_output_column(
903 for failure in fails_list:
904 formatter.add_literal_data(category + " " + failure)
905 formatter.add_line_break()
906 -
907 -
908
909 diff --git a/pym/repoman/qa_tracker.py b/pym/repoman/qa_tracker.py
910 index 48a7241..9bfe0e2 100644
911 --- a/pym/repoman/qa_tracker.py
912 +++ b/pym/repoman/qa_tracker.py
913 @@ -12,7 +12,6 @@ class QATracker(object):
914 self.fails = {}
915 self.warns = {}
916
917 -
918 def add_error(self, detected_qa, info):
919 '''Add the Q/A error to the database of detected problems
920
921 @@ -20,15 +19,15 @@ class QATracker(object):
922 @param info: string, details of the detected problem
923 '''
924 if detected_qa not in qacats:
925 - logging.error('QATracker: Exiting on error. unknown detected_qa type passed in '
926 - 'to add_error(): %s, %s' % (detected_qa, info))
927 + logging.error(
928 + 'QATracker: Exiting on error. Unknown detected_qa type passed '
929 + 'in to add_error(): %s, %s' % (detected_qa, info))
930 sys.exit(1)
931 try:
932 self.fails[detected_qa].append(info)
933 except KeyError:
934 self.fails[detected_qa] = [info]
935
936 -
937 def add_warning(self, detected_qa, info):
938 '''Add the Q/A warning to the database of detected problems
939
940 @@ -36,11 +35,11 @@ class QATracker(object):
941 @param info: string, details of the detected problem
942 '''
943 if detected_qa not in qawarnings:
944 - logging.error('QATracker: Exiting on error. unknown detected_qa type passed in '
945 - 'to add_warning(): %s, %s' % (detected_qa, info))
946 + logging.error(
947 + 'QATracker: Exiting on error. Unknown detected_qa type passed '
948 + 'in to add_warning(): %s, %s' % (detected_qa, info))
949 sys.exit(1)
950 try:
951 self.warns[detected_qa].append(info)
952 except KeyError:
953 self.warns[detected_qa] = [info]
954 -
955
956 diff --git a/pym/repoman/repos.py b/pym/repoman/repos.py
957 index 6bd1eb4..5044411 100644
958 --- a/pym/repoman/repos.py
959 +++ b/pym/repoman/repos.py
960 @@ -23,16 +23,19 @@ bad = portage.output.create_color_func("BAD")
961 class RepoSettings(object):
962 '''Holds out repo specific settings'''
963
964 - def __init__(self, config_root, portdir, portdir_overlay,
965 + def __init__(
966 + self, config_root, portdir, portdir_overlay,
967 repoman_settings=None, vcs_settings=None, options=None,
968 qawarnings=None):
969 self.repoman_settings = repoman_settings
970 self.vcs_settings = vcs_settings
971
972 + repoman_repos = self.repoman_settings.repositories
973 +
974 # Ensure that current repository is in the list of enabled repositories.
975 self.repodir = os.path.realpath(portdir_overlay)
976 try:
977 - repoman_settings.repositories.get_repo_for_location(self.repodir)
978 + repoman_repos.get_repo_for_location(self.repodir)
979 except KeyError:
980 self._add_repo(config_root, portdir_overlay)
981
982 @@ -44,15 +47,15 @@ class RepoSettings(object):
983
984 # Constrain dependency resolution to the master(s)
985 # that are specified in layout.conf.
986 - self.repo_config = self.repoman_settings.repositories.get_repo_for_location(self.repodir)
987 + self.repo_config = repoman_repos.get_repo_for_location(self.repodir)
988 self.portdb.porttrees = list(self.repo_config.eclass_db.porttrees)
989 self.portdir = self.portdb.porttrees[0]
990 self.commit_env = os.environ.copy()
991 # list() is for iteration on a copy.
992 - for repo in list(self.repoman_settings.repositories):
993 + for repo in list(repoman_repos):
994 # all paths are canonical
995 if repo.location not in self.repo_config.eclass_db.porttrees:
996 - del self.repoman_settings.repositories[repo.name]
997 + del repoman_repos[repo.name]
998
999 if self.repo_config.allow_provide_virtual:
1000 qawarnings.add("virtual.oldstyle")
1001 @@ -121,10 +124,10 @@ class RepoSettings(object):
1002 logging.error(line)
1003 sys.exit(1)
1004
1005 -
1006 def _add_repo(self, config_root, portdir_overlay):
1007 self.repo_conf = portage.repository.config
1008 - self.repo_name = self.repo_conf.RepoConfig._read_valid_repo_name(portdir_overlay)[0]
1009 + self.repo_name = self.repo_conf.RepoConfig._read_valid_repo_name(
1010 + portdir_overlay)[0]
1011 self.layout_conf_data = self.repo_conf.parse_layout_conf(portdir_overlay)[0]
1012 if self.layout_conf_data['repo-name']:
1013 self.repo_name = self.layout_conf_data['repo-name']
1014 @@ -143,18 +146,19 @@ class RepoSettings(object):
1015 # We have to call the config constructor again so that attributes
1016 # dependent on config.repositories are initialized correctly.
1017 self.repoman_settings = portage.config(
1018 - config_root=config_root, local_config=False, repositories=self.repositories)
1019 + config_root=config_root, local_config=False,
1020 + repositories=self.repositories)
1021
1022 - ########### future vcs plugin functions
1023 + ##########
1024 + # future vcs plugin functions
1025 + ##########
1026
1027 def _vcs_gpg_bzr(self):
1028 pass
1029
1030 -
1031 def _vcs_gpg_cvs(self):
1032 pass
1033
1034 -
1035 def _vcs_gpg_git(self):
1036 # NOTE: It's possible to use --gpg-sign=key_id to specify the key in
1037 # the commit arguments. If key_id is unspecified, then it must be
1038 @@ -170,17 +174,13 @@ class RepoSettings(object):
1039 except OSError:
1040 pass
1041
1042 -
1043 def _vcs_gpg_hg(self):
1044 pass
1045
1046 -
1047 def _vcs_gpg_svn(self):
1048 pass
1049
1050
1051 -
1052 -
1053 def list_checks(kwlist, liclist, uselist, repoman_settings):
1054 liclist_deprecated = set()
1055 if "DEPRECATED" in repoman_settings._license_manager._license_groups:
1056 @@ -288,7 +288,8 @@ def repo_metadata(portdb, repoman_settings):
1057 global_pmaskdict.setdefault(x.cp, []).append(x)
1058 del global_pmasklines
1059
1060 - return (kwlist, liclist, uselist, profile_list, global_pmaskdict,
1061 + return (
1062 + kwlist, liclist, uselist, profile_list, global_pmaskdict,
1063 list_checks(kwlist, liclist, uselist, repoman_settings))
1064
1065
1066 @@ -300,5 +301,3 @@ def has_global_mask(pkg, global_pmaskdict):
1067 if portage.dep.match_from_list(x, pkg_list):
1068 return x
1069 return None
1070 -
1071 -
1072
1073 diff --git a/pym/repoman/scan.py b/pym/repoman/scan.py
1074 index e7ce8ff..fef6d82 100644
1075 --- a/pym/repoman/scan.py
1076 +++ b/pym/repoman/scan.py
1077 @@ -23,7 +23,7 @@ def scan(repolevel, reposplit, startdir, categories, repo_settings):
1078 continue
1079 if os.path.isdir(startdir + "/" + x):
1080 scanlist.append(catdir + "/" + x)
1081 - #repo_subdir = catdir + os.sep
1082 + # repo_subdir = catdir + os.sep
1083 elif repolevel == 1:
1084 for x in categories:
1085 if not os.path.isdir(startdir + "/" + x):
1086 @@ -33,20 +33,20 @@ def scan(repolevel, reposplit, startdir, categories, repo_settings):
1087 continue
1088 if os.path.isdir(startdir + "/" + x + "/" + y):
1089 scanlist.append(x + "/" + y)
1090 - #repo_subdir = ""
1091 + # repo_subdir = ""
1092 elif repolevel == 3:
1093 catdir = reposplit[-2]
1094 if catdir not in categories:
1095 - caterror(catdir,repo_settings.repodir)
1096 + caterror(catdir, repo_settings.repodir)
1097 scanlist.append(catdir + "/" + reposplit[-1])
1098 - #repo_subdir = scanlist[-1] + os.sep
1099 + # repo_subdir = scanlist[-1] + os.sep
1100 else:
1101 msg = 'Repoman is unable to determine PORTDIR or PORTDIR_OVERLAY' + \
1102 ' from the current working directory'
1103 logging.critical(msg)
1104 sys.exit(1)
1105
1106 - #repo_subdir_len = len(repo_subdir)
1107 + # repo_subdir_len = len(repo_subdir)
1108 scanlist.sort()
1109
1110 logging.debug(
1111 @@ -67,12 +67,10 @@ class Changes(object):
1112 This will ease future addition of new VCS types.
1113 '''
1114
1115 -
1116 def __init__(self, options):
1117 self.options = options
1118 self._reset()
1119
1120 -
1121 def _reset(self):
1122 self.new_ebuilds = set()
1123 self.ebuilds = set()
1124 @@ -81,7 +79,6 @@ class Changes(object):
1125 self.new = []
1126 self.removed = []
1127
1128 -
1129 def scan(self, vcs_settings):
1130 self._reset()
1131
1132 @@ -96,7 +93,6 @@ class Changes(object):
1133 x for x in chain(self.changed, self.new)
1134 if os.path.basename(x) == "ChangeLog")
1135
1136 -
1137 def scan_cvs(self):
1138 tree = cvstree.getentries("./", recursive=1)
1139 self.changed = cvstree.findchanged(tree, recursive=1, basedir="./")
1140 @@ -105,7 +101,6 @@ class Changes(object):
1141 self.removed = cvstree.findremoved(tree, recursive=1, basedir="./")
1142 del tree
1143
1144 -
1145 def scan_svn(self):
1146 with repoman_popen("svn status") as f:
1147 svnstatus = f.readlines()
1148 @@ -123,7 +118,6 @@ class Changes(object):
1149 for elem in svnstatus
1150 if elem.startswith("D")]
1151
1152 -
1153 def scan_git(self):
1154 with repoman_popen(
1155 "git diff-index --name-only "
1156 @@ -145,7 +139,6 @@ class Changes(object):
1157 self.removed = ["./" + elem[:-1] for elem in removed]
1158 del removed
1159
1160 -
1161 def scan_bzr(self):
1162 with repoman_popen("bzr status -S .") as f:
1163 bzrstatus = f.readlines()
1164 @@ -163,7 +156,6 @@ class Changes(object):
1165 for elem in bzrstatus
1166 if elem and (elem[1:2] == "K" or elem[0:1] == "R")]
1167
1168 -
1169 def scan_hg(self):
1170 with repoman_popen("hg status --no-status --modified .") as f:
1171 changed = f.readlines()
1172
1173 diff --git a/pym/repoman/vcs/vcs.py b/pym/repoman/vcs/vcs.py
1174 index 6a9d455..180692c 100644
1175 --- a/pym/repoman/vcs/vcs.py
1176 +++ b/pym/repoman/vcs/vcs.py
1177 @@ -256,8 +256,10 @@ class VCSSettings(object):
1178 # Disable copyright/mtime check if vcs does not preserve mtime (bug #324075).
1179 self.vcs_preserves_mtime = self.vcs in ('cvs',)
1180
1181 - self.vcs_local_opts = repoman_settings.get("REPOMAN_VCS_LOCAL_OPTS", "").split()
1182 - self.vcs_global_opts = repoman_settings.get("REPOMAN_VCS_GLOBAL_OPTS")
1183 + self.vcs_local_opts = repoman_settings.get(
1184 + "REPOMAN_VCS_LOCAL_OPTS", "").split()
1185 + self.vcs_global_opts = repoman_settings.get(
1186 + "REPOMAN_VCS_GLOBAL_OPTS")
1187 if self.vcs_global_opts is None:
1188 if self.vcs in ('cvs', 'svn'):
1189 self.vcs_global_opts = "-q"
1190 @@ -266,5 +268,7 @@ class VCSSettings(object):
1191 self.vcs_global_opts = self.vcs_global_opts.split()
1192
1193 if options.mode == 'commit' and not options.pretend and not self.vcs:
1194 - logging.info("Not in a version controlled repository; enabling pretend mode.")
1195 + logging.info(
1196 + "Not in a version controlled repository; "
1197 + "enabling pretend mode.")
1198 options.pretend = True
1199
1200 diff --git a/pym/repoman/vcs/vcsstatus.py b/pym/repoman/vcs/vcsstatus.py
1201 index 0517c04..30e00ad 100644
1202 --- a/pym/repoman/vcs/vcsstatus.py
1203 +++ b/pym/repoman/vcs/vcsstatus.py
1204 @@ -8,7 +8,6 @@ from portage import os
1205 from repoman._subprocess import repoman_popen
1206
1207
1208 -
1209 class VCSStatus(object):
1210 '''Determines the status of the vcs repositories
1211 to determine if files are not added'''
1212 @@ -19,43 +18,39 @@ class VCSStatus(object):
1213 self.eadded = []
1214 self.qatracker = qatracker
1215
1216 -
1217 def check(self, check_not_added, checkdir, checkdir_relative, xpkg):
1218 if self.vcs and check_not_added:
1219 vcscheck = getattr(self, 'check_%s' % self.vcs)
1220 vcscheck(checkdir, checkdir_relative, xpkg)
1221
1222 -
1223 def post_git_hg(self, myf, xpkg):
1224 for l in myf:
1225 if l[:-1][-7:] == ".ebuild":
1226 - self.qatracker.add_error("ebuild.notadded",
1227 + self.qatracker.add_error(
1228 + "ebuild.notadded",
1229 os.path.join(xpkg, os.path.basename(l[:-1])))
1230 myf.close()
1231
1232 -
1233 def check_git(self, checkdir, checkdir_relative, xpkg):
1234 myf = repoman_popen(
1235 "git ls-files --others %s" %
1236 (portage._shell_quote(checkdir_relative),))
1237 self.post_git_hg(myf, xpkg)
1238
1239 -
1240 def check_hg(self, checkdir, checkdir_relative, xpkg):
1241 myf = repoman_popen(
1242 "hg status --no-status --unknown %s" %
1243 (portage._shell_quote(checkdir_relative),))
1244 self.post_git_hg(myf, xpkg)
1245
1246 -
1247 def check_cvs(self, checkdir, checkdir_relative, xpkg):
1248 try:
1249 myf = open(checkdir + "/CVS/Entries", "r")
1250 myl = myf.readlines()
1251 myf.close()
1252 except IOError:
1253 - self.qatracker.add_error("CVS/Entries.IO_error",
1254 - checkdir + "/CVS/Entries")
1255 + self.qatracker.add_error(
1256 + "CVS/Entries.IO_error", checkdir + "/CVS/Entries")
1257 return True
1258 for l in myl:
1259 if l[0] != "/":
1260 @@ -67,7 +62,6 @@ class VCSStatus(object):
1261 self.eadded.append(splitl[0][:-7])
1262 return True
1263
1264 -
1265 def check_svn(self, checkdir, checkdir_relative, xpkg):
1266 try:
1267 myf = repoman_popen(
1268 @@ -101,7 +95,6 @@ class VCSStatus(object):
1269 self.eadded.append(os.path.basename(l[:-7]))
1270 return True
1271
1272 -
1273 def check_bzr(self, checkdir, checkdir_relative, xpkg):
1274 try:
1275 myf = repoman_popen(
1276 @@ -117,4 +110,4 @@ class VCSStatus(object):
1277 l = l.split()[-1]
1278 if l[-7:] == ".ebuild":
1279 self.eadded.append(os.path.basename(l[:-7]))
1280 - return True
1281 + return True