code: def ring_source(self):
  		
  
  		if self.type != EventType.TABLET_PAD_RING:
  			raise AttributeError(_wrong_prop.format(self.type))
  		return self._libinput.libinput_event_tablet_pad_get_ring_source(
  			self._handle)
docs: The source of the interaction with the ring.
  
  		If the source is
  		:attr:`~libinput.constant.TabletPadRingAxisSource.FINGER`,
  		libinput sends a ring position value of -1 to terminate
  		the current interaction.
  
  		For events not of type
  		:attr:`~libinput.constant.EventType.TABLET_PAD_RING`, this property
  		raises :exc:`AttributeError`.
  
  		Returns:
  			~libinput.constant.TabletPadRingAxisSource: The source of the ring
  			interaction.
  		Raises:
  			AttributeError