Offer items into a bounded queue and report how many were accepted or dropped.

Bounded Queue Coordination Report

bounded_queue_coordination_report.py
import queue


offered = 
buffer = queue.Queue(maxsize=3)
accepted = 0

for item in range(offered):
    try:
        buffer.put_nowait(item)
        accepted += 1
    except queue.Full:
        pass

remaining = 3 - buffer.qsize()
status = "full" if remaining == 0 else "dropped" if accepted < offered else "tight" if remaining <= 1 else "open"

print("offered=" + str(offered) + " accepted=" + str(accepted) + " remaining=" + str(remaining) + " status=" + status)
import queue


offered = 
buffer = queue.Queue(maxsize=3)
accepted = 0

for item in range(offered):
    try:
        buffer.put_nowait(item)
        accepted += 1
    except queue.Full:
        pass

remaining = 3 - buffer.qsize()
status = "full" if remaining == 0 else "dropped" if accepted < offered else "tight" if remaining <= 1 else "open"

print("offered=" + str(offered) + " accepted=" + str(accepted) + " remaining=" + str(remaining) + " status=" + status)
import queue


offered = 
buffer = queue.Queue(maxsize=3)
accepted = 0

for item in range(offered):
    try:
        buffer.put_nowait(item)
        accepted += 1
    except queue.Full:
        pass

remaining = 3 - buffer.qsize()
status = "full" if remaining == 0 else "dropped" if accepted < offered else "tight" if remaining <= 1 else "open"

print("offered=" + str(offered) + " accepted=" + str(accepted) + " remaining=" + str(remaining) + " status=" + status)
bounded queue A `queue.Queue` with a `maxsize` has fixed capacity, so `put_nowait` reports whether an item was buffered and the remaining room coordinates producers and consumers.