old_contents: __author__ = 'AT'
  
  import GPy
  import numpy as np
  
  
  class DataSource:
  
      def __init__(self):
          pass
  
      @staticmethod
      def normal_generate_samples(n_samples, var):
          num_samples = n_samples
          noise = var
          num_in = 1
          X = np.random.uniform(low=-1.0, high=1.0, size=(num_samples, num_in))
          # X = preprocessing.scale(X)
          X.sort(axis=0)
          rbf = GPy.kern.RBF(num_in, variance=0.5, lengthscale=np.array((0.2,)))
          white = GPy.kern.White(num_in, variance=noise)
          kernel = rbf + white
          K = kernel.K(X)
          y = np.reshape(np.random.multivariate_normal(np.zeros(num_samples), K), (num_samples, 1))
          return X, y, rbf
new_contents: from GPy.util import datasets
  
  __author__ = 'AT'
  
  import GPy
  import numpy as np
  
  
  class DataSource:
  
      def __init__(self):
          pass
  
      @staticmethod
      def normal_generate_samples(n_samples, var):
          num_samples = n_samples
          noise = var
          num_in = 1
          X = np.random.uniform(low=-1.0, high=1.0, size=(num_samples, num_in))
          # X = preprocessing.scale(X)
          X.sort(axis=0)
          rbf = GPy.kern.RBF(num_in, variance=0.5, lengthscale=np.array((0.2,)))
          white = GPy.kern.White(num_in, variance=noise)
          kernel = rbf + white
          K = kernel.K(X)
          y = np.reshape(np.random.multivariate_normal(np.zeros(num_samples), K), (num_samples, 1))
          return X, y, rbf
  
  
      @staticmethod
      def boston_data():
          data = datasets.boston_housing()
          X = data['X'].copy()
          Y = data['Y'].copy()
          return X, Y
  
subject: add boston data