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 1SZLTm-0007GG-8Y for garchives@archives.gentoo.org; Tue, 29 May 2012 12:24:51 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 0C049E07EC; Tue, 29 May 2012 12:24:17 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id BEBCBE07EC for ; Tue, 29 May 2012 12:24:17 +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 CFFBB1B402C for ; Tue, 29 May 2012 12:24:16 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 78211E5432 for ; Tue, 29 May 2012 12:24:14 +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: <1338294240.c8c247a88f4def5b7203da619cb5247204000f4a.bacher09@gentoo> Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/ X-VCS-Repository: proj/gentoo-packages X-VCS-Files: gpackages/apps/packages/managers.py X-VCS-Directories: gpackages/apps/packages/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: c8c247a88f4def5b7203da619cb5247204000f4a X-VCS-Branch: master Date: Tue, 29 May 2012 12:24:14 +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: ea31ae02-dffd-4b29-8479-a6ae72350d7f X-Archives-Hash: 9b9d8f1cb65eb186f44f2e0616edf893 commit: c8c247a88f4def5b7203da619cb5247204000f4a Author: Slava Bacherikov bacher09 org> AuthorDate: Tue May 29 12:24:00 2012 +0000 Commit: Slava Bacherikov bacherikov org ua> CommitDate: Tue May 29 12:24:00 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoo-packag= es.git;a=3Dcommit;h=3Dc8c247a8 Rewrite managers. --- gpackages/apps/packages/managers.py | 35 ++++++++++++++++-------------= ------ 1 files changed, 16 insertions(+), 19 deletions(-) diff --git a/gpackages/apps/packages/managers.py b/gpackages/apps/package= s/managers.py index 2d01508..dd9c2cb 100644 --- a/gpackages/apps/packages/managers.py +++ b/gpackages/apps/packages/managers.py @@ -3,6 +3,13 @@ from porttree import Category, Package, Ebuild, Keyword import packages.models =20 =20 +def _gen_query_and_manager(MixinClass, QueryClassName, ManagerClassName)= : + QueryClass =3D type(QueryClassName, (MixinClass, models.query.QueryS= et), {}) + ManagerClass =3D type(ManagerClassName, (MixinClass, models.Manager)= ,{ + 'get_query_set': lambda self: QueryClass(self.model, using=3Dsel= f._db) + }) + return QueryClass, ManagerClass + class PackageMixin(object): def get(self, package =3D None, *args, **kwargs): if package is not None and isinstance(package, Package): @@ -19,13 +26,9 @@ class PackageMixin(object): kwargs.update({'name': name, 'category': category}) return super(PackageMixin, self).get(*args, **kwargs) =20 -class PackageQuerySet(PackageMixin, models.query.QuerySet): - pass - -class PackageManager(PackageMixin, models.Manager): - def get_query_set(self): - return PackageQuerySet(self.model, using=3Dself._db) - +PackageQuerySet, PackageManager =3D _gen_query_and_manager(PackageMixin,= =20 + 'PackageQuerySet= ', + 'PackageManager'= ) =20 class KeywordMixin(object): def get_or_create(self, keyword=3DNone, **kwargs): @@ -38,13 +41,9 @@ class KeywordMixin(object): =20 return super(KeywordMixin, self).get_or_create(**kwargs) =20 -class KeywordQuerySet(KeywordMixin, models.query.QuerySet): - pass - -class KeywordManager(KeywordMixin, models.Manager): - def get_query_set(self): - return KeywordQuerySet(self.model, using=3Dself._db) - +KeywordQuerySet, KeywordManager =3D _gen_query_and_manager(KeywordMixin,= =20 + 'KeywordQuerySet= ', + 'KeywordManager'= ) =20 class EbuildMixin(object): def get(self, ebuild=3DNone, *args, **kwargs): @@ -61,9 +60,7 @@ class EbuildMixin(object): return super(EbuildMixin, self).get(*args, **kwargs) =20 =20 -class EbuildQuerySet(EbuildMixin, models.query.QuerySet): - pass =20 -class EbuildManager(EbuildMixin, models.Manager): - def get_query_set(self): - return EbuildQuerySet(self.model, using=3Dself._db) +EbuildQuerySet, EbuildManager =3D _gen_query_and_manager(EbuildMixin, + 'EbuildQuerySet'= , + 'EbuildManager')