class_docstr: To deal with ValueChoice used as a parameter of a basic unit.
  
  Should be used together with :class:`ParameterChoiceLeafMutator`.
  :class:`ParameterChoiceMutator` is an empty-shell mutator.
  It calculates all the parameter values based on previous mutations of :class:`ParameterChoiceLeafMutator`.
code: def dry_run(
      self, model: GraphModelSpace
  ) -> tuple[dict[str, Categorical], GraphModelSpace]:
      try:
          self._within_dry_run = True
          return super().dry_run(model)
      finally:
          self._within_dry_run = False
  
imports: from __future__ import annotations
  from typing import Any, List, Tuple, Dict, Iterable, cast
  from nni.mutable import MutableExpression, Categorical, frozen_context, label_scope
  from nni.nas.space import Graph, GraphModelSpace, Node, StationaryMutator, Mutator
  from nni.nas.space.graph_op import Cell
label_desc: Use image node_id 2 for calling the ParameterChoiceMutator obj's underlying member method code with example usage: obj.dry_run(model) and returns: super