Example #1
0
 def reqobj_combine(self, reqobj0, reqobj1):
     if reqobj0.project_name != reqobj1.project_name:
         raise RuntimeError, \
             'Try to combine reqobj different project %s, %s.' %\
             (reqobj0.project_name, reqobj1.project_name)
     extras = reqobj0.extras
     for e1 in reqobj1.extras:
         if e1 not in extras: extras.append(e1)
     extras = ','.join(extras)
     if extras: extras = '[%s]' % extras
     specs = [''.join(s) for s in reqobj0.specs]
     for s1 in [''.join(s) for s in reqobj1.specs]:
         if s1 not in specs: specs.append(s1)
     specs = ','.join(specs)
     return reqstr2obj('%s%s%s' % (reqobj0.project_name, extras, specs))
Example #2
0
 def resolve_matchlist(self, logobj, pkgidx_url, skip_logged_ornot):
     if self.matchlist == []: return
     prefix = "<a href='"; sep = "/'>"; suffix = "</a><br/>"
     sockf = urllib2.urlopen(pkgidx_url)
     ln = sockf.readline()
     while ln:
         ln = ln.strip()
         lnidx = ln.find(sep)
         if lnidx > 0 and ln.startswith(prefix) and ln.endswith(suffix):
             s0 = ln[len(prefix):lnidx]
             s1 = ln[lnidx + len(sep): -len(suffix)]
             if s0 == s1: # A valid PyPI package name is recognized.
                 for match in self.matchlist:
                     if fnmatch.fnmatch(s0, match):
                         if self.valid_cr.match(s0) is None:
                             logobj.in_except(s0, 'Invalid name')
                         elif skip_logged_ornot and logobj.check_logged(s0):
                             pass
                         else:
                             self.add(reqstr2obj(s0))
                         break
         ln = sockf.readline()
     sockf.close()
     self.matchlist = []
Example #3
0
 def append_arg(self, reqarg):
     if '*' in reqarg or '?' in reqarg: self.matchlist.append(reqarg)
     else: self.add(reqstr2obj(reqarg))
Example #4
0
 def check_logged(self, pypi_dirname):
     if self.log_path is None: return False
     if not self.check_update(): self.load_from_file()
     dist = reqstr2obj(pypi_dirname)
     return dist.project_name in self.pkginfo_map