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: Sat,  9 Jun 2012 18:19:48 +0000 (UTC)	[thread overview]
Message-ID: <1339256724.d482308972446f7649ff7fbf446512160e57cfb2.bacher09@gentoo> (raw)

commit:     d482308972446f7649ff7fbf446512160e57cfb2
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Sat Jun  9 15:45:24 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Sat Jun  9 15:45:24 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=d4823089

Refactoring scan.py

---
 .../packages/management/commands/scanpackages.py   |    9 +-
 gpackages/apps/packages/managers.py                |    5 +-
 gpackages/apps/packages/models.py                  |    1 -
 gpackages/apps/packages/scan.py                    |  539 +++++++++++---------
 4 files changed, 309 insertions(+), 245 deletions(-)

diff --git a/gpackages/apps/packages/management/commands/scanpackages.py b/gpackages/apps/packages/management/commands/scanpackages.py
index 35a117b..3f5010c 100644
--- a/gpackages/apps/packages/management/commands/scanpackages.py
+++ b/gpackages/apps/packages/management/commands/scanpackages.py
@@ -1,7 +1,8 @@
 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
 #l = logging.getLogger('django.db.backends')
 #l.setLevel(logging.DEBUG)
 #l.addHandler(logging.FileHandler('database.log'))
@@ -13,5 +14,7 @@ class Command(BaseCommand):
     def handle(self, *args, **options):
         st = datetime.datetime.now()
         #scan.scanpackages()
-        scan.scan_all_repos()
-        print (datetime.datetime.now() - st).total_seconds()
+        #scan.scan_all_repos()
+        Scanner().scan_all_repos()
+        self.stdout.write(unicode((datetime.datetime.now() - st).total_seconds()))
+        self.stdout.write("\n")

diff --git a/gpackages/apps/packages/managers.py b/gpackages/apps/packages/managers.py
index 7ebde50..5ef2ed6 100644
--- a/gpackages/apps/packages/managers.py
+++ b/gpackages/apps/packages/managers.py
@@ -80,9 +80,12 @@ class HerdsMixin(object):#{{{
 
 class MaintainerMixin(object):#{{{
     def filter(self, *args, **kwargs):
-        maintainer__in = get_from_kwargs_and_del('maintainer__in', kwargs)
+        maintainer__in, maintainer = \
+            get_from_kwargs_and_del(['maintainer__in', 'maintainer'], kwargs)
         if maintainer__in is not None:
             kwargs['email__in'] = maintainer__in
+        elif maintainer is not None:
+            kwargs['email'] = maintainer.email
         return super(MaintainerMixin, self).filter(*args, **kwargs)#}}}
 
 

diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py
index 82d3ca5..dc2147c 100644
--- a/gpackages/apps/packages/models.py
+++ b/gpackages/apps/packages/models.py
@@ -55,7 +55,6 @@ class MaintainerModel(AbstractDateTimeModel):
     def init_by_maintainer(self, maintainer):
         self.name = maintainer.name
         self.email = maintainer.email
-        self.role = maintainer.role
 
     def update_by_maintainer(self, maintainer):
         self.name = maintainer.name

diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/scan.py
index c9645fc..db9c0e6 100644
--- a/gpackages/apps/packages/scan.py
+++ b/gpackages/apps/packages/scan.py
@@ -83,78 +83,315 @@ def _get_items(items_list, Model, field_name, cache_var):
     return items_objects
     
 
