Example #1
0
 def search(self, searcher):
     # Loaders are responsible for searching on PackageInfo. They
     # should use the fastest possible method. The one here is
     # generic, and should be replaced if possible.
     ic = searcher.ignorecase
     for pkg in self._packages:
         info = self.getInfo(pkg)
         ratio = 0
         if searcher.url:
             for url, cutoff in searcher.url:
                 for refurl in info.getReferenceURLs():
                     _, newratio = globdistance(url, refurl, cutoff, ic)
                     if newratio > ratio:
                         ratio = newratio
                         if ratio == 1:
                             break
                 else:
                     continue
                 break
         if ratio == 1:
             searcher.addResult(pkg, ratio)
             continue
         if searcher.path:
             for spath, cutoff in searcher.path:
                 for path in info.getPathList():
                     _, newratio = globdistance(spath, path, cutoff, ic)
                     if newratio > ratio:
                         ratio = newratio
                         if ratio == 1:
                             break
                 else:
                     continue
                 break
         if ratio == 1:
             searcher.addResult(pkg, ratio)
             continue
         if searcher.group:
             for pat in searcher.group:
                 if pat.search(info.getGroup()):
                     ratio = 1
                     break
         if ratio == 1:
             searcher.addResult(pkg, ratio)
             continue
         if searcher.summary:
             for pat in searcher.summary:
                 if pat.search(info.getSummary()):
                     ratio = 1
                     break
         if ratio == 1:
             searcher.addResult(pkg, ratio)
             continue
         if searcher.description:
             for pat in searcher.description:
                 if pat.search(info.getDescription()):
                     ratio = 1
                     break
         if ratio:
             searcher.addResult(pkg, ratio)
Example #2
0
 def search(self, searcher):
     # Loaders are responsible for searching on PackageInfo. They
     # should use the fastest possible method. The one here is
     # generic, and should be replaced if possible.
     ic = searcher.ignorecase
     for pkg in self._packages:
         info = self.getInfo(pkg)
         ratio = 0
         if searcher.url:
             for url, cutoff in searcher.url:
                 for refurl in info.getReferenceURLs():
                     _, newratio = globdistance(url, refurl, cutoff, ic)
                     if newratio > ratio:
                         ratio = newratio
                         if ratio == 1:
                             break
                 else:
                     continue
                 break
         if ratio == 1:
             searcher.addResult(pkg, ratio)
             continue
         if searcher.path:
             for spath, cutoff in searcher.path:
                 for path in info.getPathList():
                     _, newratio = globdistance(spath, path, cutoff, ic)
                     if newratio > ratio:
                         ratio = newratio
                         if ratio == 1:
                             break
                 else:
                     continue
                 break
         if ratio == 1:
             searcher.addResult(pkg, ratio)
             continue
         if searcher.group:
             for pat in searcher.group:
                 if pat.search(info.getGroup()):
                     ratio = 1
                     break
         if ratio == 1:
             searcher.addResult(pkg, ratio)
             continue
         if searcher.summary:
             for pat in searcher.summary:
                 if pat.search(info.getSummary()):
                     ratio = 1
                     break
         if ratio == 1:
             searcher.addResult(pkg, ratio)
             continue
         if searcher.description:
             for pat in searcher.description:
                 if pat.search(info.getDescription()):
                     ratio = 1
                     break
         if ratio:
             searcher.addResult(pkg, ratio)
Example #3
0
 def search(self, searcher):
     myname = self.name
     myversion = self.version
     ratio = 0
     for nameversion, cutoff in searcher.nameversion:
         _, ratio1 = globdistance(nameversion, myname, cutoff)
         _, ratio2 = globdistance(nameversion,
                                  "%s-%s" % (myname, myversion), cutoff)
         ratio = max(ratio, ratio1, ratio2)
     if ratio:
         searcher.addResult(self, ratio)
Example #4
0
 def search(self, searcher):
     myname = self.name
     myversion = self.version
     ratio = 0
     for nameversion, cutoff in searcher.nameversion:
         _, ratio1 = globdistance(nameversion, myname, cutoff)
         _, ratio2 = globdistance(nameversion,
                                  "%s-%s" % (myname, myversion), cutoff)
         ratio = max(ratio, ratio1, ratio2)
     if ratio:
         searcher.addResult(self, ratio)
