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

Commit7a06a5a

Browse files
committed
Placate pyflakes and fix tests after fixing issues.
This is mostly just removing dead variables, however, there are a fewsubstantial changes in here: - Move to using try/except ImportError/else in tests where we are checking some module existing, as this was hiding genuine bugs that manifested themselves as ImportError (the ElementTree treewalker was throwing ImportError when being imported). - Fixes the ImportError the ElementTree treewalker was throwing (this was, too, reported as a bug by pyflakes, thereby showing its value). - Fixes the assertion then shown in the ElementTree treewalker (this is simply a case of it having been missed in the move to Python 3, due to the tests not being run). - Fixes the ElementTree treewalker with xml.etree.cElementTree under 2.6, where the ElementTree Comment factory isn't the tag attribute on Comment objects (this is effectively the treewalker equivalent of3e50aad). - The parser defined the scriptDataDoubleEscapedDashState twice, therefore everything that should've been run in this state was in fact run in the scriptDataDoubleEscapedDashDashState.This also adds flake8 to Travis, albeit running it without any PEP 8errors showing.
1 parentb72b001 commit7a06a5a

28 files changed

+68
-113
lines changed

‎.travis.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ env:
1010
-USE_OPTIONAL=true
1111
-USE_OPTIONAL=false
1212

13+
matrix:
14+
exclude:
15+
-python:"2.7"
16+
env:USE_OPTIONAL=false
17+
include:
18+
-python:"2.7"
19+
env:USE_OPTIONAL=false FLAKE=true
20+
1321
before_install:
1422
-git submodule update --init --recursive
1523

@@ -19,9 +27,11 @@ install:
1927
-if [[ $TRAVIS_PYTHON_VERSION != 3.* && $USE_OPTIONAL == "true" ]]; then pip install -r requirements-optional-2.txt --use-mirrors; fi
2028
-if [[ $TRAVIS_PYTHON_VERSION == 3.* && $USE_OPTIONAL == "true" ]]; then pip install -r requirements-optional-3.txt --use-mirrors; fi
2129
-if [[ $TRAVIS_PYTHON_VERSION != "pypy" && $USE_OPTIONAL == "true" ]]; then pip install -r requirements-optional-cpython.txt --use-mirrors; fi
30+
-if [[ $FLAKE == "true" ]]; then pip install --use-mirrors flake8; fi
2231

2332
script:
2433
-nosetests
34+
-if [[ $FLAKE == "true" ]]; then flake8 --exclude=E,W html5lib; fi
2535

2636
after_script:
2737
-python debug-info.py

‎html5lib/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,6 @@
1818
from .treewalkersimportgetTreeWalker
1919
from .serializerimportserialize
2020

21+
__all__= ["HTMLParser","parse","parseFragment","getTreeBuilder",
22+
"getTreeWalker","serialize"]
2123
__version__="1.0b1"

‎html5lib/html5parser.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from __future__importabsolute_import,division,unicode_literals
22
fromsiximportwith_metaclass
33

4-
importsys
54
importtypes
65

76
from .importinputstream
@@ -14,10 +13,10 @@
1413
from .importutils
1514
from .importconstants
1615
from .constantsimportspaceCharacters,asciiUpper2Lower
17-
from .constantsimportformattingElements,specialElements
18-
from .constantsimportheadingElements,tableInsertModeElements
19-
from .constantsimportcdataElements,rcdataElements,voidElements
20-
from .constantsimporttokenTypes,ReparseException,namespaces,spaceCharacters
16+
from .constantsimportspecialElements
17+
from .constantsimportheadingElements
18+
from .constantsimportcdataElements,rcdataElements
19+
from .constantsimporttokenTypes,ReparseException,namespaces
2120
from .constantsimporthtmlIntegrationPointElements,mathmlTextIntegrationPointElements
2221