-def scan_maintainers(maintainers_dict):
-    existend_maintainers = models.MaintainerModel.objects.all()
-    main_dict = {}
-    mo_dict = {}
-    #to_del = []
-    _update_cache_by_queryset(main_dict, maintainers_dict.keys(), 'email')
-    for maintainer_object in existend_maintainers:
-        if maintainer_object.email in main_dict:
-            maintainer_cmp = main_dict[maintainer_object.email]
-            # need update ?
-            if maintainer_object.check_or_need_update(maintainer_cmp):
-                # updating
-                maintainer_object.update_by_maintainer(maintainer_cmp)
-                maintainer_object.save(force_update = True)
-            mo_dict[maintainer_object.email] = maintainer_object
-        #else:
-            #to_del.append(maintainer_object.pk)
-    #print to_del
-    #print mo_dict
-    to_create = []
-    for maintainer in maintainers_dict.iterkeys():
-        if maintainer.email not in mo_dict:
-            to_create.append(maintainer)
-
-    mobjects = _create_objects(models.MaintainerModel, 'maintainer', to_create)
-    _update_cache_by_queryset(mo_dict, mobjects, 'email')
-
-    return mo_dict
+
+class Scanner(object):
+    def __init__(self, verbosity = 0):
+        # maintainers_cache: maintainer.email as key, and maintainer object as
+        # value
+        self.maintainers_cache = {}
+        self.maintainers_cache_loaded = False
+        # herds cache: herd.name as key and herd object as value
+        self.herds_cache = {}
+        self.herds_cache_loaded = False
+        self.licenses_cache = {}
+        self.uses_cache = {}
+        self.arches_cache = {}
+        self.homepages_cache = {}    
+        self.herds_cache = {}
+        self.maintainers_cache = {}
+        self.herds_object = herds.Herds()
+
+        self.arches_cache = {}
+
+        self.verbosity = verbosity
+
+    def get_existent_maintainers(self):
+        return models.MaintainerModel.objects.all()
+
+    def get_existent_herds(self):
+        return models.HerdsModel.objects.all()
+
+    def get_maintainers_cache(self):
+        maintainers_dict = {}
+        existent_maintainers = self.get_existent_maintainers()
+        _update_cache_by_queryset(maintainers_dict, existent_maintainers, 'email')
+        return maintainers_dict
+
+    def load_maintainers_to_cache(self):
+        self.maintainers_cache = self.get_maintainers_cache()
+        self.maintainers_cache_loaded = True
+        
+    def get_herds_cache(self):
+        herds_dict = {}
+        existent_herds = self.get_existent_herds()
+        _update_cache_by_queryset(herds_dict, existent_herds, 'name')
+        return herds_dict
+
+    def load_herds_to_cache(self):
+        if not self.herds_cache_loaded:
+            self.herds_cache = self.get_herds_cache()
+            self.herds_cache_loaded = True
+
+    def scan_maintainers(self, maintainers_dict):
+        existend_maintainers = self.get_existent_maintainers()
+        main_dict = {}
+        mo_dict = {}
+        #to_del = []
+        _update_cache_by_queryset(main_dict, maintainers_dict.keys(), 'email')
+        for maintainer_object in existend_maintainers:
+            if maintainer_object.email in main_dict:
+                maintainer_cmp = main_dict[maintainer_object.email]
+                # need update ?
+                if maintainer_object.check_or_need_update(maintainer_cmp):
+                    # updating
+                    maintainer_object.update_by_maintainer(maintainer_cmp)
+                    maintainer_object.save(force_update = True)
+                mo_dict[maintainer_object.email] = maintainer_object
+
+        to_create = []
+        for maintainer in maintainers_dict.iterkeys():
+            if maintainer.email not in mo_dict:
+                to_create.append(maintainer)
+
+        mobjects = _create_objects(models.MaintainerModel, 'maintainer', to_create)
+        _update_cache_by_queryset(mo_dict, mobjects, 'email')
+
+        self.maintainers_cache = mo_dict
+        self.maitainers_cache_loaded = True
             
 
-def scan_herds():
-    existent_herds = models.HerdsModel.objects.all()
-    herds_object = herds.Herds()
-    herds_dict = herds_object.get_herds_indict()
-    maintainers_dict = herds_object.get_maintainers_with_herds()
-    ho_dict = {}
-    to_del = []
-    for herd_object in existent_herds:
-        if herd_object.name not in herds_dict:
-            to_del.append(herd_object.pk)
+    def scan_herds(self):
+        existent_herds = self.get_existent_herds()
+        herds_dict = self.herds_object.get_herds_indict()
+        herds_objects_dict = {}
+        to_del = []
+        for herd_object in existent_herds:
+            if herd_object.name not in herds_dict:
+                to_del.append(herd_object.pk)
+            else:
+                herd_cmp = herds_dict[herd_object.name]
+                # need update ?
+                if herd_object.check_or_need_update(herd_cmp):
+                    # updating 
+                    herd_object.update_by_herd(herd_cmp)
+                    herd_object.save(force_update = True)
+                herds_objects_dict[herd_object.name] = herd_object
+
+        models.HerdsModel.objects.filter(pk__in = to_del).delete()
+
+        to_create = []
+        for herd in herds_dict.itervalues():
+            if herd.name not in herds_objects_dict:
+                to_create.append(herd)
+
+        cobjects = _create_objects(models.HerdsModel, 'herd', to_create)
+        _update_cache_by_queryset(herds_objects_dict, cobjects, 'name')
+
+        # Add to cache
+        self.herds_cache = herds_objects_dict
+        self.herds_cache_loaded = True
+        # Add related maintainers to herds
+        self._add_related_to_herds()
+
+
+    def _get_maintainers_for_relation_with_herds(self, maintainers_dict):
+        res = defaultdict(list)
+        for mainteiner, herds_names in maintainers_dict.iteritems():
+           for herd in herds_names:
+               res[herd].append(self.maintainers_cache[mainteiner.email])
+        return res
+
+    def _add_related_to_herds(self):
+        maintainers_dict = self.herds_object.get_maintainers_with_herds()
+        self.scan_maintainers(maintainers_dict)
+        #Gen data for relate with herds
+        res = self._get_maintainers_for_relation_with_herds(maintainers_dict)
+
+        for herd_name, herd_object in self.herds_cache.iteritems():
+            herd_object.maintainers.clear()
+            herd_object.maintainers.add(*res[herd_name])
+
+    def get_maintainers(self):
+        if not self.maintainers_cache_loaded:
+            self.load_maintainers_to_cache()
+        return self.maintainers_cache
+
+    def scan_all_repos(self, scan_herds = True):
+        #cache_dict = anydbm.open('cache.db','c')
+        if scan_herds:
+            self.scan_herds()
+        for repo in portage.iter_trees():
+            repo_obj, repo_created = models.RepositoryModel.objects.get_or_create(name = repo.name)
+            self.scanpackages(repo, repo_obj)
+        #cache_dict.close()
+
+    def get_licenses_objects(self, ebuild):
+        licenses = ebuild.licenses
+        return _get_items(licenses, models.LicensModel, 'name', self.licenses_cache)
+
+    def get_uses_objects(self, ebuild):
+        uses = [ use.name for use in ebuild.iter_uses() ]
+        return _get_items(uses, models.UseFlagModel, 'name', self.uses_cache)
+
+    def get_homepages_objects(self, ebuild):
+        homepages = ebuild.homepages
+        return _get_items(homepages, models.HomepageModel, 'url', self.homepages_cache)
+
+    def get_maintainers_objects(self, package):
+        objects = []
+        for maintainer in package.metadata.maintainers():
+            if maintainer.email in self.maintainers_cache:
+                objects.append(self.maintainers_cache[maintainer.email])
+            else:
+                maintainer_object, created = models.MaintainerModel \
+                        .objects.get_or_create(maintainer = maintainer)
+                objects.append(maintainer_object)
+                # Add to cache
+                self.maintainers_cache[maintainer_object.email] = maintainer_object
+        return objects
+
+    def get_herds_objects(self, package):
+        self.load_herds_to_cache()
+        herds_objects = []
+        for herd in package.metadata.herds():
+            if herd in self.herds_cache:
+                herds_objects.append(self.herds_cache[herd])
+
+        return herds_objects
+
+    def get_arch_object(self, arch_name):
+        if arch_name in self.arches_cache:
+            arch = self.arches_cache[arch_name]
         else:
