11from email .message import Message
22from typing import (
3- TYPE_CHECKING ,
4- List ,
5- Optional ,
6- Union ,
7- SupportsInt ,
8- Text
3+ Optional
94)
105
116from sifter .grammar .command import Command
12- from sifter .grammar .command_list import CommandList
137from sifter .grammar .state import EvaluationState
148from sifter .grammar .actions import Actions
159
16- if TYPE_CHECKING :
17- from sifter .grammar .tag import Tag as TagGrammar
18- from sifter .grammar .string import String
19- from sifter .grammar .test import Test
20-
21- __all__ = ('CommandIf' , 'CommandElsIf' , 'CommandElse' ,)
22-
2310
2411# section 3.1
2512class CommandIfBase (Command ):
2613
27- def __init__ (
28- self ,
29- arguments : Optional [List [Union ['TagGrammar' , SupportsInt , List [Union [Text , 'String' ]]]]] = None ,
30- tests : Optional [List ['Test' ]] = None ,
31- block : Optional [CommandList ] = None
32- ) -> None :
33- super (CommandIfBase , self ).__init__ (arguments , tests , block )
34- self .validate_arguments ()
35- self .validate_tests_size (1 )
14+ TESTS_MIN = 1
15+ HAS_BLOCKS = False
3616
3717 def evaluate (self , message : Message , state : EvaluationState ) -> Optional [Actions ]:
3818 if self .tests [0 ].evaluate (message , state ):
@@ -58,7 +38,7 @@ class CommandElsIf(CommandIfBase):
5838 def evaluate (self , message : Message , state : EvaluationState ) -> Optional [Actions ]:
5939 if state .last_if :
6040 return None
61- return super (CommandElsIf , self ).evaluate (message , state )
41+ return super ().evaluate (message , state )
6242
6343
6444CommandElsIf .register ()
@@ -67,16 +47,8 @@ def evaluate(self, message: Message, state: EvaluationState) -> Optional[Actions
6747class CommandElse (Command ):
6848
6949 RULE_IDENTIFIER = 'ELSE'
70-
71- def __init__ (
72- self ,
73- arguments : Optional [List [Union ['TagGrammar' , SupportsInt , List [Union [Text , 'String' ]]]]] = None ,
74- tests : Optional [List ['Test' ]] = None ,
75- block : Optional [CommandList ] = None
76- ) -> None :
77- super (CommandElse , self ).__init__ (arguments , tests , block )
78- self .validate_arguments ()
79- self .validate_tests_size (0 )
50+ TESTS_MIN = 0
51+ HAS_BLOCKS = False
8052
8153 def evaluate (self , message : Message , state : EvaluationState ) -> Optional [Actions ]:
8254 if state .last_if :
0 commit comments