code: def compile(self, X, verbose=False):
          
          super(FactorTerm, self).compile(X)
  
          self.n_splines = len(np.unique(X[:, self.feature]))
          self.edge_knots_ = gen_edge_knots(X[:, self.feature],
                                            self.dtype,
                                            verbose=verbose)
          return self
docs: method to validate and prepare data-dependent parameters
  
          Parameters
          ---------
          X : array-like
              Input dataset
  
          verbose : bool
              whether to show warnings
  
          Returns
          -------
          None