class_docstr: Base class for tracked locals and stack values
  
  VariableTracker instances are immutable and should be copied in
  order to change them.
class_docstr_tok: ["Base","class","for","tracked","locals","and","stack","values","VariableTracker","instances","are","immutable","and","should","be","copied","in","order","to","change","them","."]
code: def __post_init__(self, *args, **kwargs):
      if self.parents_tracker is None:
          self.parents_tracker = ParentsTracker()
      # visit children 1 level deep and ensure parent is set properly
      VariableTracker.apply(
          lambda node: node.parents_tracker.add(self.parents_tracker),
          [
              v
              for k, v in self.__dict__.items()
              if k not in self._nonvar_fields
          ],
          skip_fn=lambda _: True,
      )
  
imports: import collections
  from enum import Enum
  from typing import Any, Callable, Dict, List
  from ..None import variables
  from ..current_scope_id import current_scope_id
  from ..exc import unimplemented
  from ..source import AttrSource, Source
  from ..utils import identity, istype
label_desc: Use image node_id 29 for calling the VariableTracker obj's underlying member method code with example usage: obj.__post_init__() without return types