code: def make_circles(
      n_samples=100,
      shuffle=True,
      noise=None,
      random_state=None,
      factor=0.8,
  ):
      """Make a large circle containing a smaller circle in 2d.
  
      A simple toy dataset to visualize clustering and classification
      algorithms.
  
      Read more in the :ref:`User Guide <sample_generators>`.
  
      Parameters
      ----------
      n_samples : int, optional (default=100)
          The total number of points generated.
  
      shuffle: bool, optional (default=True)
          Whether to shuffle the samples.
  
      noise : double or None (default=None)
          Standard deviation of Gaussian noise added to the data.
  
      factor : double < 1 (default=.8)
          Scale factor between inner and outer circle.
  
      Returns
      -------
      X : array of shape [n_samples, 2]
          The generated samples.
  
      y : array of shape [n_samples]
          The integer labels (0 or 1) for class membership of each sample.
      """
  
      if factor > 1 or factor < 0:
          raise ValueError("'factor' has to be between 0 and 1.")
  
      generator = check_random_state(random_state)
      # so as not to have the first point = last point, we add one and then
      # remove it.
      linspace = np.linspace(0, 2 * np.pi, n_samples // 2 + 1)[:-1]
      outer_circ_x = np.cos(linspace)
      outer_circ_y = np.sin(linspace)
      inner_circ_x = outer_circ_x * factor
      inner_circ_y = outer_circ_y * factor
  
      X = np.vstack(
          (
              np.append(outer_circ_x, inner_circ_x),
              np.append(outer_circ_y, inner_circ_y),
          )
      ).T
      y = np.hstack(
          [
              np.zeros(n_samples // 2, dtype=np.intp),
              np.ones(n_samples // 2, dtype=np.intp),
          ]
      )
      if shuffle:
          X, y = util_shuffle(X, y, random_state=generator)
  
      if noise is not None:
          X += generator.normal(scale=noise, size=X.shape)
  
      return X, y
  
imports: import numbers
  import array
  import numpy
  from scipy import linalg
  import scipy.sparse
  from ..preprocessing import MultiLabelBinarizer
  from ..utils import check_array, check_random_state
  from ..utils import shuffle
  from ..utils.fixes import astype
  from ..utils.random import sample_without_replacement
  from ..externals import six
label_desc: Use image node_id 6 for calling a global function with example usage: make_circles(n_samples, shuffle, noise, random_state, factor) and returns: X,  y