code: def _run_pruning(self, current_epoch: int) -> None:
      prune = (
          self._apply_pruning(current_epoch)
          if callable(self._apply_pruning)
          else self._apply_pruning
      )
      amount = (
          self.amount(current_epoch)
          if callable(self.amount)
          else self.amount
      )
      if not prune or not amount:
          return
      self.apply_pruning(amount)
  
      if (
          self._use_lottery_ticket_hypothesis(current_epoch)
          if callable(self._use_lottery_ticket_hypothesis)
          else self._use_lottery_ticket_hypothesis
      ):
          self.apply_lottery_ticket_hypothesis()
  
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 15 for calling the ModelPruning obj's underlying member method code with example usage: obj._run_pruning(current_epoch) without return types