2322
defparse(doc,treebuilder="simpletree",encoding=None,
@@ -88,7 +87,7 @@ def _parse(self, stream, innerHTML=False, container="div",
8887
try:
8988
self.mainLoop()
9089
break
91-
exceptReparseExceptionase:
90+
exceptReparseException:
9291
self.reset()
9392

9493
defreset(self):
@@ -405,7 +404,7 @@ def parseRCDataRawtext(self, token, contentType):
405404
"""
406405
assertcontentTypein ("RAWTEXT","RCDATA")
407406

408-
element=self.tree.insertElement(token)
407+
self.tree.insertElement(token)
409408

410409
ifcontentType=="RAWTEXT":
411410
self.tokenizer.state=self.tokenizer.rawtextState
@@ -1402,7 +1401,6 @@ def endTagFormatting(self, token):
14021401
"""The much-feared adoption agency algorithm"""
14031402
# http://www.whatwg.org/specs/web-apps/current-work/#adoptionAgency
14041403
# XXX Better parseError messages appreciated.
1405-
name=token["name"]
14061404

14071405
# Step 1
14081406
outerLoopCounter=0
@@ -1620,7 +1618,7 @@ def endTagScript(self, token):
16201618
#document.write works
16211619

16221620
defendTagOther(self,token):
1623-
node=self.tree.openElements.pop()
1621+
self.tree.openElements.pop()
16241622
self.parser.phase=self.parser.originalPhase
16251623

16261624
classInTablePhase(Phase):

‎html5lib/inputstream.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
importcodecs
55
importre
6-
importtypes
76
importsys
87

98
from .constantsimportEOF,spaceCharacters,asciiLetters,asciiUppercase
@@ -107,8 +106,7 @@ def _readFromBuffer(self, bytes):
107106
bytesToRead=len(bufferedData)-bufferOffset
108107
self.position= [bufferIndex,len(bufferedData)]
109108
bufferIndex+=1
110-
data=rv.append(bufferedData[bufferOffset:
111-
bufferOffset+bytesToRead])
109+
rv.append(bufferedData[bufferOffset:bufferOffset+bytesToRead])
112110
remainingBytes-=bytesToRead
113111

114112
bufferOffset=0
@@ -290,7 +288,6 @@ def characterErrorsUCS2(self, data):
290288
#Someone picked the wrong compile option
291289
#You lose
292290
skip=False
293-
importsys
294291
formatchininvalid_unicode_re.finditer(data):
295292
ifskip:
296293
continue

‎html5lib/serializer/htmlserializer.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
else:
2525
unicode_encode_errors="htmlentityreplace"
2626

27-
fromhtml5lib.constantsimportentities
28-
2927
encode_entity_map= {}
3028
is_ucs4=len("\U0010FFFF")==1
3129
fork,vinlist(entities.items()):
@@ -228,7 +226,6 @@ def serialize(self, treewalker, encoding=None):
228226
in_cdata=True
229227
elifin_cdata:
230228
self.serializeError(_("Unexpected child element of a CDATA element"))
231-
attributes= []
232229
for (attr_namespace,attr_name),attr_valueinsorted(token["data"].items()):
233230
#TODO: Add namespace support here
234231
k=attr_name

‎html5lib/tests/__init__.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1 @@
11
from __future__importabsolute_import,division,unicode_literals
2-
3-
importsys
4-
importos
5-
6-
parent_path=os.path.abspath(os.path.join(os.path.split(__file__)[0],".."))
7-
8-
ifnotparent_pathinsys.path:
9-
sys.path.insert(0,parent_path)
10-
delparent_path
11-
12-
from .importsupport

‎html5lib/tests/support.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
os.path.pardir,
1313
os.path.pardir)))
1414

15-
importhtml5lib
16-
fromhtml5libimporthtml5parser,treebuilders
15+
fromhtml5libimporttreebuilders
1716
delbase_path
1817

1918
#Build a dict of avaliable trees
@@ -43,10 +42,11 @@
4342
pass
4443

4544
try:
46-
importlxml.etreeaslxml
47-
treeTypes['lxml']=treebuilders.getTreeBuilder("lxml")
45+
importlxml.etreeaslxml# flake8: noqa
4846
exceptImportError:
4947
pass
48+
else:
49+
treeTypes['lxml']=treebuilders.getTreeBuilder("lxml")
5050

5151
defget_data_files(subdirectory,files='*.dat'):
5252
returnglob.glob(os.path.join(test_dir,subdirectory,files))

‎html5lib/tests/test_encoding.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from __future__importabsolute_import,division,unicode_literals
22

3-
importre
43
importos
54
importunittest
65

@@ -27,7 +26,7 @@ def test_codec_name_d(self):
2726

2827
defrunParserEncodingTest(data,encoding):
2928
p=HTMLParser()
30-
t=p.parse(data,useChardet=False)
29+
p.parse(data,useChardet=False)
3130
encoding=encoding.lower().decode("ascii")
3231

3332
assertencoding==p.tokenizer.stream.charEncoding[0],errorMessage(data,encoding,p.tokenizer.stream.charEncoding[0])
@@ -44,18 +43,17 @@ def runPreScanEncodingTest(data, encoding):
4443

4544
deftest_encoding():
4645
forfilenameinget_data_files("encoding"):
47-
test_name=os.path.basename(filename).replace('.dat',''). \
48-
replace('-','')
4946
tests=TestData(filename,b"data",encoding=None)
5047
foridx,testinenumerate(tests):
5148
yield (runParserEncodingTest,test[b'data'],test[b'encoding'])
5249
yield (runPreScanEncodingTest,test[b'data'],test[b'encoding'])
5350

5451
try:
55-
importchardet
52+
importchardet# flake8: noqa
53+
exceptImportError:
54+
print("chardet not found, skipping chardet tests")
55+
else:
5656
deftest_chardet():
5757
withopen(os.path.join(test_dir,"encoding" ,"chardet","test_big5.txt"),"rb")asfp:
5858
encoding=inputstream.HTMLInputStream(fp.read()).charEncoding
5959
assertencoding[0].lower()=="big5"
60-
exceptImportError:
61-
print("chardet not found, skipping chardet tests")

‎html5lib/tests/test_parser.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,14 @@
33
importos
44
importsys
55
importtraceback
6-
importio
76
importwarnings
87
importre
98

109
warnings.simplefilter("error")
1110

1211
from .supportimportget_data_files
1312
from .supportimportTestData,convert,convertExpected,treeTypes
14-
importhtml5lib
15-
fromhtml5libimporthtml5parser,treebuilders,constants
13+
fromhtml5libimporthtml5parser,constants
1614

1715
#Run the parse error checks
1816
checkParseErrors=False

‎html5lib/tests/test_parser2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
importio
44

5-
from .importsupport
5+
from .importsupport# flake8: noqa
66
fromhtml5libimporthtml5parser
77
fromhtml5lib.constantsimportnamespaces
88
fromhtml5lib.treebuildersimportdom

‎html5lib/tests/test_sanitizer.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
from __future__importabsolute_import,division,unicode_literals
22

3-
importos
4-
importsys
5-
importunittest
6-
73
try:
84
importjson
95
exceptImportError:

‎html5lib/tests/test_serializer.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from __future__importabsolute_import,division,unicode_literals
22

3-
importos
43
importunittest
54
from .supportimportget_data_files
65

@@ -15,7 +14,7 @@
1514
unittest.TestCase.assertEqual=unittest.TestCase.assertEquals
1615

1716
importhtml5lib
18-
fromhtml5libimporthtml5parser,serializer,constants
17+
fromhtml5libimportserializer,constants
1918
fromhtml5lib.treewalkers._baseimportTreeWalker
2019

2120
optionals_loaded= []
@@ -172,6 +171,5 @@ def test_serializer():
172171
forfilenameinget_data_files('serializer','*.test'):
173172
withopen(filename)asfp:
174173
tests=json.load(fp)
175-
test_name=os.path.basename(filename).replace('.test','')
176174
forindex,testinenumerate(tests['tests']):
177175
yieldrunSerializerTest,test["input"],test["expected"],test.get("options", {})

‎html5lib/tests/test_stream.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__importabsolute_import,division,unicode_literals
22

3-
from .importsupport
3+
from .importsupport# flake8: noqa
44
importunittest,codecs
55

66
fromhtml5lib.inputstreamimportHTMLInputStream,HTMLUnicodeInputStream,HTMLBinaryInputStream

‎html5lib/tests/test_tokenizer.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33

44

5-
importsys
6-
importos
7-
importio
85
importwarnings
96
importre
107

@@ -176,7 +173,6 @@ def testTokenizer():
176173
forfilenameinget_data_files('tokenizer','*.test'):
177174
withopen(filename)asfp:
178175
tests=json.load(fp)
179-
testName=os.path.basename(filename).replace(".test","")
180176
if'tests'intests:
181177
forindex,testinenumerate(tests['tests']):
182178
if'initialStates'notintest:

‎html5lib/tests/test_treewalkers.py

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from .supportimportget_data_files,TestData,convertExpected
1515

1616
fromhtml5libimporthtml5parser,treewalkers,treebuilders,constants
17-
fromhtml5lib.filters.lintimportFilterasLintFilter,LintError
1817

1918
defPullDOMAdapter(node):
2019
fromxml.domimportNode
@@ -58,42 +57,35 @@ def PullDOMAdapter(node):
5857
#"supposed" to work
5958
try:
6059
importxml.etree.ElementTreeasElementTree
60+
exceptImportError:
61+
pass
62+
else:
6163
treeTypes['ElementTree']= \
6264
{"builder":treebuilders.getTreeBuilder("etree",ElementTree),
6365
"walker":treewalkers.getTreeWalker("etree",ElementTree)}
64-
exceptImportError:
65-
try:
66-
importelementtree.ElementTreeasElementTree
67-
treeTypes['ElementTree']= \
68-
{"builder":treebuilders.getTreeBuilder("etree",ElementTree),
69-
"walker":treewalkers.getTreeWalker("etree",ElementTree)}
70-
exceptImportError:
71-
pass
7266

7367
try:
7468
importxml.etree.cElementTreeasElementTree
69+
exceptImportError:
70+
pass
71+
else:
7572
treeTypes['cElementTree']= \
7673
{"builder":treebuilders.getTreeBuilder("etree",ElementTree),
7774
"walker":treewalkers.getTreeWalker("etree",ElementTree)}
78-
exceptImportError:
79-
try:
80-
importcElementTreeasElementTree
81-
treeTypes['cElementTree']= \
82-
{"builder":treebuilders.getTreeBuilder("etree",ElementTree),
83-
"walker":treewalkers.getTreeWalker("etree",ElementTree)}
84-
exceptImportError:
85-
pass
75+
8676

8777
try:
88-
importlxml.etreeasElementTree
78+
importlxml.etreeasElementTree# flake8: noqa
79+
exceptImportError:
80+
pass
81+
else:
8982
# treeTypes['lxml_as_etree'] = \
9083
# {"builder": treebuilders.getTreeBuilder("etree", ElementTree),
9184
# "walker": treewalkers.getTreeWalker("etree", ElementTree)}
9285
treeTypes['lxml_native']= \
9386
{"builder":treebuilders.getTreeBuilder("lxml"),
9487
"walker":treewalkers.getTreeWalker("lxml")}
95-
exceptImportError:
96-
pass
88+
9789

9890
#Try whatever etree implementations are available from a list that are
9991
#"supposed" to work

‎html5lib/tests/tokenizertotree.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
importhtml5lib
99
from .importsupport
10-
from .importtest_parser
1110
from .importtest_tokenizer
1211

1312
p=html5lib.HTMLParser()

‎html5lib/tokenizer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
fromcollectionsimportdeque
99

1010
from .constantsimportspaceCharacters
11-
from .constantsimportentitiesWindows1252,entities
12-
from .constantsimportasciiLowercase,asciiLetters,asciiUpper2Lower
11+
from .constantsimportentities
12+
from .constantsimportasciiLetters,asciiUpper2Lower
1313
from .constantsimportdigits,hexDigits,EOF
1414
from .constantsimporttokenTypes,tagTokenTypes
1515
from .constantsimportreplacementCharacters
@@ -798,7 +798,7 @@ def scriptDataDoubleEscapedDashState(self):
798798
self.state=self.scriptDataDoubleEscapedState
799799
returnTrue
800800

801-
defscriptDataDoubleEscapedDashState(self):
801+
defscriptDataDoubleEscapedDashDashState(self):
802802
data=self.stream.char()
803803
ifdata=="-":
804804
self.tokenQueue.append({"type":tokenTypes["Characters"],"data":"-"})

‎html5lib/treebuilders/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434

3535
treeBuilderCache= {}
3636

37-
importsys
38-
3937
defgetTreeBuilder(treeType,implementation=None,**kwargs):
4038
"""Get a TreeBuilder class for various types of tree with built-in support
4139

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp