mirror of
https://fuchsia.googlesource.com/third_party/github.com/pylint-dev/pylint
synced 2024-09-21 07:58:04 +00:00
Add note about extension-pkg-whitelist. Close #1962
This commit is contained in:
parent
46da272259
commit
3306437d7b
29
doc/technical_reference/c_extensions.rst
Normal file
29
doc/technical_reference/c_extensions.rst
Normal file
|
@ -0,0 +1,29 @@
|
|||
Pylint and C extensions
|
||||
=======================
|
||||
|
||||
If you are getting the dreaded **no-member** error, there is a possibility that
|
||||
either **pylint** found a bug in your code or that it actually tries to lint
|
||||
a C extension module.
|
||||
|
||||
Linting C extension modules is not supported out of the box, especially since
|
||||
pylint has no way to get an AST object out of the extension module.
|
||||
|
||||
But **pylint** actually has a mechanism which you might use in case you
|
||||
want to analyze C extensions. **pylint** has a flag, called **extension-pkg-whitelist**,
|
||||
through which you can tell it to import that module and to build an AST from that
|
||||
imported module::
|
||||
|
||||
$ pylint --extension-pkg-whitelist=your_c_extension
|
||||
|
||||
Be aware though that using this flag means that extensions are loaded into the
|
||||
active Python interpreter and may run arbitrary code, which you may not want. This
|
||||
is the reason why we disable by default loading C extensions. In case you do not want
|
||||
the hassle of passing C extensions module with this flag all the time, you
|
||||
can enable **unsafe-load-any-extension** in your configuration file, which will
|
||||
build AST objects from all the C extensions that **pylint** encounters::
|
||||
|
||||
$ pylint --unsafe-load-any-extension=y
|
||||
|
||||
Alternatively, since **pylint** emits a separate error for attributes that cannot be
|
||||
found in C extensions, **c-extension-no-member**, you can disable this error for
|
||||
your project.
|
|
@ -17,3 +17,4 @@ Technical Reference
|
|||
checkers
|
||||
extensions
|
||||
features
|
||||
c_extensions
|
||||
|
|
Loading…
Reference in New Issue
Block a user