code: def on_keyboard_interrupt(self, trainer, pl_module):
      if trainer.global_rank == 0:
          print("Summoning checkpoint.")
          ckpt_path = os.path.join(self.ckptdir, "last.ckpt")
          trainer.save_checkpoint(ckpt_path)
  
imports: import argparse, os, sys, datetime, glob, importlib, csv
  import numpy
  import time
  import torch
  import torchvision
  import pytorch_lightning
  from packaging import version
  from omegaconf import OmegaConf
  from torch.utils.data import random_split, DataLoader, Dataset, Subset
  from functools import partial
  from PIL import Image
  from pytorch_lightning import seed_everything
  from pytorch_lightning.trainer import Trainer
  from pytorch_lightning.callbacks import ModelCheckpoint, Callback, LearningRateMonitor
  from pytorch_lightning.utilities.distributed import rank_zero_only
  from pytorch_lightning.utilities import rank_zero_info
  from ldm.data.base import Txt2ImgIterableBaseDataset
  from ldm.util import instantiate_from_config
label_desc: Use image node_id 2 for calling the SetupCallback obj's underlying member method code with example usage: obj.on_keyboard_interrupt(trainer, pl_module) without return types