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

Commite11ed5a

Browse files
author
James Graham
committed
Add support for logging to parse.py
1 parentd34b631 commite11ed5a

File tree

1 file changed

+39
-33
lines changed

1 file changed

+39
-33
lines changed

‎parse.py

Lines changed: 39 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
importsys
88
importos
9+
importtraceback
910
fromoptparseimportOptionParser
1011

1112
fromhtml5libimporthtml5parser,sanitizer
@@ -48,10 +49,7 @@ def parse():
4849
else:
4950
tokenizer=HTMLTokenizer
5051

51-
ifopts.log:
52-
html5parser.debug_log=True
53-
54-
p=html5parser.HTMLParser(tree=treebuilder,tokenizer=tokenizer)
52+
p=html5parser.HTMLParser(tree=treebuilder,tokenizer=tokenizer,debug=opts.log)
5553

5654
ifopts.fragment:
5755
parseMethod=p.parseFragment
@@ -73,46 +71,54 @@ def parse():
7371
elifopts.time:
7472
importtime
7573
t0=time.time()
76-
document=parseMethod(f,encoding=encoding)
74+
document=run(parseMethod,f,encoding)
7775
t1=time.time()
7876
printOutput(p,document,opts)
7977
t2=time.time()
8078
sys.stderr.write("\n\nRun took: %fs (plus %fs to print the output)"%(t1-t0,t2-t1))
8179
else:
82-
document=parseMethod(f,encoding=encoding)
80+
document=run(parseMethod,f,encoding)
8381
printOutput(p,document,opts)
8482

83+
defrun(parseMethod,f,encoding):
84+
try:
85+
document=parseMethod(f,encoding=encoding)
86+
except:
87+
document=None
88+
traceback.print_exc()
89+
returndocument
90+
8591
defprintOutput(parser,document,opts):
8692
ifopts.encoding:
8793
print"Encoding:",parser.tokenizer.stream.charEncoding
8894

89-
ifopts.log:
90-
foriteminparser.log:
91-
printitem
92-
93-
ifopts.xml:
94-
sys.stdout.write(document.toxml("utf-8"))
95-
elifopts.tree:
96-
ifnothasattr(document,'__getitem__'):
97-
document= [document]
98-
forfragmentindocument:
99-
printparser.tree.testSerializer(fragment).encode("utf-8")
100-
elifopts.hilite:
101-
sys.stdout.write(document.hilite("utf-8"))
102-
elifopts.html:
103-
kwargs= {}
104-
foroptinserializer.HTMLSerializer.options:
105-
try:
106-
kwargs[opt]=getattr(opts,opt)
107-
except:
108-
pass
109-
ifnotkwargs['quote_char']:
110-
delkwargs['quote_char']
111-
112-
tokens=treewalkers.getTreeWalker(opts.treebuilder)(document)
113-
fortextinserializer.HTMLSerializer(**kwargs).serialize(tokens,encoding='utf-8'):
114-
sys.stdout.write(text)
115-
ifnottext.endswith('\n'):sys.stdout.write('\n')
95+
foriteminparser.log:
96+
printitem
97+
98+
ifdocumentisnotNone:
99+
ifopts.xml:
100+
sys.stdout.write(document.toxml("utf-8"))
101+
elifopts.tree:
102+
ifnothasattr(document,'__getitem__'):
103+
document= [document]
104+
forfragmentindocument:
105+
printparser.tree.testSerializer(fragment).encode("utf-8")
106+
elifopts.hilite:
107+
sys.stdout.write(document.hilite("utf-8"))
108+
elifopts.html:
109+
kwargs= {}
110+
foroptinserializer.HTMLSerializer.options:
111+
try:
112+
kwargs[opt]=getattr(opts,opt)
113+
except:
114+
pass
115+
ifnotkwargs['quote_char']:
116+
delkwargs['quote_char']
117+
118+
tokens=treewalkers.getTreeWalker(opts.treebuilder)(document)
119+
fortextinserializer.HTMLSerializer(**kwargs).serialize(tokens,encoding='utf-8'):
120+
sys.stdout.write(text)
121+
ifnottext.endswith('\n'):sys.stdout.write('\n')
116122
ifopts.error:
117123
errList=[]
118124
forpos,errorcode,datavarsinparser.errors:

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp