##// END OF EJS Templates
Improvements to exception handling to transport structured tracebacks....
Improvements to exception handling to transport structured tracebacks. This code is still fairly hackish, but we're starting to get there. We still need to improve the api, because right now runlines() does way too much, and I had to set the exception state in a temporary private variable. But client-side things are working better, so we can continue fixing the kernel without bottlenecking Evan.

File last commit:

r2116:87ec1117
r2838:cbe60016
Show More
check_sources.py
54 lines | 1.3 KiB | text/x-python | PythonLexer
Fernando Perez
Tools cleanup in getting ready for 0.10.rc....
r2115 #!/usr/bin/env python
"""Utility to look for hard tabs and \r characters in all sources.
Fernando Perez
Cleanup check_sources and remove hard tabs from some files....
r2116
Usage:
./check_sources.py
It prints summaries and if chosen, line-by-line info of where \\t or \\r
characters can be found in our source tree.
Fernando Perez
Tools cleanup in getting ready for 0.10.rc....
r2115 """
Fernando Perez
Cleanup check_sources and remove hard tabs from some files....
r2116 # Config
# If true, all lines that have tabs are printed, with line number
full_report_tabs = True
# If true, all lines that have tabs are printed, with line number
full_report_rets = False
Fernando Perez
Tools cleanup in getting ready for 0.10.rc....
r2115
Fernando Perez
Cleanup check_sources and remove hard tabs from some files....
r2116 # Code begins
from IPython.external.path import path
vivainio
merge all from 0.7.3 branch to trunk
r503
Fernando Perez
Tools cleanup in getting ready for 0.10.rc....
r2115 rets = []
Fernando Perez
Cleanup check_sources and remove hard tabs from some files....
r2116 tabs = []
Fernando Perez
Tools cleanup in getting ready for 0.10.rc....
r2115
Fernando Perez
Cleanup check_sources and remove hard tabs from some files....
r2116 for f in path('..').walkfiles('*.py'):
vivainio
merge all from 0.7.3 branch to trunk
r503 errs = ''
cont = f.bytes()
if '\t' in cont:
errs+='t'
Fernando Perez
Cleanup check_sources and remove hard tabs from some files....
r2116 tabs.append(f)
vivainio
merge all from 0.7.3 branch to trunk
r503
if '\r' in cont:
errs+='r'
Fernando Perez
Tools cleanup in getting ready for 0.10.rc....
r2115 rets.append(f)
vivainio
merge all from 0.7.3 branch to trunk
r503
if errs:
print "%3s" % errs, f
Fernando Perez
Cleanup check_sources and remove hard tabs from some files....
r2116
if 't' in errs and full_report_tabs:
for ln,line in enumerate(f.lines()):
if '\t' in line:
print 'TAB:',ln,':',line,
if 'r' in errs and full_report_rets:
for ln,line in enumerate(open(f.abspath(),'rb')):
if '\r' in line:
print 'RET:',ln,':',line,
# Summary at the end, to call cleanup tools if necessary
if tabs:
print 'Hard tabs found. These can be cleaned with untabify:'
for f in tabs: print f,
if rets:
print 'Carriage returns (\\r) found in:'
for f in rets: print f,