text: #!/usr/bin/python3
  
  from numpy.random import random
  from numpy.random import randint
  
  from numpy import array
  from numpy import column_stack
  from numpy import row_stack
  from numpy import cos
  from numpy import sin
  from numpy import sort
  from numpy import pi
  
  from modules.utils import random_points_in_circle
  from modules.utils import _spatial_sort
  
  TWOPI = 2.0*pi
  
  
  # def _get_glyph(gnum, height, width, shift_prob, shift_size):
  #   if isinstance(gnum, list):
  #     n = randint(*gnum)
  #   else:
  #     n = gnum
  #
  #   if random()<shift_prob:
  #     shift = ((-1)**randint(0,2))*shift_size
  #   else:
  #     shift = 0
  #
  #   if random()<0.0:
  #     a = sort(TWOPI*(random()+random(n)))[::-1]
  #     glyph = column_stack((cos(a), shift+sin(a))) \
  #         *array((width, height), 'float')*0.5
  #   else:
  #     glyph = random_points_in_circle(
  #         n, 0, shift, 0.5
  #         )*array((width, height), 'float')
  #     _spatial_sort(glyph)
  #
  #   return glyph
  
  def _get_glyph(gnum, height, width, shift_prob, shift_size):
    if isinstance(gnum, list):
      n = randint(*gnum)
    else:
      n = gnum
  
    glyph = random_points_in_circle(
        n, 0, 0, 0.5
        )*array((width, height), 'float')
    _spatial_sort(glyph)
  
    if random()<shift_prob:
      shift = ((-1)**randint(0,2))*shift_size*height
      glyph[:,1] += shift
    if random()<0.5:
      ii = randint(0,n-1,size=(1))
      xy = glyph[ii,:]
      glyph = row_stack((glyph, xy))
  
  
    return glyph
  