Skip to content

Commit 462edc0

Browse files
removed __init__ methods from tests and commands
1 parent 6e35561 commit 462edc0

5 files changed

Lines changed: 16 additions & 101 deletions

File tree

sifter/commands/fileinto.py

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,25 @@
11
from email.message import Message
22
from typing import (
3-
TYPE_CHECKING,
4-
List,
5-
Optional,
6-
Union,
7-
SupportsInt,
8-
Text
3+
Optional
94
)
105

116
from sifter.grammar.command import Command
12-
from sifter.grammar.command_list import CommandList
137
from sifter.validators.stringlist import StringList
148
from sifter.grammar.state import EvaluationState
159
from sifter.grammar.actions import Actions
1610

17-
if TYPE_CHECKING:
18-
from sifter.grammar.tag import Tag as TagGrammar
19-
from sifter.grammar.string import String
20-
from sifter.grammar.test import Test
21-
2211

2312
# section 4.1
2413
class CommandFileInto(Command):
2514

2615
RULE_IDENTIFIER = 'FILEINTO'
2716
POSITIONAL_ARGS = [StringList(length=1)]
2817

29-
def __init__(
30-
self,
31-
arguments: Optional[List[Union['TagGrammar', SupportsInt, List[Union[Text, 'String']]]]] = None,
32-
tests: Optional[List['Test']] = None,
33-
block: Optional[CommandList] = None
34-
) -> None:
35-
super().__init__(arguments, tests, block)
36-
self.file_dest = self.positional_args[0]
37-
3818
def evaluate(self, message: Message, state: EvaluationState) -> Optional[Actions]:
19+
file_dest = self.positional_args[0]
20+
3921
state.check_required_extension('fileinto', 'FILEINTO')
40-
state.actions.append('fileinto', self.file_dest) # type: ignore
22+
state.actions.append('fileinto', file_dest) # type: ignore
4123
state.actions.cancel_implicit_keep()
4224
return None
4325

sifter/commands/if_cmd.py

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,12 @@
11
from email.message import Message
22
from typing import (
3-
TYPE_CHECKING,
4-
List,
5-
Optional,
6-
Union,
7-
SupportsInt,
8-
Text
3+
Optional
94
)
105

116
from sifter.grammar.command import Command
12-
from sifter.grammar.command_list import CommandList
137
from sifter.grammar.state import EvaluationState
148
from 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-
2110

2211
# section 3.1
2312
class CommandIfBase(Command):
@@ -61,14 +50,6 @@ class CommandElse(Command):
6150
TESTS_MIN = 0
6251
HAS_BLOCKS = False
6352

64-
def __init__(
65-
self,
66-
arguments: Optional[List[Union['TagGrammar', SupportsInt, List[Union[Text, 'String']]]]] = None,
67-
tests: Optional[List['Test']] = None,
68-
block: Optional[CommandList] = None
69-
) -> None:
70-
super().__init__(arguments, tests, block)
71-
7253
def evaluate(self, message: Message, state: EvaluationState) -> Optional[Actions]:
7354
if state.last_if:
7455
return None

sifter/commands/require.py

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,26 @@
11
from email.message import Message
22
from typing import (
3-
TYPE_CHECKING,
43
Text,
5-
List,
6-
Optional,
7-
Union,
8-
SupportsInt
4+
Optional
95
)
106

117
from sifter.grammar.command import Command
12-
from sifter.grammar.command_list import CommandList
138
import sifter.grammar
149
import sifter.handler
1510
from sifter.validators.stringlist import StringList
1611
from sifter.grammar.state import EvaluationState
1712
from sifter.grammar.actions import Actions
1813

19-
if TYPE_CHECKING:
20-
from sifter.grammar.tag import Tag as TagGrammar
21-
from sifter.grammar.string import String
22-
from sifter.grammar.test import Test
23-
2414

2515
# section 3.2
2616
class CommandRequire(Command):
2717

2818
RULE_IDENTIFIER: Text = 'REQUIRE'
2919
POSITIONAL_ARGS = [StringList()]
3020

