code: def get_signature_vars(section):
      '''Get signature variables which are variables that will be
      saved with step signatures'''
  
      # signature vars should contain parameters defined in global section
      # #1155
      signature_vars = set(
          section.parameters.keys()
          & accessed_vars(strip_param_defs(section.global_stmts)))
  
      input_idx = find_statement(section, 'input')
      after_input_idx = 0 if input_idx is None else input_idx + 1
  
      for statement in section.statements[after_input_idx:]:
          if statement[0] == '=':
              signature_vars |= accessed_vars('='.join(statement[1:3]))
          elif statement[0] == '!':
              signature_vars |= accessed_vars(statement[1])
      # finally, tasks..
      if section.task:
          signature_vars |= accessed_vars(section.task)
  
      return {x for x in signature_vars if not x.startswith('__')f get_signature_vars(section):
      '''Get signature variables which are variables that will be
      saved with step signatures'''
  
      # signature vars should contain parameters defined in global section
      # #1155
      signature_vars = set(
          section.parameters.keys()
          & accessed_vars(strip_param_defs(section.global_stmts)))
  
      input_idx = find_statement(section, 'input')
      after_input_idx = 0 if input_idx is None else input_idx + 1
  
      for statement in section.statements[after_input_idx:]:
          if statement[0] == '=':
              signature_vars |= accessed_vars('='.join(statement[1:3]))
          elif statement[0] == '!':
              signature_vars |= accessed_vars(statement[1])
      # finally, tasks..
      if section.task:
          signature_vars |= accessed_vars(section.task)
  
      return {x for x in signature_vars if not x.startswith('__')}
docs: Get signature variables which are variables that will be
      saved with step signatures