code: async def get_metadata(self, target):
          
          if target not in self._pending['metadata']:
              await self.rawmsg('METADATA', target, 'LIST')
  
              self._metadata_queue.append(target)
              self._metadata_info[target] = {}
              self._pending['metadata'][target] = self.eventloop.create_future()
  
          return self._pending['metadata'][target]
docs: Return user metadata information.
          This is a blocking asynchronous method: it has to be called from a coroutine, as follows:
  
              metadata = await self.get_metadata('#foo')