class_docstr: Class to hold linear constraints information
  
  Affine constraints are defined as ``R b = q` where `R` is the constraints
  matrix and `q` are the constraints values and `b` are the parameters.
  
  This is in analogy to patsy's LinearConstraints class but can be pickled.
  
  Parameters
  ----------
  constraint_matrix : ndarray
      R matrix, 2-dim with number of columns equal to the number of
      parameters. Each row defines one constraint.
  constraint_values : ndarray
      1-dim array of constant values
  variable_names : list of strings
      parameter names, used only for display
  kwds : keyword arguments
      keywords are attached to the instance.
code: def __init__(
      self, constraint_matrix, constraint_values, variable_names, **kwds
  ):
      self.constraint_matrix = constraint_matrix
      self.constraint_values = constraint_values
      self.variable_names = variable_names
  
      # alias for patsy compatibility
      self.coefs = constraint_matrix
      self.constants = constraint_values
  
      self.__dict__.update(kwds)
      self.tuple = (self.constraint_matrix, self.constraint_values)
  
file_path: statsmodels/statsmodels/base/_constraints.py
imports: import numpy
label_desc: Use image node_id 1 to create a new LinearConstraints object  with example: obj = LinearConstraints(constraint_matrix, constraint_values, variable_names)