priorityQueue is a queue with priority support
Project description
k3priorityqueue
priorityQueue is a queue with priority support
k3priorityqueue is a component of pykit3 project: a python3 toolkit set.
PriorityQueue is a queue with priority support:
The numbers of items it pops from each producer matches exactly the ratio of their priority: If the priorities of 3 producer A, B and C are 1, 3 and 7, and it runs long enough, it is expected that the number of items popped from A, B and C are 1:3:7.
import k3priorityqueue
producers = ( # id, priority, iterable (1, 1, [1] * 10), (2, 2, [2] * 10), (3, 3, [3] * 10), ) pq = k3priorityqueue.PriorityQueue() for pid, prio, itr in producers: pq.add_producer(pid, prio, itr)
count = {} for _ in range(12): val = pq.get() count[val] = count.get(val, 0) + 1 print(val)
print('respect priority ratio: counts:', repr(count))
while True: try: val = pq.get() except k3priorityqueue.Empty as e: break count[val] = count.get(val, 0) + 1 print(val)
print('consumed all: counts:', repr(count))
Install
pip install k3priorityqueue
Synopsis
import k3priorityqueue
producers = (
# id, priority, iterable
(1, 1, [1] * 10),
(2, 2, [2] * 10),
(3, 3, [3] * 10),
)
pq = k3priorityqueue.PriorityQueue()
for pid, prio, itr in producers:
pq.add_producer(pid, prio, itr)
count = {}
for _ in range(12):
val = pq.get()
count[val] = count.get(val, 0) + 1
print(val)
print('respect priority ratio: counts:', repr(count))
while True:
try:
val = pq.get()
except k3priorityqueue.Empty as e:
break
count[val] = count.get(val, 0) + 1
print(val)
print('consumed all: counts:', repr(count))
Author
Zhang Yanpo (张炎泼) drdr.xp@gmail.com
Copyright and License
The MIT License (MIT)
Copyright (c) 2015 Zhang Yanpo (张炎泼) drdr.xp@gmail.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for k3priorityqueue-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8345e2ec32194be5a14a9edb4a7d99fe99e15e49de61c7f2de304bf3b6dabd9 |
|
MD5 | 4fcb242d6334a80fac40e9a73ae1f688 |
|
BLAKE2b-256 | 66d250824cdc74281351d024f9a7ae8b51489a6f791be5b5ddb2dedc11545cdf |