public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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/apps/packages/management/commands/
Date: Wed, 13 Jun 2012 22:15:42 +0000 (UTC)	[thread overview]
Message-ID: <1339600673.d34d69c598241b44661c494cd85fcf20244ce910.bacher09@gentoo> (raw)

commit:     d34d69c598241b44661c494cd85fcf20244ce910
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Wed Jun 13 15:17:53 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Wed Jun 13 15:17:53 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=d34d69c5

Update console interface fo scanherds and scanusedesc

---
 .../apps/packages/management/commands/scanherds.py |   16 +++++++----
 .../packages/management/commands/scanusedesc.py    |   27 ++++++++++++++-----
 gpackages/apps/packages/managers.py                |    4 +-
 gpackages/apps/packages/scan.py                    |   23 +++++++++++++---
 4 files changed, 50 insertions(+), 20 deletions(-)

diff --git a/gpackages/apps/packages/management/commands/scanherds.py b/gpackages/apps/packages/management/commands/scanherds.py
index 43f10c3..31bc107 100644
--- a/gpackages/apps/packages/management/commands/scanherds.py
+++ b/gpackages/apps/packages/management/commands/scanherds.py
@@ -1,13 +1,17 @@
 from django.core.management.base import BaseCommand, CommandError
-import datetime
-import logging
-from packages import scan
+from packages.scan import Scanner
+from optparse import make_option
 
 
 class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--not-show-time',
+            action='store_false',
+            dest='show_time',
+            default=True,
+            help='Show time of scanning'),
+        )
     args = ''
     help = 'Will scan only herds and maintainers'
     def handle(self, *args, **options):
-        st = datetime.datetime.now()
-        scan.scan_herds()
-        print (datetime.datetime.now() - st).total_seconds()
+        Scanner(scan_herds = True, **options).scan()

diff --git a/gpackages/apps/packages/management/commands/scanusedesc.py b/gpackages/apps/packages/management/commands/scanusedesc.py
index e0ca2b8..705314f 100644
--- a/gpackages/apps/packages/management/commands/scanusedesc.py
+++ b/gpackages/apps/packages/management/commands/scanusedesc.py
@@ -1,14 +1,27 @@
 from django.core.management.base import BaseCommand, CommandError
-import datetime
-import logging
-from packages import scan
+from packages.scan import Scanner
+from optparse import make_option
 
 
 class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('-g','--no-globals',
+            action='store_false',
+            dest='scan_global_use',
+            default=True,
+            help='Don\'t scan globals use descriptions'),
+        make_option('-l', '--no-locals',
+            action='store_false',
+            dest='scan_local_use',
+            default=True,
+            help='Don\'t scan globals use descriptions'),
+        make_option('--not-show-time',
+            action='store_false',
+            dest='show_time',
+            default=True,
+            help='Show time of scanning'),
+        )
     args = ''
     help = 'Will scan use descriptions'
     def handle(self, *args, **options):
-        st = datetime.datetime.now()
-        scan.update_globals_uses_descriptions()
-        scan.scan_uses_description()
-        print (datetime.datetime.now() - st).total_seconds()
+        Scanner(**options).scan()

diff --git a/gpackages/apps/packages/managers.py b/gpackages/apps/packages/managers.py
index 7d02c05..ca1561c 100644
--- a/gpackages/apps/packages/managers.py
+++ b/gpackages/apps/packages/managers.py
@@ -104,13 +104,13 @@ def get_name_and_category_by_cp(package):
 
 
 class VirtualPackageMixin(object):
-    def filter(self, **kwargs):
+    def filter(self,*args, **kwargs):
         package = get_from_kwargs_and_del('package', kwargs)
         if package is not None:
             category, name = get_name_and_category_by_cp(package)
             kwargs.update({'name': name, 'category__category': category})
 
