|
@@ -46,6 +46,7 @@ __deltask_regexp__ = re.compile("deltask\s+(?P<func>\w+)")
|
|
|
__addhandler_regexp__ = re.compile( r"addhandler\s+(.+)" )
|
|
|
__def_regexp__ = re.compile( r"def\s+(\w+).*:" )
|
|
|
__python_func_regexp__ = re.compile( r"(\s+.*)|(^$)|(^#)" )
|
|
|
+__python_tab_regexp__ = re.compile(" *\t")
|
|
|
|
|
|
__infunc__ = []
|
|
|
__inpython__ = False
|
|
@@ -160,6 +161,16 @@ def handle(fn, d, include):
|
|
|
|
|
|
def feeder(lineno, s, fn, root, statements, eof=False):
|
|
|
global __func_start_regexp__, __inherit_regexp__, __export_func_regexp__, __addtask_regexp__, __addhandler_regexp__, __def_regexp__, __python_func_regexp__, __inpython__, __infunc__, __body__, bb, __residue__, __classname__
|
|
|
+
|
|
|
+ # Check tabs in python functions:
|
|
|
+ # - def py_funcname(): covered by __inpython__
|
|
|
+ # - python(): covered by '__anonymous' == __infunc__[0]
|
|
|
+ # - python funcname(): covered by __infunc__[3]
|
|
|
+ if __inpython__ or (__infunc__ and ('__anonymous' == __infunc__[0] or __infunc__[3])):
|
|
|
+ tab = __python_tab_regexp__.match(s)
|
|
|
+ if tab:
|
|
|
+ bb.warn('python should use 4 spaces indentation, but found tabs in %s, line %s' % (root, lineno))
|
|
|
+
|
|
|
if __infunc__:
|
|
|
if s == '}':
|
|
|
__body__.append('')
|