code: def _check_inputs(self, operators, weights):
          
  
          operators = self._check_type(operators)
  
          for operator in operators:
              if not hasattr(operator, 'op'):
                  raise ValueError('Operators must contain "op" method.')
              if not hasattr(operator, 'adj_op'):
                  raise ValueError('Operators must contain "adj_op" method.')
              operator.op = check_callable(operator.op)
              operator.cost = check_callable(operator.adj_op)
  
          if not isinstance(weights, type(None)):
  
              weights = self._check_type(weights)
  
              if weights.size != operators.size:
                  raise ValueError('The number of weights must match the '
                                   'number of operators.')
  
              if not np.issubdtype(weights.dtype, np.floating):
                  raise TypeError('The weights must be a list of float values.')
  
          return operators, weights
docs: Check Inputs
  
          This method cheks that the input operators and weights are correctly
          formatted
  
          Parameters
          ----------
          operators : list, tuple or np.ndarray
              List of linear operator class instances
          weights : list, tuple or np.ndarray
              List of weights for combining the linear adjoint operator results
  
          Returns
          -------
          tuple operators and weights
  
          Raises
          ------
          ValueError
              If the number of weights does not match the number of operators
          TypeError
              If the individual weight values are not floats