From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1SgjSp-00029R-4Y for garchives@archives.gentoo.org; Mon, 18 Jun 2012 21:26:23 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id D6A03E07C5; Mon, 18 Jun 2012 21:26:05 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 97516E07C5 for ; Mon, 18 Jun 2012 21:26:05 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 7915B1B4020 for ; Mon, 18 Jun 2012 21:26:04 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 07855E5437 for ; Mon, 18 Jun 2012 21:26:02 +0000 (UTC) From: "Slava Bacherikov" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Slava Bacherikov" Message-ID: <1340037500.280b86959ff7a179802ede7f04b9d23881ab151a.bacher09@gentoo> Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/libs/ X-VCS-Repository: proj/gentoo-packages X-VCS-Files: gpackages/apps/packages/managers.py gpackages/apps/packages/models.py gpackages/apps/packages/scan.py gpackages/libs/porttree.py X-VCS-Directories: gpackages/apps/packages/ gpackages/libs/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: 280b86959ff7a179802ede7f04b9d23881ab151a X-VCS-Branch: master Date: Mon, 18 Jun 2012 21:26:02 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 1c10145d-8e1e-4042-b1bf-769120445d0d X-Archives-Hash: 312a157d3062b3b596e62e9708d2fa25 commit: 280b86959ff7a179802ede7f04b9d23881ab151a Author: Slava Bacherikov bacher09 org> AuthorDate: Mon Jun 18 16:38:20 2012 +0000 Commit: Slava Bacherikov bacherikov org ua> CommitDate: Mon Jun 18 16:38:20 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoo-packag= es.git;a=3Dcommit;h=3D280b8695 Collect more info about repository --- gpackages/apps/packages/managers.py | 10 +++++++++- gpackages/apps/packages/models.py | 33 +++++++++++++++++++++++++++++= ++++ gpackages/apps/packages/scan.py | 2 +- gpackages/libs/porttree.py | 7 +++++++ 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/gpackages/apps/packages/managers.py b/gpackages/apps/package= s/managers.py index ca1561c..45033d8 100644 --- a/gpackages/apps/packages/managers.py +++ b/gpackages/apps/packages/managers.py @@ -112,7 +112,15 @@ class VirtualPackageMixin(object): =20 return super(VirtualPackageMixin, self).filter(*args, **kwargs) =20 +class RepositoryMixin(object): + def filter(self, *args, **kwargs): + repo =3D get_from_kwargs_and_del('repo', kwargs) + if repo is not None: + kwargs['name'] =3D repo.name + return super(RepositoryMixin, self).filter(*args, **kwargs) + =20 _gen_all_query_and_manager('Mixin', 'QuerySet', 'Manager', PackageMixin, KeywordMixin, EbuildMixin, Herd= sMixin, - MaintainerMixin, VirtualPackageMixin) + MaintainerMixin, VirtualPackageMixin, + RepositoryMixin) diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/= models.py index c2b62ac..6d96b42 100644 --- a/gpackages/apps/packages/models.py +++ b/gpackages/apps/packages/models.py @@ -29,8 +29,41 @@ class ArchesModel(models.Model): return self.name =20 class RepositoryModel(AbstractDateTimeModel): + QUALITY_CHOICES =3D ( (0, 'stable'), + (1, 'testing'), + (2, 'experimental'), + ) + + def __init__(self, *args, **kwargs): + repo =3D get_from_kwargs_and_del('repo', kwargs) + super(RepositoryModel, self).__init__(*args, **kwargs) + + if repo is not None: + self.init_by_repo(repo) + name =3D models.CharField(unique =3D True, max_length =3D 60) + + # Additional info description =3D models.TextField(blank =3D True, null =3D True) + owner_name =3D models.CharField(max_length =3D 65 , blank =3D True, = null =3D True) + owner_email =3D models.EmailField(blank =3D True, null =3D True) + homepage =3D models.URLField(blank =3D True, null =3D True) + official =3D models.BooleanField(default =3D False) + quality =3D models.PositiveSmallIntegerField(choices =3D QUALITY_CHO= ICES) + + objects =3D managers.RepositoryManager() + + def init_by_repo(self, repo): + self.name =3D repo.name + self.update_metadata(repo) + + def update_metadata(self, repo): + self.description =3D repo.metadata.description + self.owner_name =3D repo.metadata.owner_name + self.owner_email =3D repo.metadata.owner_email + self.homepage =3D repo.metadata.homepage + self.official =3D repo.metadata.official + self.quality =3D repo.metadata.int_quality =20 def __unicode__(self): return self.name diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/sc= an.py index d716380..6d14237 100644 --- a/gpackages/apps/packages/scan.py +++ b/gpackages/apps/packages/scan.py @@ -310,7 +310,7 @@ class Scanner(object): self.output("Scaning repository '%s'\n", repo.name, 3) =20 repo_obj, repo_created =3D models.RepositoryModel \ - .objects.get_or_create(name =3D repo.name) + .objects.get_or_create(repo =3D repo) =20 if not repo_created: #Update modification time diff --git a/gpackages/libs/porttree.py b/gpackages/libs/porttree.py index 995ef91..75812ab 100644 --- a/gpackages/libs/porttree.py +++ b/gpackages/libs/porttree.py @@ -20,6 +20,9 @@ from my_etree import etree # Validators from validators import validate_url, validate_url, ValidationError =20 +# Repo info +from repo_info import TreeMetadata + __all__ =3D ('Portage','PortTree', 'Category', 'Package', 'Ebuild') =20 BINDB =3D portage.db[portage.root]["bintree"].dbapi @@ -257,6 +260,10 @@ class PortTree(ToStrMixin): return self.porttree =20 @cached_property + def metadata(self): + return TreeMetadata(self.name) + + @cached_property def use_desc(self): return _get_info_by_func(get_uses_info, self.porttree_path,