1from enum import Enum 2from itertools import chain 3 4from typing import Set 5 6 7class Action(Enum): 8 CONSOLIDATE = 'consolidate' 9 BACKUP = 'backup' 10 RESTORE = 'restore' 11 12 13class Command(Enum): 14 QUERY = 'QUERY' 15 SUGGEST = 'SUGGEST' 16 PING = 'PING' 17 QUIT = 'QUIT' 18 HELP = 'HELP' 19 PUSH = 'PUSH' 20 POP = 'POP' 21 FLUSHB = 'FLUSHB' 22 FLUSHC = 'FLUSHC' 23 FLUSHO = 'FLUSHO' 24 COUNT = 'COUNT' 25 TRIGGER = 'TRIGGER' 26 INFO = 'INFO' 27 28 29class Channel(Enum): 30 UNINITIALIZED = 'uninitialized' 31 INGEST = 'ingest' 32 SEARCH = 'search' 33 CONTROL = 'control' 34 35 36enabled_commands = { 37 Channel.UNINITIALIZED: { 38 Command.QUIT, 39 }, 40 Channel.SEARCH: { 41 Command.QUERY, 42 Command.SUGGEST, 43 Command.PING, 44 Command.HELP, 45 Command.QUIT, 46 }, 47 Channel.INGEST: { 48 Command.PUSH, 49 Command.POP, 50 Command.COUNT, 51 Command.FLUSHB, 52 Command.FLUSHC, 53 Command.FLUSHO, 54 Command.PING, 55 Command.HELP, 56 Command.QUIT, 57 }, 58 Channel.CONTROL: { 59 Command.TRIGGER, 60 Command.PING, 61 Command.HELP, 62 Command.QUIT, 63 } 64} 65 66all_commands = set(chain(*enabled_commands.values())) # type: Set[Command] 67