Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
source_ref=source_ref,
),
source_ref=source_ref,
).asStatement(),
no_branch=None,
source_ref=source_ref,
),
)
if python_version >= 370:
iter_creation_class = ExpressionBuiltinIterForUnpack
else:
iter_creation_class = ExpressionBuiltinIter1
statements = [
StatementAssignmentVariable(
variable=source_iter_var,
source=iter_creation_class(value=source, source_ref=source_ref),
source_ref=source_ref,
),
makeTryFinallyStatement(
provider=provider,
tried=statements,
final=(
StatementReleaseVariable(
variable=source_iter_var, source_ref=source_ref
),
),
source_ref=source_ref,
),
]
source_ref = source_ref
)
]
def makeIteratorRef():
return ExpressionTempVariableRef(
variable = tmp_iter_variable.makeReference(
function_body
),
source_ref = source_ref
)
loop_statements = [
makeTryExceptSingleHandlerNode(
tried = makeStatementsSequenceFromStatement(
statement = StatementAssignmentVariable(
variable_ref = ExpressionTargetTempVariableRef(
variable = tmp_value_variable.makeReference(
function_body
),
source_ref = source_ref
),
source = ExpressionBuiltinNext1(
value = makeIteratorRef(),
source_ref = source_ref
),
source_ref = source_ref
)
),
exception_name = "StopIteration",
handler_body = makeStatementsSequenceFromStatement(
statement = StatementBreakLoop(
dict_loop_body = StatementsSequence(
statements = statements,
source_ref = source_ref
)
statements = (
StatementAssignmentVariable(
variable_ref = kw_target_variable_ref.makeCloneAt(source_ref),
source = ExpressionBuiltinDict(
pos_arg = kw_variable_ref.makeCloneAt(source_ref),
pairs = (),
source_ref = source_ref
),
source_ref = source_ref
),
StatementAssignmentVariable(
variable_ref = ExpressionTargetTempVariableRef(
variable = tmp_iter_variable.makeReference(result),
source_ref = source_ref
),
source = ExpressionBuiltinIter1(
value = ExpressionCallEmpty(
called = ExpressionAttributeLookup(
expression = star_dict_variable_ref.makeCloneAt(
source_ref
),
attribute_name = "iteritems"
if python_version < 300 else
"items",
source_ref = source_ref
),
source_ref = source_ref
handler_body=_makeRaiseExceptionMustBeMapping(
called_variable=called_variable, star_dict_variable=star_dict_variable
),
source_ref=internal_source_ref,
),
StatementAssignmentVariable(
variable=tmp_iter_variable,
source=ExpressionBuiltinIter1(
value=ExpressionTempVariableRef(
variable=tmp_keys_variable, source_ref=internal_source_ref
),
source_ref=internal_source_ref,
),
source_ref=internal_source_ref,
),
StatementAssignmentVariable(
variable=tmp_dict_variable,
source=makeConstantRefNode(
constant={}, source_ref=internal_source_ref, user_provided=True
),
source_ref=internal_source_ref,
),
_makeIteratingLoopStatement(
tmp_iter_variable=tmp_iter_variable,
tmp_item_variable=tmp_key_variable,
statements=mapping_loop_body,
),
)
temp_scope = result.allocateTempScope("dict")
tmp_iter_variable = result.allocateTempVariable(temp_scope, "iter")
provider
),
source_ref = source_ref
),
attribute_name = "strip",
source_ref = source_ref
),
args = strip_choice,
source_ref = source_ref
),
source_ref = source_ref
)
]
statements = (
StatementAssignmentVariable(
variable_ref = ExpressionTargetTempVariableRef(
variable = source_variable.makeReference(
provider
),
source_ref = source_ref
),
source = source,
source_ref = source_ref,
),
StatementConditional(
condition = ExpressionOperationNOT(
operand = ExpressionBuiltinIsinstance(
cls = ExpressionBuiltinAnonymousRef(
builtin_name = "code",
source_ref = source_ref,
),
# Note: The assign_provider is only to cover Python2 list contractions,
# assigning one of the loop variables to the outside scope.
tmp_variables = []
if emit_class is not ExpressionYield:
tmp_variables.append(iter_tmp)
if container_tmp is not None:
tmp_variables.append(container_tmp)
statements = []
# First assign the iterator if we are an outline.
if assign_provider:
statements.append(
StatementAssignmentVariable(
variable=iter_tmp,
source=_makeIteratorCreation(
provider=provider,
qual=node.generators[0],
for_asyncgen=False,
source_ref=source_ref,
),
source_ref=source_ref.atInternal(),
)
)
if for_asyncgen and python_version >= 370 and node.generators[0].is_async:
statements.append(
StatementAssignmentVariable(
variable=iter_tmp,
source=ExpressionTempVariableRef(
statements, release_statements = _buildContractionBodyNode(
provider=provider,
node=node,
emit_class=emit_class,
iter_tmp=iter_tmp,
temp_scope=None,
start_value=start_value,
container_tmp=container_tmp,
function_body=function_body,
assign_provider=False,
for_asyncgen=False,
source_ref=source_ref,
)
assign_iter_statement = StatementAssignmentVariable(
source=_makeIteratorCreation(
provider=provider,
qual=node.generators[0],
for_asyncgen=False,
source_ref=source_ref,
),
variable=iter_tmp,
source_ref=source_ref,
)
statements.append(
StatementReturn(
expression=ExpressionTempVariableRef(
variable=container_tmp, source_ref=source_ref
),
source_ref=source_ref,
def makeTempAssignment(count, value):
return StatementAssignmentVariable(
variable=variables[count], source=value, source_ref=source_ref
)
ps_dict_star_arg=None,
ps_default_count=0,
ps_kw_only_args=(),
ps_pos_only_args=(),
),
)
temp_scope = None
tmp_result_variable = result.allocateTempVariable(temp_scope, "set")
tmp_iter_variable = result.allocateTempVariable(temp_scope, "iter")
tmp_item_variable = result.allocateTempVariable(temp_scope, "keys")
loop_body = makeStatementsSequenceFromStatements(
makeTryExceptSingleHandlerNode(
tried=StatementAssignmentVariable(
variable=tmp_item_variable,
source=ExpressionBuiltinNext1(
value=ExpressionTempVariableRef(
variable=tmp_iter_variable, source_ref=internal_source_ref
),
source_ref=internal_source_ref,
),
source_ref=internal_source_ref,
),
exception_name="StopIteration",
handler_body=StatementLoopBreak(source_ref=internal_source_ref),
source_ref=internal_source_ref,
),
StatementExpressionOnly(
expression=ExpressionSetOperationUpdate(
set_arg=ExpressionTempVariableRef(
attribute_assignments = [
# Next, assign "__enter__" and "__exit__" attributes to temporary
# variables.
StatementAssignmentVariable(
variable=tmp_exit_variable,
source=attribute_lookup_class(
source=ExpressionTempVariableRef(
variable=tmp_source_variable, source_ref=source_ref
),
attribute_name="__exit__" if sync else "__aexit__",
source_ref=source_ref,
),
source_ref=source_ref,
),
StatementAssignmentVariable(
variable=tmp_enter_variable, source=enter_value, source_ref=source_ref
),
]
if python_version >= 360 and sync:
attribute_assignments.reverse()
statements += attribute_assignments
statements.append(
StatementAssignmentVariable(
variable=tmp_indicator_variable,
source=makeConstantRefNode(constant=True, source_ref=source_ref),
source_ref=source_ref,
)
)