Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on May 5, 2023. It is now read-only.

Commit0db23a3

Browse files
committed
Use dict on Py >= 3.7 for attributes now it is ordered
1 parent0fdd819 commit0db23a3

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

‎html5lib/html5parser.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
fromsiximportwith_metaclass,viewkeys
33

44
importtypes
5+
56
fromcollectionsimportOrderedDict
7+
fromsysimportversion_info
68

79
from .import_inputstream
810
from .import_tokenizer
@@ -24,6 +26,12 @@
2426
)
2527

2628

29+
ifversion_info>= (3,7):
30+
attributeMap=dict
31+
else:
32+
attributeMap=OrderedDict
33+
34+
2735
defparse(doc,treebuilder="etree",namespaceHTMLElements=True,**kwargs):
2836
"""Parse an HTML document as a string or file-like object into a tree
2937
@@ -329,10 +337,11 @@ def normalizeToken(self, token):
329337
# HTML5 specific normalizations to the token stream
330338
iftoken["type"]==tokenTypes["StartTag"]:
331339
raw=token["data"]
332-
token["data"]=OrderedDict(raw)
333-
iflen(raw)>len(token["data"]):
340+
data=attributeMap(raw)
341+
iflen(raw)>len(data):
334342
# we had some duplicated attribute, fix so first wins
335-
token["data"].update(raw[::-1])
343+
data.update(raw[::-1])
344+
token["data"]=data
336345

337346
returntoken
338347

@@ -2770,8 +2779,8 @@ def processEndTag(self, token):
27702779
defadjust_attributes(token,replacements):
27712780
needs_adjustment=viewkeys(token['data'])&viewkeys(replacements)
27722781
ifneeds_adjustment:
2773-
token['data']=OrderedDict((replacements.get(k,k),v)
2774-
fork,vintoken['data'].items())
2782+
token['data']=attributeMap((replacements.get(k,k),v)
2783+
fork,vintoken['data'].items())
27752784

27762785

27772786
defimpliedTagToken(name,type="EndTag",attributes=None,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp