Skip to content

Commit a2e3f8a

Browse files
author
Nolan Woods
committed
Fix up missing logic for let()
1 parent 96df105 commit a2e3f8a

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

biopython_convert/JMESPathGen.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def visit(self, node, *args, **kwargs):
107107
args[0] = self._generators.get(args[0], args[0])
108108
return super().visit(node, *args, **kwargs)
109109

110-
def visit_field(self, node, value, scope=None, **kwargs):
110+
def visit_field(self, node, value, **kwargs):
111111
try:
112112
return value.get(node['value'])
113113
except AttributeError:
@@ -118,7 +118,9 @@ def visit_field(self, node, value, scope=None, **kwargs):
118118
# If the field is not defined in the current object, then fall back
119119
# to checking in the scope chain, if there's any that has been
120120
# created.
121-
return scope.get(node['value'], None)
121+
if 'scope' in kwargs:
122+
return kwargs['scope'].get(node['value'], None)
123+
return None
122124

123125
def visit_function_expression(self, node, value, **kwargs):
124126
resolved_args = []
@@ -177,7 +179,7 @@ def visit_projection(self, node, value, **kwargs):
177179
if not isinstance(base, (list, types.GeneratorType, map, filter)):
178180
return None
179181
for element in base:
180-
current = self.visit(node['children'][1], element)
182+
current = self.visit(node['children'][1], element, **kwargs)
181183
if current is not None:
182184
yield current
183185

@@ -206,7 +208,7 @@ def _is_false(self, value, **kwargs):
206208
return super()._is_false(value)
207209

208210
def visit_expref(self, node, value, **kwargs):
209-
return _Expression(node['children'][0], self, value, **kwargs)
211+
return _Expression(node['children'][0], self, value)
210212

211213
def visit_subexpression(self, node, value, **kwargs):
212214
result = value

0 commit comments

Comments
 (0)