code: def query_version(stream: aioxmpp.stream.StanzaStream,
                    target: aioxmpp.JID) -> version_xso.Query:
      
  
      return (yield from stream.send(
          aioxmpp.IQ(
              type_=aioxmpp.IQType.GET,
              to=target,
              payload=version_xso.Query(),
          )
      ))
docs: Query the software version of an entity.
  
      :param stream: A stanza stream to send the query on.
      :type stream: :class:`aioxmpp.stream.StanzaStream`
      :param target: The address of the entity to query.
      :type target: :class:`aioxmpp.JID`
      :raises OSError: if a connection issue occured before a reply was received
      :raises aioxmpp.errors.XMPPError: if an XMPP error was returned instead
          of a reply.
      :rtype: :class:`aioxmpp.version.xso.Query`
      :return: The response from the peer.
  
      The response is returned as :class:`~aioxmpp.version.xso.Query` object. The
      attributes hold the data returned by the peer. Each attribute may be
      :data:`None` if the peer chose to omit that information. In an extreme
      case, all attributes are :data:`None`.