diff options
author | fuzzyray <fuzzyray@gentoo.org> | 2010-03-12 21:44:29 +0000 |
---|---|---|
committer | fuzzyray <fuzzyray@gentoo.org> | 2010-03-12 21:44:29 +0000 |
commit | 1ddc073811b7b69aab22cd65990bbca8e7104bef (patch) | |
tree | 5ca2ef92478538f44b6abc9a96a8110b559fa867 /pym/gentoolkit/package.py | |
parent | Remove stray analyse script (diff) | |
download | gentoolkit-1ddc073811b7b69aab22cd65990bbca8e7104bef.tar.gz gentoolkit-1ddc073811b7b69aab22cd65990bbca8e7104bef.tar.bz2 gentoolkit-1ddc073811b7b69aab22cd65990bbca8e7104bef.zip |
Update to genscripts rev 382. This has more fixes for py3k and the modular rewrite of eclean.
svn path=/trunk/gentoolkit/; revision=755
Diffstat (limited to 'pym/gentoolkit/package.py')
-rw-r--r-- | pym/gentoolkit/package.py | 45 |
1 files changed, 19 insertions, 26 deletions
diff --git a/pym/gentoolkit/package.py b/pym/gentoolkit/package.py index 89d06b1..9c11275 100644 --- a/pym/gentoolkit/package.py +++ b/pym/gentoolkit/package.py @@ -62,14 +62,15 @@ from gentoolkit.keyword import determine_keyword class Package(CPV): """Exposes the state of a given CPV.""" - def __init__(self, cpv): + def __init__(self, cpv, validate=False): if isinstance(cpv, CPV): self.__dict__.update(cpv.__dict__) else: - CPV.__init__(self, cpv) - del cpv + CPV.__init__(self, cpv, validate=validate) - if not all(hasattr(self, x) for x in ('category', 'version')): + if validate and not all( + hasattr(self, x) for x in ('category', 'version') + ): # CPV allows some things that Package must not raise errors.GentoolkitInvalidPackage(self.cpv) @@ -102,7 +103,13 @@ class Package(CPV): metadata_path = os.path.join( self.package_path(), 'metadata.xml' ) - self._metadata = MetaData(metadata_path) + try: + self._metadata = MetaData(metadata_path) + except IOError as e: + import errno + if e.errno != errno.ENOENT: + raise + return None return self._metadata @@ -397,11 +404,11 @@ class PackageFormatter(object): """ _tmpl_verbose = "[$location] [$mask] $cpv:$slot" - _tmpl_quiet = "$cpv:$slot" + _tmpl_quiet = "$cpv" - def __init__(self, pkg, do_format=True, custom_format=None, fill_sizes = None): + def __init__(self, pkg, do_format=True, custom_format=None): self._pkg = None - self.do_format = do_format + self._do_format = do_format self._str = None self._location = None if not custom_format: @@ -412,15 +419,6 @@ class PackageFormatter(object): self.tmpl = Template(custom_format) self.format_vars = LazyItemsDict() self.pkg = pkg - if fill_sizes: - self.fill_sizes = fill_sizes - else: - self.fill_sizes = { - 'cpv': 50, - 'keyword': 10, - 'mask': 10, - } - def __repr__(self): return "<%s %s @%#8x>" % (self.__class__.__name__, self.pkg, id(self)) @@ -455,7 +453,6 @@ class PackageFormatter(object): fmt_vars.addLazySingleton("mask", self.format_mask) fmt_vars.addLazySingleton("mask2", self.format_mask_status2) fmt_vars.addLazySingleton("cpv", self.format_cpv) - fmt_vars.addLazySingleton("cpv_fill", self.format_cpv, fill=True) fmt_vars.addLazySingleton("cp", self.format_cpv, "cp") fmt_vars.addLazySingleton("category", self.format_cpv, "category") fmt_vars.addLazySingleton("name", self.format_cpv, "name") @@ -548,23 +545,19 @@ class PackageFormatter(object): hard_masked=set(('M', '?', '-')).intersection(maskmode) ) - def format_cpv(self, attr = None, fill=False): + def format_cpv(self, attr=None): if attr is None: value = self.pkg.cpv else: value = getattr(self.pkg, attr) - if self.do_format: - if fill: - trail = '.'*(self.fill_sizes['cpv']-len(value)) - return pp.cpv(value) + trail - else: - return pp.cpv(value) + if self._do_format: + return pp.cpv(value) else: return value def format_slot(self): value = self.pkg.environment("SLOT") - if self.do_format: + if self._do_format: return pp.slot(value) else: return value |