Skip to content

Commit eca3c16

Browse files
authored
Merge pull request #5 from jmespath-community/feature/pipe-expression
JEP-19 Evaluation of Pipe Expressions
2 parents 661f72f + 79e703a commit eca3c16

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

jmespath/visitor.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ def visit_subexpression(self, node, value):
129129
result = value
130130
for node in node['children']:
131131
result = self.visit(node, result)
132+
if (result is None):
133+
return None
132134
return result
133135

134136
def visit_field(self, node, value):
@@ -234,16 +236,12 @@ def visit_literal(self, node, value):
234236
return node['value']
235237

236238
def visit_multi_select_dict(self, node, value):
237-
if value is None:
238-
return None
239239
collected = self._dict_cls()
240240
for child in node['children']:
241241
collected[child['value']] = self.visit(child, value)
242242
return collected
243243

244244
def visit_multi_select_list(self, node, value):
245-
if value is None:
246-
return None
247245
collected = []
248246
for child in node['children']:
249247
collected.append(self.visit(child, value))

tests/compliance/pipe.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@
126126
{
127127
"expression": "foo[*].bar[*] | [0][0]",
128128
"result": {"baz": "one"}
129+
},
130+
{
131+
"expression": "`null`|[@]",
132+
"result": [ null ]
129133
}
130134
]
131135
}]

0 commit comments

Comments
 (0)