-            herd_cmp = herds_dict[herd_object.name]
-            # need update ?
-            if herd_object.check_or_need_update(herd_cmp):
-                # updating 
-                herd_object.update_by_herd(herd_cmp)
-                herd_object.save(force_update = True)
-            ho_dict[herd_object.name] = herd_object
+            arch, created = models.ArchesModel.objects.get_or_create(name = arch_name)
+            self.arches_cache[arch_name] = arch
+        return arch
+
+    def create_keywords_objects(self, ebuild, ebuild_object):
+        keywords_list = []
+        for keyword in ebuild.get_keywords():
+            keyword_object = models.Keyword(status = keyword.status,
+                                            ebuild = ebuild_object)
+
+            keyword_object.arch = self.get_arch_object(keyword.arch)
+            keywords_list.append(keyword_object)
+
+        models.Keyword.objects.bulk_create(keywords_list)
+
+    def clean_keywords_object(self, ebuild_object):
+        models.Keyword.objects.filter(ebuild = ebuild_object).delete()
 
-    models.HerdsModel.objects.filter(pk__in = to_del).delete()
+    def scanpackages(self, porttree, porttree_obj, delete = True,
+                     force_update = False, update_cache = True, use_cache = True):
 
-    to_create = []
-    for herd in herds_dict.itervalues():
-        if herd.name not in ho_dict:
-            to_create.append(herd)
+                    
 
