1. import collections
  2. import argparse
  3. def pretty_print_queue(queue, queue_name="Queue"):
  4. """Pretty prints a queue with its contents and length."""
  5. print(f"\n--- {queue_name} ---")
  6. if not queue:
  7. print("Queue is empty.")
  8. else:
  9. print("Contents:", list(queue))
  10. print(f"Length: {len(queue)}")
  11. print("------------------\n")
  12. def main():
  13. """Main function to handle CLI arguments and queue operations."""
  14. parser = argparse.ArgumentParser(description="Manage and view queues.")
  15. parser.add_argument("queue_name", help="Name of the queue to manage.")
  16. parser.add_argument("-a", "--add", help="Item to add to the queue.")
  17. parser.add_argument("-d", "--delete", help="Item to delete from the queue.")
  18. parser.add_argument("-v", "--view", action="store_true", help="View the queue.")
  19. parser.add_argument("-q", "--quit", action="store_true", help="Quit the program.")
  20. args = parser.parse_args()
  21. queue = collections.deque() # Initialize an empty queue
  22. if args.add:
  23. queue.append(args.add)
  24. print(f"Added '{args.add}' to the queue.")
  25. elif args.delete:
  26. try:
  27. queue.remove(args.delete)
  28. print(f"Removed '{args.delete}' from the queue.")
  29. except ValueError:
  30. print(f"'{args.delete}' not found in the queue.")
  31. elif args.view:
  32. pretty_print_queue(queue, args.queue_name)
  33. elif args.quit:
  34. print("Exiting...")
  35. return
  36. else:
  37. print("Invalid arguments. Use -a/--add, -d/--delete, -v/--view, or -q/--quit.")
  38. if __name__ == "__main__":
  39. main()

Add your comment