docstr: Traverse all wrappers and execute ModuleWrapper.wrap()
docstr_tok: ["Traverse","all","wrappers","and","execute","ModuleWrapper.wrap","(",")"]
code: def wrap_model(self):
      """
      Traverse all wrappers and execute ModuleWrapper.wrap()
      """
      if self._is_wrapped is True:
          warn_msg = (
              "The bound model has been wrapped, no need to wrap again."
          )
          _logger.warning(warn_msg)
      for _, wrapper in self._module_wrappers.items():
          wrapper.wrap()
      self._is_wrapped = True
  
imports: from __future__ import annotations
  from collections import defaultdict
  from copy import deepcopy
  import logging
  from typing import Any, Dict, List, Literal, Callable
  import torch
  from torch.utils._pytree import tree_map
  from .config import trans_legacy_config_list, default_config_schema
  from .target_space import TargetSpace, TargetType, DistillationTargetSpace, PruningTargetSpace, QuantizationTargetSpace
  from .wrapper import ModuleWrapper, register_wrappers
  from ..utils import Evaluator, Scaling, _EVALUATOR_DOCSTRING
label_desc: Use image node_id 4 for calling the Compressor obj's underlying member method code with example usage: obj.wrap_model() without return types