code: def _get_vars(self, stack, scopes):
          
          variables = itertools.product(scopes, stack)
          for scope, (frame, _, _, _, _, _) in variables:
              try:
                  d = getattr(frame, 'f_' + scope)
                  self.scope = self.scope.new_child(d)
              finally:
                  # won't remove it, but DECREF it
                  # in Py3 this probably isn't necessary since frame won't be
                  # scope after the loop
                  del frame
docs: Get specifically scoped variables from a list of stack frames.
  
          Parameters
          ----------
          stack : list
              A list of stack frames as returned by ``inspect.stack()``
          scopes : sequence of strings
              A sequence containing valid stack frame attribute names that
              evaluate to a dictionary. For example, ('locals', 'globals')