def parse_depends(self, value): package_name = Word(alphanums + '.-${}:')('name') version = Combine( Word(nums + '.-') + Optional(Literal('~') + Word(alphanums + '+')) )('version') sign = Or(map(Literal, ('>', '<', '>=', '<=', '=',)))('sign') dependency = ( ( package_name + Literal('(').suppress() + Optional(sign)('sign') + version + Literal(')').suppress() ) | ( package_name ) ).setParseAction(lambda x: get_dependency(x.name, x.sign, x.version)) delim = MatchFirst([]) for i in self.dependency_delimiters + self.dependency_interlimiters: delim = delim | Literal(i) dlName = _ustr(dependency)+" ["+_ustr(delim)+" "+_ustr(dependency)+"]..." dependencies = Optional((dependency + ZeroOrMore(delim + dependency)).setName(dlName)) return dependencies.parseString(value, True).asList()
def __str__( self ): if hasattr(self,"name"): return self.name if self.strRepr is None: self.strRepr = "[" + _ustr(self.expr) + "]" return self.strRepr
def _defaultExceptionDebugAction(instring, loc, expr, exc): log.debug("Exception raised:" + P._ustr(exc))
def _defaultSuccessDebugAction(instring, startloc, endloc, expr, toks): log.debug("Matched " + P._ustr(expr) + " -> " + str(toks.asList()))
def _defaultStartDebugAction(instring, loc, expr): log.debug("Match " + P._ustr(expr) + " at loc " + P._ustr(loc) + "(%d,%d)" % ( P.lineno(loc,instring), P.col(loc,instring) ))
def _defaultStartDebugAction(instring, loc, expr): log.debug("Match " + P._ustr(expr) + " at loc " + P._ustr(loc) + "(%d,%d)" % (P.lineno(loc, instring), P.col(loc, instring)))