outPnts = []
for i in range(numShapes):
  if (annCent == "random"):
    if numShapes > 1: 
      Xcent = random.uniform(L,R); Ycent = random.uniform(B,T)
    else:
      Xcent = L + ((R-L)/2.0); Ycent = B + ((T-B)/2.0)
  if random_rad == True:
    rad_max = (R - L) * 0.1   #max is 10%  of width
    rad_min = (R - L) * 0.01  #min is 1% of width
    radius = random.uniform(rad_min, rad_max)
    radius2 = radius * random.uniform(0.5, 0.99)
  #
  #generate the points
  #
  pnts = PM.annulus(n, Xcent, Ycent, radius2, radius)
  #
  outPnts.append(pnts)
#
#optional shapefile creation
if outFC != "#":
  fieldsToAdd = [["Group", "LONG", "9", "#"],
                 ["X", "DOUBLE", 16, 7],
                 ["Y", "DOUBLE", 16, 7]]
  py_gp.createPointFile (outFC, shapeClass, "#", outPnts, fieldsToAdd, arcpy)
  arcpy.AddMessage("\n" + "You can join the original table to " \
                + "this shapefile table if you want other attributes." + "\n")
#
#optional csv file creation or output to screen
if outCSV != "#":
  PM.to_CSV(outCSV, outPnts)