Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/jmespath/ast.py: 100%

44 statements  

« prev     ^ index     » next       coverage.py v7.3.2, created at 2023-12-08 06:51 +0000

1# AST nodes have this structure: 

2# {"type": <node type>", children: [], "value": ""} 

3 

4 

5def comparator(name, first, second): 

6 return {'type': 'comparator', 'children': [first, second], 'value': name} 

7 

8 

9def current_node(): 

10 return {'type': 'current', 'children': []} 

11 

12 

13def expref(expression): 

14 return {'type': 'expref', 'children': [expression]} 

15 

16 

17def function_expression(name, args): 

18 return {'type': 'function_expression', 'children': args, 'value': name} 

19 

20 

21def field(name): 

22 return {"type": "field", "children": [], "value": name} 

23 

24 

25def filter_projection(left, right, comparator): 

26 return {'type': 'filter_projection', 'children': [left, right, comparator]} 

27 

28 

29def flatten(node): 

30 return {'type': 'flatten', 'children': [node]} 

31 

32 

33def identity(): 

34 return {"type": "identity", 'children': []} 

35 

36 

37def index(index): 

38 return {"type": "index", "value": index, "children": []} 

39 

40 

41def index_expression(children): 

42 return {"type": "index_expression", 'children': children} 

43 

44 

45def key_val_pair(key_name, node): 

46 return {"type": "key_val_pair", 'children': [node], "value": key_name} 

47 

48 

49def literal(literal_value): 

50 return {'type': 'literal', 'value': literal_value, 'children': []} 

51 

52 

53def multi_select_dict(nodes): 

54 return {"type": "multi_select_dict", "children": nodes} 

55 

56 

57def multi_select_list(nodes): 

58 return {"type": "multi_select_list", "children": nodes} 

59 

60 

61def or_expression(left, right): 

62 return {"type": "or_expression", "children": [left, right]} 

63 

64 

65def and_expression(left, right): 

66 return {"type": "and_expression", "children": [left, right]} 

67 

68 

69def not_expression(expr): 

70 return {"type": "not_expression", "children": [expr]} 

71 

72 

73def pipe(left, right): 

74 return {'type': 'pipe', 'children': [left, right]} 

75 

76 

77def projection(left, right): 

78 return {'type': 'projection', 'children': [left, right]} 

79 

80 

81def subexpression(children): 

82 return {"type": "subexpression", 'children': children} 

83 

84 

85def slice(start, end, step): 

86 return {"type": "slice", "children": [start, end, step]} 

87 

88 

89def value_projection(left, right): 

90 return {'type': 'value_projection', 'children': [left, right]}