I have a Flask (v0.10.1) application using Flask-SQLAlchemy (v2.0) and I\'m trying to configure Pylint to check it. Running with Python 3.4.2.
First error was:
Any class you declare as inheriting from db.Model
won't have query
member until the code runs so Pylint can't detect it.
The workaround for this besides ignoring no-member errors on every query
call is to add query
on the generated-members
list in a Pylint config file since it is a member that will only be created at runtime.
When you run Pylint, it will search for a configuration file as stated in its documentation:
You can specify a configuration file on the command line using the --rcfile option. Otherwise, Pylint searches for a configuration file in the following order and uses the first one it finds:
pylintrc
in the current working directory- If the current working directory is in a Python module, Pylint searches up the hierarchy of Python modules until it finds a pylintrc file. This allows you to specify coding standards on a module-by-module basis. Of course, a directory is judged to be a Python module if it contains an
__init__.py
file- The file named by environment variable
PYLINTRC
- if you have a home directory which isn’t
/root
:
.pylintrc
in your home directory.config/pylintrc
in your home directory/etc/pylintrc
So if you don't have a config and you want a system wide default config for pylint you can use pylint --generate-rcfile > /etc/pylintrc
. This will generate a commented configuration file according to the current configuration (or the default if you don't have one) that you can edit to your preferences.
p.s.: generated-members
on a config file is the right way to deal with this warning, as it's said by the commented config
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E0201 when accessed. Python regular
# expressions are accepted.