-    cobjects = _create_objects(models.HerdsModel, 'herd', to_create)
-    _update_cache_by_queryset(ho_dict, cobjects, 'name')
 
-    mo_dict = scan_maintainers(maintainers_dict)
-    #Gen data for relate with herds
-    res = defaultdict(list)
-    for mainteiner, herds_names in maintainers_dict.iteritems():
-       for herd in herds_names:
-           res[herd].append(mo_dict[mainteiner.email])
+        def add_related_to_ebuild(ebuild, ebuild_object):
+            # Add licenses
+            ebuild_object.licenses.add(*self.get_licenses_objects(ebuild))
+            ebuild_object.use_flags.add(*self.get_uses_objects(ebuild))
+            ebuild_object.homepages.add(*self.get_homepages_objects(ebuild))
+            self.create_keywords_objects(ebuild, ebuild_object)
+            
+        def clear_related_to_ebuild(ebuild_object):
+            ebuild_object.licenses.clear()
+            ebuild_object.use_flags.clear()
+            ebuild_object.homepages.clear()
+            self.clean_keywords_object(ebuild_object)
+
+        def update_related_to_ebuild(ebuild, ebuild_object):
+            clear_related_to_ebuild(ebuild_object)
+            add_related_to_ebuild(ebuild, ebuild_object)
+
+        def create_ebuilds(package, package_object):
+            for ebuild in package.iter_ebuilds():
+                ebuild_object = models.EbuildModel()
+                ebuild_object.init_by_ebuild(ebuild)
+                ebuild_object.package = package_object
+                # To Add some related objects it should have pk
+                ebuild_object.save(force_insert=True)
+                add_related_to_ebuild(ebuild, ebuild_object)
+
+        def update_ebuilds(package, package_object, delete = True):
+            not_del = []
+            for ebuild in package.iter_ebuilds():
+                ebuild_object, ebuild_created = models.EbuildModel.objects.get_or_create(ebuild = ebuild, package = package_object)
+                not_del.append(ebuild_object.pk)
+                if ebuild_created:
+                    add_related_to_ebuild(ebuild, ebuild_object)
+                    continue
+                if ebuild_object.check_or_need_update(ebuild):
+                    ebuild_object.update_by_ebuild(ebuild)
+                    update_related_to_ebuild(ebuild, ebuild_object)
+                    ebuild_object.save(force_update = True)
+            if delete:
+                models.EbuildModel.objects.filter(package = package_object).exclude(pk__in = not_del).delete()
+
+        def clear_related_to_package(package_object):
+            package_object.herds.clear()
+            package_object.maintainers.clear()
+            
+
+        def add_related_to_package(package, package_object):
+            package_object.herds.add(*self.get_herds_objects(package))
+            package_object.maintainers.add(*self.get_maintainers_objects(package))
+
+        def update_related_to_package(package, package_object):
+            clear_related_to_package(package_object)
+            add_related_to_package(package, package_object)
 
-    for herd_name, herd_object in ho_dict.iteritems():
-        herd_object.maintainers.clear()
-        herd_object.maintainers.add(*res[herd_name])
+        def update_package(package, package_object, force_update = False):
+            if package_object.need_update_metadata(package) or force_update:
+                #Updating related objects to package
+                update_related_to_package(package, package_object)
+
+            if package_object.need_update_ebuilds(package) or force_update:
+                update_ebuilds(package, package_object)
+
+            package_object.update_info(package)
+            package_object.save(force_update = True)
+
+        # Load homepages to cache
+        #for homepage in models.HomepageModel.objects.all():
+            #homepages_cache[homepage.url] = homepage
+        existend_categorys = []
+        for category in porttree.iter_categories():
+            existend_packages = []
+            category_object, category_created = models.CategoryModel.objects.get_or_create(category = category)
+            existend_categorys.append(category_object.pk)
+            for package in category.iter_packages():
+                #if use_cache:
+                    #key = str(porttree.name)+'/'+str(package)
+                    #val = None
+                    #if key in cache_dict:
+                        #val = cache_dict[key]
+                    #if val is not None and val == package.manifest_sha1:
+                        #continue
+                print('%s [%s]' % (str(package).ljust(44), porttree))
+                package_object, package_created = models.PackageModel.objects.only('changelog_hash', 'manifest_hash', 'metadata_hash') \
+                            .get_or_create(package = package, category = category_object, repository = porttree_obj)
+                #if update_cache:
+                    #key = str(porttree.name)+'/'+str(package)
+                    #cache_dict[key] = package.manifest_sha1
+                    
+                existend_packages.append(package_object.pk)
+                if not package_created:
+                    if package_object.check_or_need_update(package) or force_update:
+                        # need update
+                        update_package(package, package_object)
 
