import re class StringUtils(object): # Opens conditional brackets from # (aaa <= 3.1 or bbb) ccc (ddd or fff > 4.5.6) # into # aaa <= 3.1 ccc ddd def getStringInConditionalBrackets(self,inputstring): inputstring=inputstring.strip() items = re.findall(r"([(][A-Za-z0-9 %{?}_\.\-<>=]+[)])", inputstring) for m in items: out = m[m.find("(")+1 : m.find(" or ")].strip() inputstring = inputstring.replace(m, out); return inputstring def getFileNameFromURL(self,inputstring): index=inputstring.rfind("/") return inputstring[index+1:] def getPackageNameFromURL(self,inputstring): filename=self.getFileNameFromURL(inputstring) m = re.search(r"(zip|mozjs|.+-)([0-9_.]+)(\.source|\.tar|-src|\.zip|\+md|\.tgz).*", filename) if m is None: print "Unable to parse "+filename return inputstring name = m.group(1) if name.endswith("-"): name = name[:-1] return name def getPackageVersionFromURL(self,inputstring): filename=self.getFileNameFromURL(inputstring) m = re.search(r"(zip|mozjs|.*-)([0-9_.]+)(\.source|\.tar|-src|\.zip|\+md|\.tgz).*", filename) if m is None: print "Unable to parse "+filename return inputstring name = m.group(2) return name.replace("_", ".")