code: def copy(self):
      shape = Shape("%s" % self.label)
      shape.points = [p for p in self.points]
      shape.center = self.center
      shape.direction = self.direction
      shape.fill = self.fill
      shape.selected = self.selected
      shape._closed = self._closed
      if self.line_color != Shape.line_color:
          shape.line_color = self.line_color
      if self.fill_color != Shape.fill_color:
          shape.fill_color = self.fill_color
      shape.difficult = self.difficult
      shape.key_cls = self.key_cls
      return shape
  
imports: import math
  import sys
  from PyQt5.QtCore import QPointF
  from PyQt5.QtGui import QColor, QPen, QPainterPath, QFont
  from libs.utils import distance
label_desc: Use image node_id 21 for calling the Shape obj's underlying member method code with example usage: obj.copy() and returns: shape