Skip to content

Commit 1fa5447

Browse files
committed
fix various bugs
1 parent 5b22940 commit 1fa5447

16 files changed

Lines changed: 573 additions & 362 deletions

File tree

cli/main.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,16 @@
55

66
import sys
77
import json
8-
from typing import Dict, List, Any, Optional
8+
from typing import Dict, List, Any, Optional, Tuple
99
from pathlib import Path
1010

1111
import click
1212
import redis
1313
from rich.console import Console
1414
from rich.table import Table
15-
from rich.pretty import pprint
1615
from rich import print as rprint
17-
from pydantic import BaseModel, Field, validator
16+
from pydantic import BaseModel, Field
1817
from dotenv import load_dotenv
19-
import tabulate
2018

2119
from config import ConfigManager, CLIConfig
2220
from 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

Comments
 (0)