class_docstr: Track side effects (list mutation, setattr, etc) that need to be
  applied after an FX graph is run.
class_docstr_tok: ["Track","side","effects","(","list","mutation",",","setattr",",","etc",")","that","need","to","be","applied","after","an","FX","graph","is","run","."]
code: def track_object_new(
      self,
      cls_source: Source,
      user_cls: Any,
      variable_cls: Any,
      options,
  ):
      if user_cls is torch.autograd.function.FunctionCtx:
          obj = torch.autograd.Function()
      elif issubclass(user_cls, torch.nn.Module):
          obj = nn_module_new(user_cls)
      else:
          obj = object_new(user_cls)
      variable = variable_cls(
          obj,
          mutable_local=AttributeMutationNew(None, cls_source),
          **options,
      )
      self.id_to_variable[id(obj)] = variable
      self.keepalive.append(obj)
      return variable
  
imports: import inspect
  from typing import Any, Dict, List, Optional, Union
  import torch.nn
  from .None import utils, variables
  from .bytecode_transformation import create_call_function, create_call_method, create_instruction
  from .codegen import PyCodegen
  from .exc import unimplemented
  from .source import LocalSource, Source
  from .utils import nn_module_new, object_new
  from .variables.base import is_side_effect_safe, MutableLocalBase, MutableLocalSource, VariableTracker
label_desc: Use image node_id 21 for calling the SideEffects obj's underlying member method code with example usage: obj.track_object_new(cls_source, user_cls, variable_cls, options) and returns: variable