Spaces:
Sleeping
Sleeping
File size: 799 Bytes
fbbf45b d8a93fc fbbf45b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
from typing import Dict, Optional
class CommandParser:
VALID_COMMANDS = ["MODE", "CARD", "REPO", "RUN", "TEST", "LEDGER", "RESET", "STATE", "HELP"]
@staticmethod
def parse(command: str) -> Dict:
command = (command or "").strip()
if not command:
return {"valid": False, "error": "Empty command"}
parts = command.split(maxsplit=1)
cmd = parts[0].upper()
arg = parts[1] if len(parts) > 1 else None
if cmd not in CommandParser.VALID_COMMANDS:
return {
"valid": False,
"error": f"Unknown command: {cmd}",
"suggestion": f"Valid: {', '.join(CommandParser.VALID_COMMANDS)}",
}
return {"valid": True, "command": cmd, "argument": arg, "raw": command}
|