55"""
66
77from abc import abstractmethod , ABCMeta
8- from chardet import detect
98
109
1110class LineFeeder (metaclass = ABCMeta ):
@@ -30,39 +29,43 @@ def feed(self):
3029 Consume and return next line of code. Each line should be followed by a
3130 newline character. Returns '' after all lines are consumed.
3231 """
32+
3333 return ""
3434
3535 @abstractmethod
36- def empty (self ):
36+ def empty (self ) -> bool :
3737 """
3838 Return True once all lines have been consumed.
3939 """
40+
4041 return True
4142
42- def message (self , sym : str , tag , * args ):
43+ def message (self , sym : str , tag : str , * args ) -> None :
4344 """
4445 Append a generic message of type ``sym`` to the message queue.
4546 """
47+
4648 if sym == "Syntax" :
4749 message = self .syntax_message (sym , tag , * args )
4850 else :
4951 message = [sym , tag ] + list (args )
5052 self .messages .append (message )
5153
52- def syntax_message (self , sym : str , tag , * args ):
54+ def syntax_message (self , sym : str , tag : str , * args ):
5355 """
5456 Append a message concerning syntax errors to the message queue.
5557 """
58+
5659 if len (args ) > 3 :
5760 raise ValueError ("Too many args." )
5861 message = [sym , tag ]
5962 for i in range (3 ):
6063 if i < len (args ):
61- message .append ('"' + args [i ] + ' "' )
64+ message .append (f'" { args [i ]} "' )
6265 else :
6366 message .append ('""' )
64- message .append (self .lineno )
65- message .append ('"' + self .filename + ' "' )
67+ message .append (str ( self .lineno ) )
68+ message .append (f'" { self .filename } "' )
6669 assert len (message ) == 7
6770 return message
6871
@@ -97,7 +100,7 @@ def feed(self):
97100 result = ""
98101 return result
99102
100- def empty (self ):
103+ def empty (self ) -> bool :
101104 return self .lineno >= len (self .lines )
102105
103106
@@ -121,7 +124,7 @@ def feed(self):
121124 self .lineno += 1
122125 return self .code
123126
124- def empty (self ):
127+ def empty (self ) -> bool :
125128 return self ._empty
126129
127130
0 commit comments