def create_post_timedelta_literal(tok): """Detects <plus/minus> <number> <timescale>""" delta = Or([CaselessLiteral(t) for t in ['+', '-', 'plus', 'minus']]) + originalTextFor( Or([ Word(nums) + ZeroOrMore(',' + Word(nums + ',')) + ZeroOrMore('.' + Word(nums)), CaselessLiteral('an'), CaselessLiteral('a') ])) + CaselessLiteral(tok) + StringEnd() delta.setName('post' + tok).\ setParseAction(DateParser.generate_post_timedelta) return delta
def create_post_timedelta_literal(tok): """Detects <plus/minus> <number> <timescale>""" delta = Or( [CaselessLiteral(t) for t in ['+', '-', 'plus', 'minus']] ) + originalTextFor(Or([ Word(nums) + ZeroOrMore(',' + Word(nums+',')) + ZeroOrMore('.' + Word(nums)), CaselessLiteral('an'), CaselessLiteral('a') ])) + CaselessLiteral(tok) + StringEnd() delta.setName('post' + tok).\ setParseAction(DateParser.generate_post_timedelta) return delta
def create_post_timedelta_literal(tok): """ Detects <plus/minus> <number> <timescale> :param tok: the token we want to produce a detector for :type tok: str :return: the caseless literal :rtype: pyparsing.Or """ delta = Or( [CaselessLiteral(t) for t in ['+', '-', 'plus', 'minus']] ) + originalTextFor(Or([ Word(nums) + ZeroOrMore(',' + Word(nums+',')) + ZeroOrMore('.' + Word(nums)), CaselessLiteral('an'), CaselessLiteral('a') ])) + CaselessLiteral(tok) + StringEnd() delta.setName('post' + tok).\ setParseAction(DateParser.generate_post_timedelta) return delta
def np_int(s, loc, tokens): return np_composite('int', np_int_dtypes) def np_float(s, loc, tokens): return np_composite('float', np_float_dtypes) dtype_checks.append(Keyword('int').setParseAction(np_int)) dtype_checks.append(Keyword('uint').setParseAction(np_uint)) dtype_checks.append(Keyword('float').setParseAction(np_float)) composite = ['int', 'uint', 'float'] ndarray_simple_contract = Or(dtype_checks + array_constraints) ndarray_simple_contract.setName('numpy element contract') suggester = create_suggester(get_options=lambda: atomic + composite) baseExpr = ndarray_simple_contract | suggester baseExpr.setName('numpy contract (with recovery)') op = myOperatorPrecedence # op = operatorPrecedence ndarray_composite_contract = op(baseExpr, [ (',', 2, opAssoc.LEFT, ArrayAnd.parse_action), ('|', 2, opAssoc.LEFT, ArrayOR.parse_action), ]) def my_delim_list2(what, delim): return (what + ZeroOrMore(S(delim) + FollowedBy(NotAny(ellipsis)) - what))
return np_composite('uint', np_uint_dtypes) def np_int(s, loc, tokens): return np_composite('int', np_int_dtypes) def np_float(s, loc, tokens): return np_composite('float', np_float_dtypes) dtype_checks.append(Keyword('int').setParseAction(np_int)) dtype_checks.append(Keyword('uint').setParseAction(np_uint)) dtype_checks.append(Keyword('float').setParseAction(np_float)) composite = ['int', 'uint', 'float'] ndarray_simple_contract = Or(dtype_checks + array_constraints) ndarray_simple_contract.setName('numpy element contract') suggester = create_suggester(get_options=lambda: atomic + composite) baseExpr = ndarray_simple_contract | suggester baseExpr.setName('numpy contract (with recovery)') op = myOperatorPrecedence # op = operatorPrecedence ndarray_composite_contract = op(baseExpr, [ (',', 2, opAssoc.LEFT, ArrayAnd.parse_action), ('|', 2, opAssoc.LEFT, ArrayOR.parse_action), ]) def my_delim_list2(what, delim): return (what + ZeroOrMore(S(delim) + FollowedBy(NotAny(ellipsis)) - what))