Skip to content

Commit 483d691

Browse files
added some type hints
1 parent ccf627a commit 483d691

15 files changed

Lines changed: 65 additions & 35 deletions

sifter/extension.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
from typing import Text
2+
13
import sifter.handler
24

35
__all__ = ('register',)
46

57

6-
def register(extension_name):
8+
def register(extension_name: Text) -> None:
79
sifter.handler.register('extension', extension_name, True)

sifter/grammar/comparator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class Comparator(object):
99

1010
@classmethod
11-
def register(cls):
11+
def register(cls) -> None:
1212
try:
1313
sifter.comparator.register(cls.COMPARATOR_ID, cls)
1414
except AttributeError:

sifter/grammar/rule.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class RuleSyntaxError(Exception):
1212
class Rule(object):
1313

1414
@classmethod
15-
def register(cls):
15+
def register(cls) -> None:
1616
try:
1717
sifter.handler.register(cls.RULE_TYPE, cls.RULE_IDENTIFIER, cls)
1818
except AttributeError:

sifter/grammar/state.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
class EvaluationState(object):
77

8-
def __init__(self):
8+
def __init__(self) -> None:
99
self.actions = sifter.grammar.Actions(implicit_keep=True)
1010
self.required_extensions = {}
1111
# section 6.1: the built-in comparators have defined capability

sifter/t/test_comparators.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ class MockComparator(sifter.grammar.Comparator):
1111

1212
class TestMatchTypes(unittest.TestCase):
1313

14-
def setUp(self):
14+
def setUp(self) -> None:
1515
MockComparator.register()
1616

17-
def test_unimplemented_match_type(self):
17+
def test_unimplemented_match_type(self) -> None:
1818
self.assertRaises(
1919
RuntimeError,
2020
sifter.comparator.get_match_fn,

sifter/t/test_evaluation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class TestEvaluateRules(unittest.TestCase):
1818
("evaluation_3.msg", "evaluation_3.rules", [('keep', None)]),
1919
)
2020

21-
def setUp(self):
21+
def setUp(self) -> None:
2222
self.messages = {}
2323
self.rules = {}
2424
for result in self.EVAL_RESULTS:
@@ -29,7 +29,7 @@ def setUp(self):
2929
encoding='utf-8') as rule_fh:
3030
self.rules.setdefault(result[1], sifter.parser.parse_file(rule_fh))
3131

32-
def test_msg_rule_cross_product(self):
32+
def test_msg_rule_cross_product(self) -> None:
3333
for result in self.EVAL_RESULTS:
3434
self.assertEqual(
3535
self.rules[result[1]].evaluate(self.messages[result[0]]),

sifter/t/test_grammar.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66

77
class TestEvaluationState(unittest.TestCase):
88

9-
def setUp(self):
9+
def setUp(self) -> None:
1010
sifter.extension.register('ext1')
1111
sifter.extension.register('ext2')
1212
self.state = sifter.grammar.EvaluationState()
1313

14-
def test_require_extension(self):
14+
def test_require_extension(self) -> None:
1515
self.state.require_extension('ext1')
1616
self.assertTrue(self.state.check_required_extension('ext1', 'ext1'))
1717
self.assertRaises(

sifter/t/test_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
class TestParseFile(unittest.TestCase):
99

10-
def test_files(self):
10+
def test_files(self) -> None:
1111
for in_filename, golden_filename in (("parser_1.in", "parser_1.out"),):
1212
with codecs.open(os.path.join(os.path.dirname(__file__), in_filename), encoding='utf-8') as in_fh:
1313
test_output = str(sifter.parser.parse_file(in_fh))

sifter/t/test_validators.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ def __init__(self, arguments=None, tests=None):
1515

1616
class TestValidationFn(unittest.TestCase):
1717

18-
def test_too_many_args(self):
18+
def test_too_many_args(self) -> None:
1919
mock_rule = MockRule([sifter.grammar.Tag('IS'), 13, ])
2020
self.assertRaises(
2121
sifter.grammar.RuleSyntaxError,
2222
mock_rule.validate_arguments,
2323
)
2424

25-
def test_not_enough_args(self):
25+
def test_not_enough_args(self) -> None:
2626
mock_rule = MockRule([13, ])
2727
self.assertRaises(
2828
sifter.grammar.RuleSyntaxError,
@@ -36,29 +36,29 @@ def test_not_enough_args(self):
3636

3737
class TestTagValidator(unittest.TestCase):
3838

39-
def test_allowed_tag(self):
39+
def test_allowed_tag(self) -> None:
4040
mock_validator = sifter.validators.Tag(['MOCK', 'IS', ])
4141
self.assertEqual(
4242
mock_validator.validate([sifter.grammar.Tag('IS')], 0),
4343
1
4444
)
4545

46-
def test_allowed_single_tag(self):
46+
def test_allowed_single_tag(self) -> None:
4747
# test the case for a non-list single tag name
4848
mock_validator = sifter.validators.Tag('IS')
4949
self.assertEqual(
5050
mock_validator.validate([sifter.grammar.Tag('IS')], 0),
5151
1
5252
)
5353

54-
def test_not_allowed_tag(self):
54+
def test_not_allowed_tag(self) -> None:
5555
mock_validator = sifter.validators.Tag(['MOCK', 'FOO', ])
5656
self.assertEqual(
5757
mock_validator.validate([sifter.grammar.Tag('IS')], 0),
5858
0
5959
)
6060

61-
def test_not_allowed_single_tag(self):
61+
def test_not_allowed_single_tag(self) -> None:
6262
# test the case for a non-list single tag name. test when the tag is a
6363
# substring of the allowed tag.
6464
mock_validator = sifter.validators.Tag('ISFOO')

sifter/tests/address.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import email.utils
2+
from typing import (
3+
Text
4+
)
25

36
import sifter.grammar
47
import sifter.grammar.string
@@ -10,9 +13,9 @@
1013
# section 5.1
1114
class TestAddress(sifter.grammar.Test):
1215

13-
RULE_IDENTIFIER = 'ADDRESS'
16+
RULE_IDENTIFIER: Text = 'ADDRESS'
1417

15-
def __init__(self, arguments=None, tests=None):
18+
def __init__(self, arguments=None, tests=None) -> None:
1619
super(TestAddress, self).__init__(arguments, tests)
1720
tagged_args, positional_args = self.validate_arguments(
1821
{
@@ -36,7 +39,7 @@ def __init__(self, arguments=None, tests=None):
3639
if 'address_part' in tagged_args:
3740
self.address_part = tagged_args['address_part'][0]
3841

39-
def evaluate(self, message, state):
42+
def evaluate(self, message, state) -> bool:
4043
header_values = []
4144
for header in self.headers:
4245
# TODO: section 5.1: we should restrict the allowed headers to

0 commit comments

Comments
 (0)