This fixes an issue related to impredictible order of the disable / enable
elements from a config file. In certain cases, the disable was coming before
the enable which resulted in classes of errors to be enabled, even though the intention
was to disable them. The best example for this was in the context of running multiple
processes, each one of it having different enables / disables that affected the output.
Close#815
The problem was that the same validation functions were used both manually,
with a custom option dictionary, as well as used for optparse.TYPE_CHECKER
configuration, where they were expected to receive an optparse.Option object
instead. A common function was created instead, which expects already the choices.
Close#821
This addresses issue #156 by allowing for multiple ignore patterns
to be specified. Rather than clobber the existing ignore option, I've
introduced a new one called ignore-patterns. That way there are as few
surprises as something involving regular expressions can have.
Multiple patterns must be separated by a comma. For example, if I
wanted to ignore all files that started with `test_` and `_`, I'd pass this
in: `--ignore-patterns="test_.*","_.*"`.
Close#156
Using abbreviations for CLI options was never considered to be
a feature of pylint, this fact being only a side effect of using optparse.
As this was the case, using --load-plugin or other abbreviation
for --load-plugins never actually worked, while it also didn't raise
an error. Closes issue #424.
The reason behind this is that we can better control the behaviour
of the underlying configuration modules, such as the case for undefined
options or for quickly fixing other bugs. Another side effect of this
change is that it gets us closer to the moment where we will not
be dependent on logilab.common anymore, which will definitely
make our pytest users happy.
Some parts were copied almost verbatim from logilab.common.configuration
and logilab.common.optik_ext and pylint.config will definitely need
a refactoring and reengineering for abstracting the configuration,
so that we won't use optparse anymore, but that's subject for another
patch.