docs: def insert_rows(fc,
                  features,
                  fields,
                  includeOIDField=False,
                  oidField=None):
      """ inserts rows based on a list features object """
      if arcpyFound == False:
          raise Exception("ArcPy is required to use this function")
      icur = None
      if includeOIDField:
          arcpy.AddField_management(fc, "FSL_OID", "LONG")
          fields.append("FSL_OID")
      if len(features) > 0:
          fields.append("SHAPE@")
          workspace = os.path.dirname(fc)
          with arcpy.da.Editor(workspace) as edit:
              date_fields = getDateFields(fc)
              icur = arcpy.da.InsertCursor(fc, fields)
              for feat in features:
                  row = [""] * len(fields)
                  drow = feat.asRow[0]
                  dfields = feat.fields
                  for field in fields:
                      if field in dfields or \
                         (includeOIDField and field == "FSL_OID"):
                          if field in date_fields:
                              row[fields.index(field)] = toDateTime(drow[dfields.index(field)])
                          elif field == "FSL_OID":
                              row[fields.index("FSL_OID")] = drow[dfields.index(oidField)]
                          else:
                              row[fields.index(field)] = drow[dfields.index(field)]
                      del field
                  row[fields.index("SHAPE@")] = feat.geometry
                  icur.insertRow(row)
                  del row
                  del drow
                  del dfields
                  del feat
              del features
              icur = None
              del icur
              del fields
          return fc
      else:
          return fc