55
66import sys
77import json
8- from typing import Dict , List , Any , Optional
8+ from typing import Dict , List , Any , Optional , Tuple
99from pathlib import Path
1010
1111import click
1212import redis
1313from rich .console import Console
1414from rich .table import Table
15- from rich .pretty import pprint
1615from rich import print as rprint
17- from pydantic import BaseModel , Field , validator
16+ from pydantic import BaseModel , Field
1817from dotenv import load_dotenv
19- import tabulate
2018
2119from config import ConfigManager , CLIConfig
2220from logger import setup_logging , get_logger
@@ -31,7 +29,7 @@ class QueueInfo(BaseModel):
3129 """Model for queue information."""
3230
3331 name : str
34- priority : str
32+ priority : int
3533 paused : bool
3634
3735
@@ -89,21 +87,27 @@ def decode_redis_value(self, value: Any) -> Any:
8987 }
9088 return value
9189
90+ @staticmethod
91+ def parse_queue_entry (queue_str : str ) -> Tuple [str , int ]:
92+ """Parse a queue entry like 'name:10' into (name, priority)."""
93+ name , sep , suffix = queue_str .rpartition (":" )
94+ if sep and suffix .isdigit ():
95+ return name , int (suffix )
96+ return queue_str , 0
97+
9298 def get_queues (self ) -> List [QueueInfo ]:
9399 """Retrieve all queues with their metadata."""
94100 queue_keys = self .client .smembers ("cppq:queues" )
95101 queues = []
96102
97103 for queue_key in queue_keys :
98104 queue_str = queue_key .decode ("utf-8" )
99- parts = queue_str .split (":" )
100- name = parts [0 ]
101- priority = parts [1 ] if len (parts ) > 1 else "0"
105+ name , priority = self .parse_queue_entry (queue_str )
102106 paused = self .client .sismember ("cppq:queues:paused" , name )
103107
104108 queues .append (QueueInfo (name = name , priority = priority , paused = bool (paused )))
105109
106- return sorted (queues , key = lambda q : (q . name , q .priority ))
110+ return sorted (queues , key = lambda q : (- q . priority , q .name ))
107111
108112 def get_queue_stats (self , queue_name : str ) -> QueueStats :
109113 """Get statistics for a specific queue."""
0 commit comments