323 "use pathutil.normasprefix(path) instead of os.path.join(path, '')"), |
323 "use pathutil.normasprefix(path) instead of os.path.join(path, '')"), |
324 (r'\s0[0-7]+\b', 'legacy octal syntax; use "0o" prefix instead of "0"'), |
324 (r'\s0[0-7]+\b', 'legacy octal syntax; use "0o" prefix instead of "0"'), |
325 # XXX only catch mutable arguments on the first line of the definition |
325 # XXX only catch mutable arguments on the first line of the definition |
326 (r'def.*[( ]\w+=\{\}', "don't use mutable default arguments"), |
326 (r'def.*[( ]\w+=\{\}', "don't use mutable default arguments"), |
327 (r'\butil\.Abort\b', "directly use error.Abort"), |
327 (r'\butil\.Abort\b', "directly use error.Abort"), |
|
328 (r'^@(\w*\.)?cachefunc', "module-level @cachefunc is risky, please avoid"), |
328 (r'^import Queue', "don't use Queue, use util.queue + util.empty"), |
329 (r'^import Queue', "don't use Queue, use util.queue + util.empty"), |
329 (r'^import cStringIO', "don't use cStringIO.StringIO, use util.stringio"), |
330 (r'^import cStringIO', "don't use cStringIO.StringIO, use util.stringio"), |
330 (r'^import urllib', "don't use urllib, use util.urlreq/util.urlerr"), |
331 (r'^import urllib', "don't use urllib, use util.urlreq/util.urlerr"), |
331 (r'^import SocketServer', "don't use SockerServer, use util.socketserver"), |
332 (r'^import SocketServer', "don't use SockerServer, use util.socketserver"), |
332 (r'^import urlparse', "don't use urlparse, use util.urlparse"), |
333 (r'^import urlparse', "don't use urlparse, use util.urlparse"), |