code: def on_validation_epoch_end(
      self, trainer: "pl.Trainer", pl_module: LightningModule
  ) -> None:
      if (
          not trainer.sanity_checking
          and not self._prune_on_train_epoch_end
      ):
          rank_zero_debug(
              "`ModelPruning.on_validation_epoch_end`. Applying pruning"
          )
          self._run_pruning(pl_module.current_epoch)
  
imports: import inspect
  import logging
  from copy import deepcopy
  from functools import partial
  from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
  import torch.nn.utils.prune
  from lightning_utilities.core.apply_func import apply_to_collection
  from torch import Tensor, nn
  from typing_extensions import TypedDict, override
  import lightning.pytorch
  from lightning.pytorch.callbacks.callback import Callback
  from lightning.pytorch.core.module import LightningModule
  from lightning.pytorch.utilities.exceptions import MisconfigurationException
  from lightning.pytorch.utilities.rank_zero import rank_zero_debug, rank_zero_only
label_desc: Use image node_id 17 for calling the ModelPruning obj's underlying member method code with example usage: obj.on_validation_epoch_end(trainer, pl_module) without return types