parameters: (thread_id, frame_id, attr, expression, dbg, value=SENTINEL_VALUE)
docstring: Changes some attribute in a given frame.
docstring_summary: Changes some attribute in a given frame.
docstring_tokens: Changes some attribute in a given frame .
function: def change_attr_expression(thread_id, frame_id, attr, expression, dbg, value=SENTINEL_VALUE):
      '''Changes some attribute in a given frame.
      '''
      frame = find_frame(thread_id, frame_id)
      if frame is None:
          return
  
      try:
          expression = expression.replace('@LINE@', '\n')
  
          if dbg.plugin and value is SENTINEL_VALUE:
              result = dbg.plugin.change_variable(frame, attr, expression)
              if result:
                  return result
  
          if attr[:7] == "Globals":
              attr = attr[8:]
              if attr in frame.f_globals:
                  if value is SENTINEL_VALUE:
                      value = eval(expression, frame.f_globals, frame.f_locals)
                  frame.f_globals[attr] = value
                  return frame.f_globals[attr]
          else:
              if '.' not in attr:  # i.e.: if we have a '.', we're changing some attribute of a local var.
                  if pydevd_save_locals.is_save_locals_available():
                      if value is SENTINEL_VALUE:
                          value = eval(expression, frame.f_globals, frame.f_locals)
                      frame.f_locals[attr] = value
                      pydevd_save_locals.save_locals(frame)
                      return frame.f_locals[attr]
  
              # default way (only works for changing it in the topmost frame)
              if value is SENTINEL_VALUE:
                  value = eval(expression, frame.f_globals, frame.f_locals)
              result = value
              Exec('%s=%s' % (attr, expression), frame.f_globals, frame.f_locals)
              return result
  
  
      except Exception:
          traceback.print_exc()
function_tokens: def change_attr_expression ( thread_id , frame_id , attr , expression , dbg , value = SENTINEL_VALUE ) : frame = find_frame ( thread_id , frame_id ) if frame is None : return try : expression = expression . replace ( '@LINE@' , '\n' ) if dbg . plugin and value is SENTINEL_VALUE : result = dbg . plugin . change_variable ( frame , attr , expression ) if result : return result if attr [ : 7 ] == "Globals" : attr = attr [ 8 : ] if attr in frame . f_globals : if value is SENTINEL_VALUE : value = eval ( expression , frame . f_globals , frame . f_locals ) frame . f_globals [ attr ] = value return frame . f_globals [ attr ] else : if '.' not in attr : # i.e.: if we have a '.', we're changing some attribute of a local var. if pydevd_save_locals . is_save_locals_available ( ) : if value is SENTINEL_VALUE : value = eval ( expression , frame . f_globals , frame . f_locals ) frame . f_locals [ attr ] = value pydevd_save_locals . save_locals ( frame ) return frame . f_locals [ attr ] # default way (only works for changing it in the topmost frame) if value is SENTINEL_VALUE : value = eval ( expression , frame . f_globals , frame . f_locals ) result = value Exec ( '%s=%s' % ( attr , expression ) , frame . f_globals , frame . f_locals ) return result except Exception : traceback . print_exc ( )