@Override
 public PyDebugValue changeVariable(
     final String threadId, final String frameId, final PyDebugValue var, final String value)
     throws PyDebuggerException {
   setTempVariable(threadId, frameId, var);
   return doChangeVariable(threadId, frameId, var.getEvaluationExpression(), value);
 }
  // todo: change variable in lists doesn't work - either fix in pydevd or format var name
  // appropriately
  private void setTempVariable(
      final String threadId, final String frameId, final PyDebugValue var) {
    final PyDebugValue topVar = var.getTopParent();
    if (!myDebugProcess.canSaveToTemp(topVar.getName())) {
      return;
    }
    if (myTempVars.contains(threadId, frameId, topVar.getTempName())) {
      return;
    }

    topVar.setTempName(generateTempName());
    try {
      doChangeVariable(threadId, frameId, topVar.getTempName(), topVar.getName());
      myTempVars.put(threadId, frameId, topVar.getTempName());
    } catch (PyDebuggerException e) {
      LOG.error(e);
      topVar.setTempName(null);
    }
  }