This patch has a bad side effect since it registers the module in sys.modules which I don't want, e.g.
/.. config/master.cfg scripts/master/utils.py PYTHONPATH=scripts pylint config/master.cfg will register master.cfg as sys.modules['master'] so scripts/master will be aliased. I'm not sure what is the right fix for that beside renaming the directory or the file. M-A Le 6 octobre 2010 15:52, Marc-Antoine Ruel <[email protected]> a écrit : > I'd like to run pylint on our buildbot files in an automated presubmit > check but pylint hardcodes the file types it is willing to load and our > configuration files ends with .cfg. The following diff makes it work in my > case but that obviously doesn't fly. > > > diff -r c34ce2658999 modutils.py > --- a/modutils.py Thu Sep 30 11:46:45 2010 +0200 > +++ b/modutils.py Wed Oct 06 15:41:47 2010 -0400 > @@ -55,7 +55,7 @@ > PY_COMPILED_EXTS = ('dll', 'pyd') > STD_LIB_DIR = get_python_lib(standard_lib=1) > else: > - PY_SOURCE_EXTS = ('py',) > + PY_SOURCE_EXTS = ('py', 'cfg') > PY_COMPILED_EXTS = ('so',) > # extend lib dir with some arch-dependant paths > STD_LIB_DIR = join(get_config_var("LIBDIR"), "python%s" % > get_python_version()) > > > So I came up with a different code path to read the first line to check if > 'python' is present and consider it a python file in that case. Does this > looks good to be integrated in the main branch? > > > > diff -r c34ce2658999 modutils.py > --- a/modutils.py Thu Sep 30 11:46:45 2010 +0200 > +++ b/modutils.py Wed Oct 06 15:50:49 2010 -0400 > @@ -43,6 +43,7 @@ > ZIPFILE = object() > > from logilab.common import STD_BLACKLIST, _handle_blacklist > +from logilab.common.fileutils import norm_open > > # Notes about STD_LIB_DIR > # Consider arch-specific installation for STD_LIB_DIR definition > @@ -442,6 +443,8 @@ > return source_path > if include_no_ext and not orig_ext and exists(base): > return base > + if is_python_source(filename): > + return filename > raise NoSourceFile(filename) > > > @@ -461,7 +464,12 @@ > rtype: bool > return: True if the filename is a python source file > """ > - return splitext(filename)[1][1:] in PY_SOURCE_EXTS > + if splitext(filename)[1][1:] in PY_SOURCE_EXTS: > + return True > + try: > + return 'python' in norm_open(filename).readline() > + except IOError: > + return False > > > >
_______________________________________________ Python-Projects mailing list [email protected] http://lists.logilab.org/mailman/listinfo/python-projects