Example #5
0
 def search(self, searcher):
     myname = self.name
     myversion = self.version
     ratio = 0
     ic = searcher.ignorecase
     for provides, cutoff in searcher.provides:
         _, ratio1 = globdistance(provides, myname, cutoff, ic)
         _, ratio2 = globdistance(provides, "%s-%s" % (myname, myversion),
                                  cutoff, ic)
         ratio = max(ratio, ratio1, ratio2)
     if ratio:
         searcher.addResult(self, ratio)
Example #6
0
 def search(self, searcher):
     myname = self.name
     myversion = self.version
     ratio = 0
     ic = searcher.ignorecase
     for provides, cutoff in searcher.provides:
         _, ratio1 = globdistance(provides, myname, cutoff, ic)
         _, ratio2 = globdistance(provides, "%s-%s" % (myname, myversion),
                                  cutoff, ic)
         ratio = max(ratio, ratio1, ratio2)
     if ratio:
         searcher.addResult(self, ratio)
Example #7
0
    def search(self, searcher):
        for h, offset in self.getHeaders(Progress()):
            pkg = self._offsets.get(offset)
            if not pkg:
                continue

            ratio = 0
            if searcher.url:
                refurl = h[rpm.RPMTAG_URL]
                if refurl:
                    for url, cutoff in searcher.url:
                        _, newratio = globdistance(url, refurl, cutoff)
                        if newratio > ratio:
                            ratio = newratio
                            if ratio == 1:
                                break
            if ratio == 1:
                searcher.addResult(pkg, ratio)
                continue
            if searcher.path:
                paths = h[rpm.RPMTAG_OLDFILENAMES]
                if paths:
                    for spath, cutoff in searcher.path:
                        for path in paths:
                            _, newratio = globdistance(spath, path, cutoff)
                            if newratio > ratio:
                                ratio = newratio
                                if ratio == 1:
                                    break
                        else:
                            continue
                        break
            if ratio == 1:
                searcher.addResult(pkg, ratio)
                continue
            if searcher.group:
                group = self._groups[pkg]
                for pat in searcher.group:
                    if pat.search(group):
                        ratio = 1
                        break
            if ratio == 1:
                searcher.addResult(pkg, ratio)
                continue
            if searcher.summary:
                summary = h[rpm.RPMTAG_SUMMARY]
                for pat in searcher.summary:
                    if pat.search(summary):
                        ratio = 1
                        break
            if ratio == 1:
                searcher.addResult(pkg, ratio)
                continue
            if searcher.description:
                description = h[rpm.RPMTAG_DESCRIPTION]
                for pat in searcher.description:
                    if pat.search(description):
                        ratio = 1
                        break
            if ratio:
                searcher.addResult(pkg, ratio)
    def search(self, searcher):
        ic = searcher.ignorecase
        for h, offset in self.getHeaders(Progress()):
            pkg = self._offsets.get(offset)
            if not pkg:
                continue

            ratio = 0
            if searcher.url:
                refurl = h[rpm.RPMTAG_URL]
                if refurl:
                    for url, cutoff in searcher.url:
                        _, newratio = globdistance(url, refurl, cutoff, ic)
                        if newratio > ratio:
                            ratio = newratio
                            if ratio == 1:
                                break
            if ratio == 1:
                searcher.addResult(pkg, ratio)
                continue
            if searcher.path:
                paths = h[rpm.RPMTAG_OLDFILENAMES]
                if paths:
                    if type(paths) != list:
                        paths = [paths]
                    for spath, cutoff in searcher.path:
                        for path in paths:
                            _, newratio = globdistance(spath, path, cutoff, ic)
                            if newratio > ratio:
                                ratio = newratio
                                if ratio == 1:
                                    break
                        else:
                            continue
                        break
            if ratio == 1:
                searcher.addResult(pkg, ratio)
                continue
            if searcher.group:
                group = self._groups[pkg]
                for pat in searcher.group:
                    if pat.search(group):
                        ratio = 1
                        break
            if ratio == 1:
                searcher.addResult(pkg, ratio)
                continue
            if searcher.summary:
                summary = h[rpm.RPMTAG_SUMMARY]
                for pat in searcher.summary:
                    if pat.search(summary):
                        ratio = 1
                        break
            if ratio == 1:
                searcher.addResult(pkg, ratio)
                continue
            if searcher.description:
                description = h[rpm.RPMTAG_DESCRIPTION]
                for pat in searcher.description:
                    if pat.search(description):
                        ratio = 1
                        break
            if ratio:
                searcher.addResult(pkg, ratio)