Hi,
I have been trying to use Pylint with some Django and Google App
Engine projects. The problem I have is that the Django and Google
modules are always in the PYTHONPATH, but are through code when run
using a manage.py or other script. I would rather not change my
enviroment to suit Pylint, so I created an option for Pylint called
ignored-modules which is a csv list of top level modules to not
attempt to import. For example, in my .pylintrc, I have the following
line:
ignored-modules=django,google
Then any "from django.core import foo" and "from google.api import
bar" will be skipped. My patch just includes the code to do this. I
don't have any tests or docs, because I am not sure how to test this
or where to put the docs for this? If this is something that looks
worthwhile to be added to Pylint, I would be happy to add tests and
docs with some guidance.
Thanks,
John
diff -r c8030f0a6bf8 checkers/imports.py
--- a/checkers/imports.py Thu Aug 06 10:55:33 2009 +0200
+++ b/checkers/imports.py Mon Aug 10 22:00:45 2009 -0500
@@ -192,7 +192,13 @@
'help' : 'Create a graph of internal dependencies in the \
given file (report R0402 must not be disabled)'}
),
-
+ ('ignored-modules', {
+ 'default' : (),
+ 'type' : 'csv',
+ 'metavar' : '<modules>',
+ 'help' : 'List of modules to skip when testing imports.'
+ }
+ ),
)
def __init__(self, linter=None):
@@ -264,6 +270,11 @@
def _module_not_exists(self, node, modname):
"""check if module exists and possibly add message"""
+
+ # check if modules is to be ignored
+ top_module = modname.split('.')[0]
+ if top_module in self.config.ignored_modules:
+ return True
errors = expand_modules([modname], [])[1]
if not errors or is_relative(modname, node.root().file):
return False
_______________________________________________
Python-Projects mailing list
[email protected]
http://lists.logilab.org/mailman/listinfo/python-projects