@@ -41,21 +41,25 @@ class Characters(Token):
41
41
class SpaceCharacters (Token ):
42
42
pass
43
43
44
- class StartTag (Token ):
45
- def __init__ (self , name , data , self_closing , self_closing_acknowledged = False ):
44
+
45
+ class Tag (Token ):
46
+ def __init__ (self , name , data , self_closing ):
46
47
self .name = name
47
48
self .data = data
48
49
self .self_closing = self_closing
50
+
51
+ class StartTag (Tag ):
52
+ def __init__ (self , name , data , self_closing , self_closing_acknowledged = False ):
53
+ super (StartTag , self ).__init__ (name , data , self_closing )
49
54
self .self_closing_acknowledged = self_closing_acknowledged
50
55
51
- class EndTag (Token ):
56
+ class EndTag (Tag ):
52
57
def __init__ (self , name , data , self_closing ):
53
- self .name = name
54
- self .data = data
55
- self .self_closing = self_closing
58
+ super (EndTag , self ).__init__ (name , data , self_closing )
56
59
57
- class EmptyTag (Token ):
58
- pass
60
+ class EmptyTag (Tag ):
61
+ def __init__ (self , name , data ):
62
+ super (EmptyTag , self ).__init__ (name , data , self_closing )
59
63
60
64
class Comment (Token ):
61
65
pass
@@ -66,9 +70,6 @@ def __init__(self, data, datavars=None):
66
70
self .datavars = datavars or {}
67
71
68
72
69
- tagTokenTypes = frozenset ([StartTag , EndTag , EmptyTag ])
70
-
71
-
72
73
class HTMLTokenizer (object ):
73
74
""" This class takes care of tokenizing HTML.
74
75
@@ -266,7 +267,7 @@ def emitCurrentToken(self):
266
267
"""
267
268
token = self .currentToken
268
269
# Add token to the queue to be yielded
269
- if ( type ( token ) in tagTokenTypes ):
270
+ if isinstance ( token , Tag ):
270
271
token .name = token .name .translate (asciiUpper2Lower )
271
272
if isinstance (token , StartTag ):
272
273
raw = token .data
0 commit comments