-    return ho_dict, mo_dict
+                    continue
+                # if package_created:
+                add_related_to_package(package, package_object)
+                create_ebuilds(package, package_object)
 
+            if delete:
+                models.PackageModel.objects.filter(category = category_object, repository = porttree_obj).exclude(pk__in = existend_packages).delete()
+
+
+
+cache_dict =  None
 def update_globals_uses_descriptions():
     # Need changes 
     uses_g = use_info.get_uses_info()
@@ -203,181 +440,3 @@ def scan_uses_description():
                     use_desc_obj.save(force_update = True)
         models.UseFlagDescriptionModel.objects.bulk_create(to_create)
             
-licenses_cache = {}
-uses_cache = {}
-arches_cache = {}
-homepages_cache = {}    
-herds_cache = {}
-maintainers_cache = {}
-
-cache_dict =  None
-def scanpackages(porttree, porttree_obj, delete = True, force_update = False,
-                update_cache = True, use_cache = True):
-    def get_licenses_objects(ebuild):
-        licenses = ebuild.licenses
-        return _get_items(licenses, models.LicensModel, 'name', licenses_cache)
-
-    def get_uses_objects(ebuild):
-        uses = [ use.name for use in ebuild.iter_uses() ]
-        return _get_items(uses, models.UseFlagModel, 'name', uses_cache)
-
-    def get_keywords_objects(ebuild, ebuild_object):
-        keywords_list = []
-        for keyword in ebuild.get_keywords():
-            keyword_object = models.Keyword(status = keyword.status,
-                                            ebuild = ebuild_object)
-
-            if keyword.arch in arches_cache:
-                arch = arches_cache[keyword.arch]
-            else:
-                arch, created = models.ArchesModel.objects.get_or_create(name = keyword.arch)
-                arches_cache[keyword.arch] = arch
-            
-            keyword_object.arch = arch
-            keywords_list.append(keyword_object)
-
-        models.Keyword.objects.bulk_create(keywords_list)
-
-
-    def get_homepages_objects(ebuild):
-        homepages = ebuild.homepages
-        return _get_items(homepages, models.HomepageModel, 'url', homepages_cache)
-
-    
-    def get_maintainers_objects(package):
-        maintainers = package.metadata.maintainers()
-        objects = []
-        for maintainer in maintainers:
-            if maintainer.email in maintainers_cache:
-                objects.append(maintainers_cache[maintainer.email])
-            else:
-                maintainer_object, created = models.MaintainerModel \
-                        .objects.get_or_create(email = maintainer.email)
-                if created:
-                    maintainer_object.name = maintainer.name
-                    maintainer_object.save()
-                objects.append(maintainer_object)
-        return objects
-                
-
-    def get_herds_objects(package):
-        herds = package.metadata.herds()
-        herds_objects = []
-        for herd in herds:
-            if herd in herds_cache:
-                herds_objects.append(herds_cache[herd])
-
-        return herds_objects
-
-    def add_related_to_ebuild(ebuild, ebuild_object):
-        # Add licenses
-        ebuild_object.licenses.add(*get_licenses_objects(ebuild))
-        ebuild_object.use_flags.add(*get_uses_objects(ebuild))
-        ebuild_object.homepages.add(*get_homepages_objects(ebuild))
-        get_keywords_objects(ebuild, ebuild_object)
-        
-    def clear_related_to_ebuild(ebuild_object):
-        ebuild_object.licenses.clear()
-        ebuild_object.use_flags.clear()
-        ebuild_object.homepages.clear()
-        models.Keyword.objects.filter(ebuild = ebuild_object).delete()
-
-    def update_related_to_ebuild(ebuild, ebuild_object):
-        clear_related_to_ebuild(ebuild_object)
-        add_related_to_ebuild(ebuild, ebuild_object)
-
-    def create_ebuilds(package, package_object):
-        for ebuild in package.iter_ebuilds():
-            ebuild_object = models.EbuildModel()
-            ebuild_object.init_by_ebuild(ebuild)
-            ebuild_object.package = package_object
-            # To Add some related objects it should have pk
-            ebuild_object.save(force_insert=True)
-            add_related_to_ebuild(ebuild, ebuild_object)
-
-    def update_ebuilds(package, package_object, delete = True):
-        not_del = []
-        for ebuild in package.iter_ebuilds():
-            ebuild_object, ebuild_created = models.EbuildModel.objects.get_or_create(ebuild = ebuild, package = package_object)
-            not_del.append(ebuild_object.pk)
-            if ebuild_created:
-                add_related_to_ebuild(ebuild, ebuild_object)
-                continue
-            if ebuild_object.check_or_need_update(ebuild):
-                ebuild_object.update_by_ebuild(ebuild)
-                update_related_to_ebuild(ebuild, ebuild_object)
-                ebuild_object.save(force_update = True)
-        if delete:
-            models.EbuildModel.objects.filter(package = package_object).exclude(pk__in = not_del).delete()
-
-    def clear_related_to_package(package_object):
-        package_object.herds.clear()
-        package_object.maintainers.clear()
-        
-
-    def add_related_to_package(package, package_object):
-        package_object.herds.add(*get_herds_objects(package))
-        package_object.maintainers.add(*get_maintainers_objects(package))
-
-    def update_related_to_package(package, package_object):
-        clear_related_to_package(package_object)
-        add_related_to_package(package, package_object)
-
-    def update_package(package, package_object, force_update = False):
-        if package_object.need_update_metadata(package) or force_update:
-            #Updating related objects to package
-            update_related_to_package(package, package_object)
-
-        if package_object.need_update_ebuilds(package) or force_update:
-            update_ebuilds(package, package_object)
-
-        package_object.update_info(package)
-        package_object.save(force_update = True)
-
-    # Load homepages to cache
-    #for homepage in models.HomepageModel.objects.all():
-        #homepages_cache[homepage.url] = homepage
-    existend_categorys = []
-    for category in porttree.iter_categories():
-        existend_packages = []
-        category_object, category_created = models.CategoryModel.objects.get_or_create(category = category)
-        existend_categorys.append(category_object.pk)
-        for package in category.iter_packages():
-            #if use_cache:
-                #key = str(porttree.name)+'/'+str(package)
-                #val = None
-                #if key in cache_dict:
-                    #val = cache_dict[key]
-                #if val is not None and val == package.manifest_sha1:
-                    #continue
-            print('%s [%s]' % (str(package).ljust(44), porttree))
-            package_object, package_created = models.PackageModel.objects.only('changelog_hash', 'manifest_hash', 'metadata_hash') \
-                        .get_or_create(package = package, category = category_object, repository = porttree_obj)
-            #if update_cache:
-                #key = str(porttree.name)+'/'+str(package)
-                #cache_dict[key] = package.manifest_sha1
-                
-            existend_packages.append(package_object.pk)
-            if not package_created:
-                if package_object.check_or_need_update(package) or force_update:
-                    # need update
-                    update_package(package, package_object)
-
-                continue
-            add_related_to_package(package, package_object)
-            if package_created:
-                create_ebuilds(package, package_object)
-
-        if delete:
-            models.PackageModel.objects.filter(category = category_object, repository = porttree_obj).exclude(pk__in = existend_packages).delete()
-
-
-def scan_all_repos():
-    global herds_cache, maintainers_cache
-    #global cache_dict
-    #cache_dict = anydbm.open('cache.db','c')
-    herds_cache, maintainers_cache = scan_herds()
-    for repo in portage.iter_trees():
-        repo_obj, repo_created = models.RepositoryModel.objects.get_or_create(name = repo.name)
-        scanpackages(repo, repo_obj)
-    #cache_dict.close()



             reply	other threads:[~2012-06-09 18:20 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-09 18:19 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-13 22:15 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-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=1339256724.d482308972446f7649ff7fbf446512160e57cfb2.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