MCPcopy Create free account
hub / github.com/PyTables/PyTables / _equiv_expr_node

Function _equiv_expr_node

tables/conditions.py:165–191  ·  view source on GitHub ↗

Return Truen whether two ExpressionNodes are equivalent. This is needed because '==' is overridden on ExpressionNode to return a new ExpressionNode.

(
    x: Any | ne.expressions.ExpressionNode,
    y: Any | ne.expressions.ExpressionNode,
)

Source from the content-addressed store, hash-verified

163
164
165def _equiv_expr_node(
166 x: Any | ne.expressions.ExpressionNode,
167 y: Any | ne.expressions.ExpressionNode,
168) -> bool:
169 """Return Truen whether two ExpressionNodes are equivalent.
170
171 This is needed because '==' is overridden on ExpressionNode to
172 return a new ExpressionNode.
173
174 """
175 if not isinstance(x, ne.expressions.ExpressionNode) and not isinstance(
176 y, ne.expressions.ExpressionNode
177 ):
178 return x == y
179 elif (
180 type(x) is not type(y)
181 or not isinstance(x, ne.expressions.ExpressionNode)
182 or not isinstance(y, ne.expressions.ExpressionNode)
183 or x.value != y.value
184 or x.astKind != y.astKind
185 or len(x.children) != len(y.children)
186 ):
187 return False
188 for xchild, ychild in zip(x.children, y.children):
189 if not _equiv_expr_node(xchild, ychild):
190 return False
191 return True
192
193
194def _get_idx_expr_recurse(

Callers 1

_get_idx_expr_recurseFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected