import collections
import argparse
def pretty_print_queue(queue, queue_name="Queue"):
"""Pretty prints a queue with its contents and length."""
print(f"\n--- {queue_name} ---")
if not queue:
print("Queue is empty.")
else:
print("Contents:", list(queue))
print(f"Length: {len(queue)}")
print("------------------\n")
def main():
"""Main function to handle CLI arguments and queue operations."""
parser = argparse.ArgumentParser(description="Manage and view queues.")
parser.add_argument("queue_name", help="Name of the queue to manage.")
parser.add_argument("-a", "--add", help="Item to add to the queue.")
parser.add_argument("-d", "--delete", help="Item to delete from the queue.")
parser.add_argument("-v", "--view", action="store_true", help="View the queue.")
parser.add_argument("-q", "--quit", action="store_true", help="Quit the program.")
args = parser.parse_args()
queue = collections.deque() # Initialize an empty queue
if args.add:
queue.append(args.add)
print(f"Added '{args.add}' to the queue.")
elif args.delete:
try:
queue.remove(args.delete)
print(f"Removed '{args.delete}' from the queue.")
except ValueError:
print(f"'{args.delete}' not found in the queue.")
elif args.view:
pretty_print_queue(queue, args.queue_name)
elif args.quit:
print("Exiting...")
return
else:
print("Invalid arguments. Use -a/--add, -d/--delete, -v/--view, or -q/--quit.")
if __name__ == "__main__":
main()
Add your comment