code: def _shapeparts(self, parts, shapeType):
          
          polyShape = Shape(shapeType)
          polyShape.parts = []
          polyShape.points = []
          for part in parts:
              # set part index position
              polyShape.parts.append(len(polyShape.points))
              # add points
              for point in part:
                  # Ensure point is list
                  if not isinstance(point, list):
                      point = list(point)
                  polyShape.points.append(point)
          # write the shape
          self.shape(polyShape)
docs: Internal method for adding a shape that has multiple collections of points (parts):
          lines, polygons, and multipoint shapes.