code: def print_summary(self, decimals=2, **kwargs):
          
  
          # Print information about data first
          justify = string_justify(18)
          print(self)
          print("{} = '{}'".format(justify("duration col"), self.duration_col))
          print("{} = '{}'".format(justify("event col"), self.event_col))
          if self.weights_col:
              print("{} = '{}'".format(justify("weights col"), self.weights_col))
  
          if self.coef_penalizer > 0:
              print("{} = '{}'".format(justify("coef penalizer"), self.coef_penalizer))
  
          if self.smoothing_penalizer > 0:
              print("{} = '{}'".format(justify("smoothing penalizer"), self.smoothing_penalizer))
  
          print("{} = {}".format(justify("number of subjects"), self._n_examples))
          print("{} = {}".format(justify("number of events"), self.event_observed.sum()))
          print("{} = {}".format(justify("time fit was run"), self._time_fit_was_called))
  
          for k, v in kwargs.items():
              print("{} = {}\n".format(justify(k), v))
  
          print(end="\n")
          print("---")
  
          df = self.summary
          print(
              df.to_string(
                  float_format=format_floats(decimals),
                  formatters={"p": format_p_value(decimals), "exp(coef)": format_exp_floats(decimals)},
              )
          )
  
          # Significance code explanation
          print("---")
          print("Concordance = {:.{prec}f}".format(self.score_, prec=decimals))
docs: Print summary statistics describing the fit, the coefficients, and the error bounds.
  
          Parameters
          -----------
          decimals: int, optional (default=2)
              specify the number of decimal places to show
          kwargs:
              print additional meta data in the output (useful to provide model names, dataset names, etc.) when comparing
              multiple outputs.