code: def appendAnchor(self, name=None, position=None, color=None, anchor=None):
          
          identifier = None
          if anchor is not None:
              anchor = normalizers.normalizeAnchor(anchor)
              if name is None:
                  name = anchor.name
              if position is None:
                  position = anchor.position
              if color is None:
                  color = anchor.color
              if anchor.identifier is not None:
                  existing = set([a.identifier for a in self.anchors if a.identifier is not None])
                  if anchor.identifier not in existing:
                      identifier = anchor.identifier
          name = normalizers.normalizeAnchorName(name)
          position = normalizers.normalizeCoordinateTuple(position)
          if color is not None:
              color = normalizers.normalizeColor(color)
          identifier = normalizers.normalizeIdentifier(identifier)
          return self._appendAnchor(name, position=position, color=color, identifier=identifier)
docs: Append an anchor to this glyph.
  
              >>> anchor = glyph.appendAnchor("top", (10, 20))
  
          This will return a :class:`BaseAnchor` object representing
          the new anchor in the glyph. ``name`` indicated the name to
          be assigned to the anchor. It must be a :ref:`type-string`
          or ``None``. ``position`` indicates the x and y location
          to be applied to the anchor. It must be a
          :ref:`type-coordinate` value. ``color`` indicates the color
          to be applied to the anchor. It must be a :ref:`type-color`
          or ``None``.
  
              >>> anchor = glyph.appendAnchor("top", (10, 20), color=(1, 0, 0, 1))
  
          ``anchor`` may be a :class:`BaseAnchor` object from which
          attribute values will be copied. If ``name``, ``position``
          or ``color`` are specified as arguments, those values will
          be used instead of the values in the given anchor object.