class_docstr: a class for non-linear monotonic transformation of a continuous random variable
  
      
class_docstr_tok: ["a","class","for","non-linear","monotonic","transformation","of","a","continuous","random","variable"]
code: def __init__(self, kls, func, funcinv, *args, **kwargs):
      # print(args
      # print(kwargs
  
      self.func = func
      self.funcinv = funcinv
      # explicit for self.__dict__.update(kwargs)
      # need to set numargs because inspection does not work
      self.numargs = kwargs.pop("numargs", 0)
      # print(self.numargs
      name = kwargs.pop("name", "transfdist")
      longname = kwargs.pop(
          "longname", "Non-linear transformed distribution"
      )
      extradoc = kwargs.pop("extradoc", None)
      a = kwargs.pop("a", -np.inf)
      b = kwargs.pop("b", np.inf)
      self.decr = kwargs.pop("decr", False)
      # defines whether it is a decreasing (True)
      #       or increasing (False) monotonic transformation
  
      self.u_args, self.u_kwargs = get_u_argskwargs(**kwargs)
      self.kls = kls  # (self.u_args, self.u_kwargs)
      # possible to freeze the underlying distribution
  
      super().__init__(
          a=a,
          b=b,
          name=name,
          shapes=kls.shapes,
          longname=longname,
          # extradoc = extradoc
      )
  
imports: from scipy import stats
  from scipy.stats import distributions
  import numpy
label_desc: Use image node_id 1 to create a new Transf_gen object from inherited base classes: distributions with example: obj = Transf_gen(kls, func, funcinv)