parameters: (self, *args, **kwargs)
docstring: Trap ``SIGTERM`` and call wrapped function.
docstring_summary: Trap ``SIGTERM`` and call wrapped function.
docstring_tokens: Trap SIGTERM and call wrapped function .
function: def __call__(self, *args, **kwargs):
          """Trap ``SIGTERM`` and call wrapped function."""
          self._caught_signal = None
          # Register handler for SIGTERM, then call `self.func`
          self.old_signal_handler = signal.getsignal(signal.SIGTERM)
          signal.signal(signal.SIGTERM, self.signal_handler)
  
          self.func(*args, **kwargs)
  
          # Restore old signal handler
          signal.signal(signal.SIGTERM, self.old_signal_handler)
  
          # Handle any signal caught during execution
          if self._caught_signal is not None:
              signum, frame = self._caught_signal
              if callable(self.old_signal_handler):
                  self.old_signal_handler(signum, frame)
              elif self.old_signal_handler == signal.SIG_DFL:
                  sys.exit(0)
function_tokens: def __call__ ( self , * args , * * kwargs ) : self . _caught_signal = None # Register handler for SIGTERM, then call `self.func` self . old_signal_handler = signal . getsignal ( signal . SIGTERM ) signal . signal ( signal . SIGTERM , self . signal_handler ) self . func ( * args , * * kwargs ) # Restore old signal handler signal . signal ( signal . SIGTERM , self . old_signal_handler ) # Handle any signal caught during execution if self . _caught_signal is not None : signum , frame = self . _caught_signal if callable ( self . old_signal_handler ) : self . old_signal_handler ( signum , frame ) elif self . old_signal_handler == signal . SIG_DFL : sys . exit ( 0 )