Python 3.9 code for priorityqueue:

from queue import PriorityQueue

q = PriorityQueue

q.put()

q.get()

q.empty()

Wrap item for non comparable problem:

from queue import PriorityQueue
from dataclasses import dataclass, field
from typing import Any

@dataclass(order=True)
class PrioritizedItem:
    priority: int
    item: Any=field(compare=False)

#Example:
class Solution:
    def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:
        q = PriorityQueue()
        for i in range(len(lists)):
            if lists[i] is not None:
                item1 = PrioritizedItem(lists[i].val, item = lists[i])
                q.put(item1)
        ans = ListNode()
        curr = ans
        while not q.empty():
            item_ = q.get()
            v = item_.priority
            l = item_.item
            curr.next = ListNode(v)
            curr = curr.next
            l = l.next
            if l:
                item_ = PrioritizedItem(l.val,l)
                q.put(item_)
        return ans.next