docs: def getlist(self, key: 'Entity') -> Sequence[object]:
          r"""Return all values associated to the given ``key`` property
          in sequence.
  
          :param key: The property entity.
          :type key: :class:`Entity`
          :return: A sequence of all values associated to the given ``key``
                   property.  It can be empty if nothing is associated to
                   the property.
          :rtype: :class:`~typing.Sequence`\ [:class:`object`]
  
          """
          if not (isinstance(key, type(self)) and
                  key.type is EntityType.property):
              return []
          claims_map = self.attributes.get('claims') or {}
          assert isinstance(claims_map, collections.abc.Mapping)
          claims = claims_map.get(key.id, [])
          claims.sort(key=lambda claim: claim['rank'],  # FIXME
                      reverse=True)
          logger = logging.getLogger(__name__ + '.Entity.getitem')
          if logger.isEnabledFor(logging.DEBUG):
              logger.debug('claim data: %s',
                           __import__('pprint').pformat(claims))
          decode = self.client.decode_datavalue
          return [decode(snak['datatype'], snak['datavalue'])
                  for snak in (claim['mainsnak'] for claim in claims)]