@@ -890,7 +890,7 @@ def _serialize_xml(write, elem, qnames, namespaces, *,
890890 target = text
891891 if (not is_valid_name (target ) or target .lower () == 'xml'
892892 or '?>' in text or not is_valid_text (text )):
893- raise ValueError ('invalid processing instruction' )
893+ raise ValueError (f 'invalid processing instruction { elem . text !r } ' )
894894 write ("<?%s?>" % text )
895895 else :
896896 tag = qnames [tag ]
@@ -904,7 +904,7 @@ def _serialize_xml(write, elem, qnames, namespaces, *,
904904 else :
905905 if validate :
906906 if not is_valid_name (tag ):
907- raise ValueError ('invalid element name' )
907+ raise ValueError (f 'invalid element name { tag !r } ' )
908908 write ("<" + tag )
909909 items = list (elem .items ())
910910 if items or namespaces :
@@ -915,7 +915,7 @@ def _serialize_xml(write, elem, qnames, namespaces, *,
915915 k = ":" + k
916916 if validate :
917917 if not is_valid_name (k ):
918- raise ValueError ('invalid namespace name' )
918+ raise ValueError (f 'invalid namespace name { k [ 1 :]!r } ' )
919919 write (" xmlns%s=\" %s\" " % (
920920 k ,
921921 _escape_attrib (v , validate )
@@ -925,12 +925,12 @@ def _serialize_xml(write, elem, qnames, namespaces, *,
925925 k = k .text
926926 if validate :
927927 if not is_valid_name (qnames [k ]):
928- raise ValueError ('invalid attribute name' )
928+ raise ValueError (f 'invalid attribute name { k !r } ' )
929929 if isinstance (v , QName ):
930930 v = qnames [v .text ]
931931 if validate :
932932 if not is_valid_name (v ):
933- raise ValueError ('invalid attribute value' )
933+ raise ValueError (f 'invalid attribute value { v !r } ' )
934934 else :
935935 v = _escape_attrib (v , validate )
936936 write (" %s=\" %s\" " % (qnames [k ], v ))
@@ -967,7 +967,7 @@ def _serialize_html(write, elem, qnames, namespaces, *, validate=True, **kwargs)
967967 elif tag is ProcessingInstruction :
968968 if validate :
969969 if '>' in text or '\0 ' in text :
970- raise ValueError ('invalid processing instruction' )
970+ raise ValueError (f 'invalid processing instruction { text !r } ' )
971971 write ("<?%s?>" % text )
972972 else :
973973 tag = qnames [tag ]
@@ -982,7 +982,7 @@ def _serialize_html(write, elem, qnames, namespaces, *, validate=True, **kwargs)
982982 else :
983983 if validate :
984984 if not re .fullmatch ('[A-Za-z][^\0 \t \n \r \f />]*+' , tag ):
985- raise ValueError ('invalid element name' )
985+ raise ValueError (f 'invalid element name { tag !r } ' )
986986 write ("<" + tag )
987987 items = list (elem .items ())
988988 if items or namespaces :
@@ -993,7 +993,7 @@ def _serialize_html(write, elem, qnames, namespaces, *, validate=True, **kwargs)
993993 k = ":" + k
994994 if validate :
995995 if not re .fullmatch ('[^\0 \t \n \r \f />=]++' , k ):
996- raise ValueError ('invalid attribute name' )
996+ raise ValueError (f 'invalid attribute name { k !r } ' )
997997 if validate :
998998 if '\0 ' in v :
999999 raise ValueError ('invalid characters' )
@@ -1007,19 +1007,19 @@ def _serialize_html(write, elem, qnames, namespaces, *, validate=True, **kwargs)
10071007 k = qnames [k ]
10081008 if validate :
10091009 if not re .fullmatch ('[^\0 \t \n \r \f />][^\0 \t \n \r \f />=]*+' , k ):
1010- raise ValueError ('invalid attribute name' )
1010+ raise ValueError (f 'invalid attribute name { k !r } ' )
10111011 if v is None :
10121012 write (" %s" % k ) # empty attr
10131013 else :
10141014 if isinstance (v , QName ):
10151015 v = qnames [v .text ]
10161016 if validate :
10171017 if '\0 ' in v or '"' in v or '&' in v :
1018- raise ValueError ('invalid attribute value' )
1018+ raise ValueError (f 'invalid attribute value { v !r } ' )
10191019 else :
10201020 if validate :
10211021 if '\0 ' in v :
1022- raise ValueError ('invalid attribute value' )
1022+ raise ValueError (f 'invalid attribute value { v !r } ' )
10231023 v = _escape_attrib_html (v )
10241024 write (" %s=\" %s\" " % (k , v ))
10251025 write (">" )
0 commit comments