-        return super(VirtualPackageMixin, self).filter(**kwargs)
+        return super(VirtualPackageMixin, self).filter(*args, **kwargs)
 
 
 _gen_all_query_and_manager('Mixin', 'QuerySet', 'Manager',

diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/scan.py
index 3417c12..cdd9538 100644
--- a/gpackages/apps/packages/scan.py
+++ b/gpackages/apps/packages/scan.py
@@ -127,6 +127,8 @@ class Scanner(object):
         self.force_update = bool(kwargs.get('force_update', False))
         self.delete = bool(kwargs.get('delete', True))
         self.scan_repos_name = tuple(kwargs.get('repos',[]))
+        self.scan_global_use_descr = bool(kwargs.get('scan_global_use', False))
+        self.scan_local_use_descr = bool(kwargs.get('scan_local_use', False))
 
     def show_time(self):
         end = datetime.now()
@@ -140,11 +142,17 @@ class Scanner(object):
         if self.s_all:
             self.scan_all_repos(force_update = self.force_update,
                                 delete = self.delete)
-        else:
+        elif len(self.scan_repos_name) > 0:
             self.scan_repos_by_name(self.scan_repos_name,
                                     force_update = self.force_update,
                                     delete = self.delete)
 
+        if self.scan_global_use_descr:
+            self.update_all_globals_uses_descriptions()
+
+        if self.scan_local_use_descr:
+            self.scan_all_uses_description()
+
         if self.is_show_time:
             self.show_time()
 
@@ -497,7 +505,7 @@ class Scanner(object):
             .filter(name__in = use_dict.keys())
 
         for use_object in existend_use_objects:
-            use_object.description = use_dict[use_object.name]
+            use_object.description = use_dict[use_object.name.lower()]
             use_object.save(force_update = True)
 
     def update_all_globals_uses_descriptions(self):
@@ -507,7 +515,9 @@ class Scanner(object):
         self.scan_uses_description(portage.get_all_use_local_desc())
 
     def scan_uses_description(self, use_local_desc):
-        existent_use_objects = models.UseFlagModel.objects.filter(name__in = use_local_desc.keys())
+        existent_use_objects = models.UseFlagModel.objects \
+            .filter(name__in = use_local_desc.keys())
+
         existent_use_local_descr = models.UseFlagDescriptionModel.objects.all()
         cache_uses = {}
         _update_cache_by_queryset(cache_uses, existent_use_objects, 'name')
@@ -522,7 +532,8 @@ class Scanner(object):
             # If this use flag not in database than create it
             if use_flag not in cache_uses:
                 # Maybe get_or_create ?
-                use_flag_object = models.UseFlagModel.objects.create(name = use_flag)
+                use_flag_object = models.UseFlagModel.objects \
+                    .create(name = use_flag)
                 # Add to cache
                 cache_uses[use_flag.lower()] = use_flag_object
             else:
@@ -534,7 +545,9 @@ class Scanner(object):
                     package_object = package_cache[package]
                 else:
                     try:
-                        package_object = models.VirtualPackageModel.objects.get(package = package)
+                        package_object = models.VirtualPackageModel.objects \
+                            .get(package = package)
+
                     except models.VirtualPackageModel.DoesNotExist:
                         continue
                     else:



             reply	other threads:[~2012-06-13 22:16 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-13 22:15 Slava Bacherikov [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-08-26 23:00 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/apps/packages/management/commands/ Slava Bacherikov
2012-08-22 17:55 Slava Bacherikov
2012-07-18 23:03 Slava Bacherikov
2012-07-17  9:42 Slava Bacherikov
2012-07-06 23:09 Slava Bacherikov
2012-07-05 23:27 Slava Bacherikov
2012-06-19  0:12 Slava Bacherikov
2012-06-18 23:00 Slava Bacherikov
2012-06-10 22:23 Slava Bacherikov
2012-06-10 17:51 Slava Bacherikov
2012-06-09 18:19 Slava Bacherikov
2012-06-09 18:19 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-03 16:19 Slava Bacherikov
2012-06-03 13:19 Slava Bacherikov
2012-06-01 21:28 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=1339600673.d34d69c598241b44661c494cd85fcf20244ce910.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