diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-06-22 20:02:48 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-06-22 20:02:48 +0000 |
commit | 4827f2de62ec604fbf3a6dafbcfbe2c180481efe (patch) | |
tree | 918bbd1b90db48effaa3ccd0790e224b66da01a8 /pym/_emerge/visible.py | |
parent | bf9282b6782ad433b2ca905a5131bd0c424a2d94 (diff) | |
download | portage-4827f2de62ec604fbf3a6dafbcfbe2c180481efe.tar.gz portage-4827f2de62ec604fbf3a6dafbcfbe2c180481efe.tar.bz2 portage-4827f2de62ec604fbf3a6dafbcfbe2c180481efe.zip |
Bug #275047 - Split _emerge/__init__.py into smaller pieces (part 4).
Thanks to Sebastian Mingramm (few) <s.mingramm@gmx.de> for this patch.
svn path=/main/trunk/; revision=13669
Diffstat (limited to 'pym/_emerge/visible.py')
-rw-r--r-- | pym/_emerge/visible.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/pym/_emerge/visible.py b/pym/_emerge/visible.py new file mode 100644 index 000000000..5ae04ce03 --- /dev/null +++ b/pym/_emerge/visible.py @@ -0,0 +1,40 @@ +try: + import portage +except ImportError: + from os import path as osp + import sys + sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym")) + import portage + +def visible(pkgsettings, pkg): + """ + Check if a package is visible. This can raise an InvalidDependString + exception if LICENSE is invalid. + TODO: optionally generate a list of masking reasons + @rtype: Boolean + @returns: True if the package is visible, False otherwise. + """ + if not pkg.metadata["SLOT"]: + return False + if not pkg.installed: + if not pkgsettings._accept_chost(pkg.cpv, pkg.metadata): + return False + eapi = pkg.metadata["EAPI"] + if not portage.eapi_is_supported(eapi): + return False + if not pkg.installed: + if portage._eapi_is_deprecated(eapi): + return False + if pkgsettings._getMissingKeywords(pkg.cpv, pkg.metadata): + return False + if pkgsettings._getMaskAtom(pkg.cpv, pkg.metadata): + return False + if pkgsettings._getProfileMaskAtom(pkg.cpv, pkg.metadata): + return False + try: + if pkgsettings._getMissingLicenses(pkg.cpv, pkg.metadata): + return False + except portage.exception.InvalidDependString: + return False + return True + |