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.77) (envelope-from ) id 1Slp46-0007YG-W5 for garchives@archives.gentoo.org; Mon, 02 Jul 2012 22:25:55 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 19633E06AF; Mon, 2 Jul 2012 22:25:38 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id CCC7FE06AF for ; Mon, 2 Jul 2012 22:25:37 +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 DE20B1B400A for ; Mon, 2 Jul 2012 22:25:36 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 7F792E543E for ; Mon, 2 Jul 2012 22:25:34 +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: <1341267818.49460154ef4cf94dc960948e8d75df395807bce7.bacher09@gentoo> Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/libs/package_info/ 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/package_info/generic.py gpackages/libs/package_info/mixins.py X-VCS-Directories: gpackages/apps/packages/ gpackages/libs/package_info/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: 49460154ef4cf94dc960948e8d75df395807bce7 X-VCS-Branch: master Date: Mon, 2 Jul 2012 22:25:34 +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: 4041a59c-9145-4e13-b373-fc6fcc1ebef4 X-Archives-Hash: b88bb632505da020c89dd4e6ab81ede8 commit: 49460154ef4cf94dc960948e8d75df395807bce7 Author: Slava Bacherikov bacher09 org> AuthorDate: Mon Jul 2 22:23:38 2012 +0000 Commit: Slava Bacherikov bacherikov org ua> CommitDate: Mon Jul 2 22:23:38 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoo-packag= es.git;a=3Dcommit;h=3D49460154 Change revision type from CharField to PositiveIntergerField --- gpackages/apps/packages/managers.py | 2 +- gpackages/apps/packages/models.py | 10 +++++++--- gpackages/apps/packages/scan.py | 10 +--------- gpackages/libs/package_info/generic.py | 9 ++++++++- gpackages/libs/package_info/mixins.py | 19 +++++++++++++++++-- 5 files changed, 34 insertions(+), 16 deletions(-) diff --git a/gpackages/apps/packages/managers.py b/gpackages/apps/package= s/managers.py index d3f7b21..ab8e269 100644 --- a/gpackages/apps/packages/managers.py +++ b/gpackages/apps/packages/managers.py @@ -123,7 +123,7 @@ class EbuildMixin(object): else: kwargs.update({'package': package}) kwargs.update({ 'version': ebuild.version, - 'revision': ebuild.revision }) + 'revision': ebuild.revision_as_int }) return super(EbuildMixin, self).get(*args, **kwargs) =20 def all_by_numbers(self): diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/= models.py index 624afc0..21d8c0c 100644 --- a/gpackages/apps/packages/models.py +++ b/gpackages/apps/packages/models.py @@ -389,7 +389,7 @@ class LicenseGroupModel(models.Model): class EbuildModel(AbstractDateTimeModel): package =3D models.ForeignKey(PackageModel, db_index =3D True) version =3D models.CharField(max_length =3D 26, db_index =3D True) - revision =3D models.CharField(max_length =3D 12, db_index =3D True) + revision =3D models.PositiveIntegerField(db_index =3D True) use_flags =3D models.ManyToManyField(UseFlagModel) licenses =3D models.ManyToManyField(LicenseModel) license =3D models.CharField(max_length =3D 254, blank =3D True ) @@ -423,7 +423,7 @@ class EbuildModel(AbstractDateTimeModel): def update_by_ebuild(self, ebuild): self.is_masked =3D ebuild.is_masked self.version =3D ebuild.version - self.revision =3D ebuild.revision + self.revision =3D ebuild.revision_as_int self.license =3D ebuild.license self.ebuild_mtime =3D ebuild.mtime self.ebuild_hash =3D ebuild.sha1 @@ -489,8 +489,12 @@ class EbuildModel(AbstractDateTimeModel): return self.cpvr =20 @property + def revision_str(self): + return 'r%d' % self.revision + + @property def fullversion(self): - return '%s%s' % (self.version, ('-'+ self.revision if self.revi= sion else '')) + return '%s%s' % (self.version, ('-'+ self.revision_str if self.= revision else '')) =20 def get_keywords(self, arch_list): keywords_dict =3D self.get_keywords_dict(arch_list) diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/sc= an.py index 52f9a12..8e4127e 100644 --- a/gpackages/apps/packages/scan.py +++ b/gpackages/apps/packages/scan.py @@ -3,7 +3,7 @@ from packages import models import sys from django.db import IntegrityError from collections import defaultdict -from package_info.generic import StrThatIgnoreCase +from package_info.generic import StrThatIgnoreCase, toint from package_info.porttree import porttree =20 import anydbm @@ -84,14 +84,6 @@ def _get_items(items_list, Model, field_name, cache_va= r): geted_items =3D geted_items | geted return items_objects =20 - -def toint(val, defval): - try: - return int(val) - except ValueError: - return defval - - class Scanner(object): "General class for scan and collect data from portage" def __init__(self, **kwargs): diff --git a/gpackages/libs/package_info/generic.py b/gpackages/libs/pack= age_info/generic.py index cddd46f..895b3a4 100644 --- a/gpackages/libs/package_info/generic.py +++ b/gpackages/libs/package_info/generic.py @@ -4,7 +4,8 @@ import types from datetime import datetime =20 __all__ =3D ('StrThatIgnoreCase', 'ToStrMixin', 'file_get_content', 'fil= e_sha1',\ - 'file_mtime', 'cached_property', 'iter_over_gen', 'lofstr_to_= ig') + 'file_mtime', 'cached_property', 'iter_over_gen', 'lofstr_to_= ig', \ + 'toint') =20 def iter_over_gen(iterat, name): for obj in iterat: @@ -32,6 +33,12 @@ def get_from_kwargs_and_del(list_what, kwargs): else: return ret_list =20 +def toint(val, defval): + try: + return int(val) + except ValueError: + return defval + class StrThatIgnoreCase(unicode): __slots__ =3D ('_forcmp',) =20 diff --git a/gpackages/libs/package_info/mixins.py b/gpackages/libs/packa= ge_info/mixins.py index c3c5cec..36afb10 100644 --- a/gpackages/libs/package_info/mixins.py +++ b/gpackages/libs/package_info/mixins.py @@ -1,6 +1,6 @@ from __future__ import absolute_import from .generic import ToStrMixin, file_sha1, file_mtime, cached_property,= \ - file_get_content, iter_over_gen, lofstr_to_ig + file_get_content, iter_over_gen, lofstr_to_ig, toint =20 from .generic_metadata.use_info import get_uses_info, get_local_uses_inf= o # Repo info @@ -22,6 +22,7 @@ from .abstract import AbstractPortage, AbstractPortTree= , AbstractCategory, \ AbstarctPackage, AbstractEbuild =20 import os.path +import re =20 def _file_path(file_name): return lambda self: os.path.join(self.package_path, file_name) @@ -218,6 +219,20 @@ class EbuildBaseMixin(ToStrMixin): def __unicode__(self): return unicode(self.cpv) =20 +REV_STR_RE =3D '^r(?P\d+)$' +rev_re =3D re.compile(REV_STR_RE) + +class EbuildRevMixin(object): + =20 + @cached_property + def revision_as_int(self): + d =3D 0 # Maybe None ? + m =3D rev_re.match(self.revision) + if m is not None: + d =3D m.groupdict().get('rev') + d =3D toint(d, 0) + return d + class EbuildHomepageMixin(object): =20 @cached_property @@ -306,7 +321,7 @@ class EbuildUseMixin(object): return frozenset(self.get_uses()) =20 class EbuildGenericProp(EbuildHomepageMixin, EbuildLicenseMixin, \ - EbuildKeywordsMixin, EbuildUseMixin): + EbuildKeywordsMixin, EbuildUseMixin, EbuildRevMi= xin): pass =20 class PortageGenericMixin(PortageBaseMixin, PortageHerdsMixin):