33from gettext import gettext
44_ = gettext
55
6+ from six import text_type
7+
68from . import _base
79from ..constants import cdataElements , rcdataElements , voidElements
810
@@ -24,7 +26,7 @@ def __iter__(self):
2426 name = token ["name" ]
2527 if contentModelFlag != "PCDATA" :
2628 raise LintError (_ ("StartTag not in PCDATA content model flag: %(tag)s" ) % {"tag" : name })
27- if not isinstance (name , str ):
29+ if not isinstance (name , text_type ):
2830 raise LintError (_ ("Tag name is not a string: %(tag)r" ) % {"tag" : name })
2931 if not name :
3032 raise LintError (_ ("Empty tag name" ))
@@ -34,12 +36,14 @@ def __iter__(self):
3436 raise LintError (_ ("Non-void element reported as EmptyTag token: %(tag)s" ) % {"tag" : token ["name" ]})
3537 if type == "StartTag" :
3638 open_elements .append (name )
37- for name , value in token ["data" ]:
38- if not isinstance (name , str ):
39+ for (ns , name ), value in token ["data" ].items ():
40+ if ns is not None and not isinstance (ns , text_type ):
41+ raise LintError (_ ("Attribute namespace is not None or a string: %(name)r" ) % {"name" : name })
42+ if not isinstance (name , text_type ):
3943 raise LintError (_ ("Attribute name is not a string: %(name)r" ) % {"name" : name })
4044 if not name :
4145 raise LintError (_ ("Empty attribute name" ))
42- if not isinstance (value , str ):
46+ if not isinstance (value , text_type ):
4347 raise LintError (_ ("Attribute value is not a string: %(value)r" ) % {"value" : value })
4448 if name in cdataElements :
4549 contentModelFlag = "CDATA"
@@ -50,7 +54,7 @@ def __iter__(self):
5054
5155 elif type == "EndTag" :
5256 name = token ["name" ]
53- if not isinstance (name , str ):
57+ if not isinstance (name , text_type ):
5458 raise LintError (_ ("Tag name is not a string: %(tag)r" ) % {"tag" : name })
5559 if not name :
5660 raise LintError (_ ("Empty tag name" ))
@@ -67,7 +71,7 @@ def __iter__(self):
6771
6872 elif type in ("Characters" , "SpaceCharacters" ):
6973 data = token ["data" ]
70- if not isinstance (data , str ):
74+ if not isinstance (data , text_type ):
7175 raise LintError (_ ("Attribute name is not a string: %(name)r" ) % {"name" : data })
7276 if not data :
7377 raise LintError (_ ("%(type)s token with empty data" ) % {"type" : type })
@@ -80,7 +84,7 @@ def __iter__(self):
8084 name = token ["name" ]
8185 if contentModelFlag != "PCDATA" :
8286 raise LintError (_ ("Doctype not in PCDATA content model flag: %(name)s" ) % {"name" : name })
83- if not isinstance (name , str ):
87+ if not isinstance (name , text_type ):
8488 raise LintError (_ ("Tag name is not a string: %(tag)r" ) % {"tag" : name })
8589 # XXX: what to do with token["data"] ?
8690
0 commit comments