31-
def __init__(
32-
self,
33-
arguments: Optional[List[Union['TagGrammar', SupportsInt, List[Union[Text, 'String']]]]] = None,
34-
tests: Optional[List['Test']] = None,
35-
block: Optional[CommandList] = None
36-
) -> None:
37-
super().__init__(arguments, tests, block)
38-
self.ext_names = self.positional_args[0]
39-
4021
def evaluate(self, message: Message, state: EvaluationState) -> Optional[Actions]:
41-
for ext_name in self.ext_names:
22+
ext_name_list = self.positional_args[0]
23+
for ext_name in ext_name_list:
4224
if not sifter.handler.get('extension', ext_name):
4325
raise RuntimeError(
4426
"Required extension '%s' not supported"

sifter/tests/exists.py

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,23 @@
11
from email.message import Message
22
from typing import (
3-
TYPE_CHECKING,
4-
List,
5-
Optional,
6-
SupportsInt,
7-
Text,
8-
Union
3+
Optional
94
)
105

116

127
from sifter.grammar.state import EvaluationState
138
from sifter.grammar.test import Test
149
from sifter.validators.stringlist import StringList
1510

16-
if TYPE_CHECKING:
17-
from sifter.grammar.tag import Tag as TagGrammar
18-
from sifter.grammar.string import String
19-
2011

2112
# section 5.9
2213
class TestExists(Test):
2314

2415
RULE_IDENTIFIER = 'EXISTS'
2516
POSITIONAL_ARGS = [StringList()]
2617

27-
def __init__(
28-
self,
29-
arguments: Optional[List[Union['TagGrammar', SupportsInt, List[Union[Text, 'String']]]]] = None,
30-
tests: Optional[List['Test']] = None
31-
) -> None:
32-
super().__init__(arguments, tests)
33-
self.headers = self.positional_args[0]
34-
3518
def evaluate(self, message: Message, state: EvaluationState) -> Optional[bool]:
36-
if not isinstance(self.headers, list):
19+
headers = self.positional_args[0]
20+
if not isinstance(headers, list):
3721
raise ValueError("TestExists.headers must be a list")
3822
for header in self.headers:
3923
if header not in message:

sifter/tests/size.py

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,18 @@
11
import operator
22
from email.message import Message
33
from typing import (
4-
TYPE_CHECKING,
54
Any,
6-
List,
75
Callable,
86
Dict,
97
Text,
10-
SupportsInt,
11-
Optional,
12-
Union
8+
Optional
139
)
1410

1511
from sifter.grammar.test import Test
1612
from sifter.validators.tag import Tag
1713
from sifter.validators.number import Number
1814
from sifter.grammar.state import EvaluationState
1915

20-
if TYPE_CHECKING:
21-
from sifter.grammar.tag import Tag as TagGrammar
22-
from sifter.grammar.string import String
23-
2416

2517
# section 5.9
2618
class TestSize(Test):
@@ -38,20 +30,14 @@ class TestSize(Test):
3830
'UNDER': operator.lt,
3931
}
4032

41-
def __init__(
42-
self,
43-
arguments: Optional[List[Union['TagGrammar', SupportsInt, List[Union[Text, 'String']]]]] = None,
44-
tests: Optional[List['Test']] = None
45-
) -> None:
46-
super().__init__(arguments, tests)
47-
self.comparison_fn = self.COMPARISON_FNS[self.tagged_args['size'][0]] # type: ignore
48-
self.comparison_size = self.tagged_args['size'][1]
49-
5033
def evaluate(self, message: Message, state: EvaluationState) -> Optional[bool]:
34+
comparison_fn = self.COMPARISON_FNS[self.tagged_args['size'][0]] # type: ignore
35+
comparison_size = self.tagged_args['size'][1]
36+
5137
# FIXME: size is defined as number of octets, whereas this gives us
5238
# number of characters
5339
message_size = len(message.as_string())
54-
return self.comparison_fn(message_size, self.comparison_size)
40+
return comparison_fn(message_size, comparison_size)
5541

5642

5743
TestSize.register()

0 commit comments

Comments
 (0)