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:
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
Metadata
Release files for k3priorityqueue 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| k3priorityqueue-0.1.9.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| k3priorityqueue-0.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.2 kB
Release files / k3priorityqueue-0.1.9.tar.gz
| Download URL | k3priorityqueue-0.1.9.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a2394f1d92d84975df148a971f23c1f7f2724cb912e8b3eed4c9fb6633c43a78
|
|
BLAKE2b-256 checksum How to use checksums |
efe1516672af55047eec1cf3715ce0381ddce49b37b339d0d2a806dbd1bba9b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / k3priorityqueue-0.1.9-py3-none-any.whl
| Download URL | k3priorityqueue-0.1.9-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b9874c5d35a4318ce44179bd9e03da01d6e28fbbcf8598726a60004a2c2226c9
|
|
BLAKE2b-256 checksum How to use checksums |
6e912696c92f446511889f845f8e141b9ee24a7d762bf12e446b46cc6bafa50d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|