From: "Slava Bacherikov" <slava@bacherikov.org.ua>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/libs/package_info/package_backends/
Date: Tue, 3 Jul 2012 21:08:11 +0000 (UTC) [thread overview]
Message-ID: <1341321881.3b7a2bbd26ad71e907244095d35f2ba173eca70b.bacher09@gentoo> (raw)
commit: 3b7a2bbd26ad71e907244095d35f2ba173eca70b
Author: Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Tue Jul 3 13:17:50 2012 +0000
Commit: Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Tue Jul 3 13:24:41 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=3b7a2bbd
Code refactoring
---
gpackages/apps/packages/models.py | 9 +++++-
.../libs/package_info/package_backends/pkgcore.py | 24 +++++++++++++++----
.../libs/package_info/package_backends/portage.py | 11 ++++++--
3 files changed, 34 insertions(+), 10 deletions(-)
diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py
index 98abc79..064add4 100644
--- a/gpackages/apps/packages/models.py
+++ b/gpackages/apps/packages/models.py
@@ -494,11 +494,16 @@ class EbuildModel(AbstractDateTimeModel):
@property
def fullversion(self):
- return '%s%s' % (self.version, ('-'+ self.revision_str if self.revision else ''))
+ rev_p = '-'+ self.revision_str if self.revision else ''
+ return '%s%s' % (self.version, rev_p)
def get_keywords(self, arch_list):
keywords_dict = self.get_keywords_dict(arch_list)
- return (KeywordRepr(arch, keywords_dict[arch], self.is_hard_masked) for arch in arch_list)
+ l = []
+ for arch in arch_list:
+ l.append(
+ KeywordRepr(arch, keywords_dict[arch], self.is_hard_masked))
+ return l
def get_keywords_dict(self, arch_list):
arch_set = set(arch_list)
diff --git a/gpackages/libs/package_info/package_backends/pkgcore.py b/gpackages/libs/package_info/package_backends/pkgcore.py
index 5b053aa..9a17208 100644
--- a/gpackages/libs/package_info/package_backends/pkgcore.py
+++ b/gpackages/libs/package_info/package_backends/pkgcore.py
@@ -4,6 +4,7 @@ from pkgcore.config import load_config
from pkgcore.ebuild.repository import UnconfiguredTree, SlavedTree
from pkgcore.util.repo_utils import get_raw_repos, get_virtual_repos
from pkgcore.ebuild.atom import atom
+from pkgcore.ebuild.domain import generate_unmasking_restrict
#Mixins
from ..mixins import PortageMixin, PortTreeMixin, CategoryMixin, PackageMixin, \
@@ -27,6 +28,7 @@ class Portage(PortageMixin):
raise ValueError("Bad domain name - '%s'" % domain_name)
finally:
self._domain = domain
+ self._mask = generate_unmasking_restrict(domain.profile.masks)
def _get_repos(self):
repo_dict = {}
@@ -42,7 +44,7 @@ class Portage(PortageMixin):
def iter_trees(self):
for tree in self.repo_list:
- yield PortTree(tree)
+ yield PortTree(tree, self)
def get_tree_by_name(self, tree_name):
if tree_name in self.repo_dict:
@@ -50,15 +52,19 @@ class Portage(PortageMixin):
else:
raise ValueError
+ def is_masked(self, ebuild):
+ return self._mask.match(ebuild)
+
def __unicode__(self):
return u'pkgcore'
class PortTree(PortTreeMixin):
- def __init__(self, repo_obj):
+ def __init__(self, repo_obj, porttree):
self._repo_obj = repo_obj
self.name = repo_obj.repo_id
self.categories = sorted(repo_obj.categories)
+ self.porttree = porttree
def iter_categories(self):
for category in self.categories:
@@ -95,7 +101,7 @@ class Category(CategoryMixin):
@property
def category_path(self):
"Full path to category"
- return os.path.join(self._repo_obj.porttree_path, self.name)
+ return os.path.join(self.porttree_path, self.name)
def _get_packages_names(self):
return self._repo_obj._packages[self.name]
@@ -103,6 +109,14 @@ class Category(CategoryMixin):
def _get_ebuilds_names_by_name(self, package_name):
return self._repo_obj._versions[(self.name, package_name)]
+ @property
+ def porttree_name(self):
+ return self._repo_obj.name
+
+ @property
+ def porttree_path(self):
+ return self._repo_obj.porttree_path
+
class Package(PackageMixin):
__slots__ = ('name', 'category_obj')
@@ -177,7 +191,7 @@ class Ebuild(EbuildMixin):
cpv = ebuild_prop('cpvstr')
- # Need changes !!!
@property
def is_hard_masked(self):
- return False
+ return self.package_obj.category_obj._repo_obj. \
+ porttree.is_masked(self._ebuild)
diff --git a/gpackages/libs/package_info/package_backends/portage.py b/gpackages/libs/package_info/package_backends/portage.py
index d821e9e..4721d19 100644
--- a/gpackages/libs/package_info/package_backends/portage.py
+++ b/gpackages/libs/package_info/package_backends/portage.py
@@ -107,6 +107,10 @@ class Category(CategoryMixin):
def porttree_path(self):
return self.porttree.porttree
+ @property
+ def porttree_name(self):
+ return self.porttree.name
+
class Package(PackageMixin):
"Represent package as object"
@@ -127,7 +131,7 @@ class Package(PackageMixin):
@property
def package_path(self):
- return os.path.join(self.category.porttree.porttree_path, self.package)
+ return os.path.join(self.category.porttree_path, self.package)
@property
def cp(self):
@@ -141,7 +145,8 @@ class Package(PackageMixin):
class Ebuild(EbuildMixin):
"Represent ebuild as object"
- __slots__ = ('package', 'ebuild', 'cpv_object', '_cache', '_env', '_is_valid')
+ __slots__ = ('package', 'ebuild', 'cpv_object', '_cache', '_env',
+ '_is_valid')
ENV_VARS = PORTDB._aux_cache_keys
def __init__(self, package, ebuild):
@@ -230,7 +235,7 @@ class Ebuild(EbuildMixin):
reas, in_file = portage.getmaskingreason(self.cpv,
metadata = self._env,
return_location=True,
- myrepo = self.package.category.porttree.name)
+ myrepo = self.package.category.porttree_name)
if in_file is None:
return None
elif in_file.startswith('/etc/portage/'):
next reply other threads:[~2012-07-03 21:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-03 21:08 Slava Bacherikov [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-07-05 23:27 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/libs/package_info/package_backends/ Slava Bacherikov
2012-07-03 21:08 Slava Bacherikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1341321881.3b7a2bbd26ad71e907244095d35f2ba173eca70b.bacher09@gentoo \
--to=slava@bacherikov.org.ua \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox