Search code examples
pythonvisual-studio-codepylintmicropython

How to configure pylint / python to check for MicroPython syntax?


I'm using VScode to write MicroPython code. The linting and code completion is quite decent, but as there are quite a few differences between CPython and MicroPython, I think it could be better.

Is there a way for pylint to :

In other words I'd like to prevent errors and warnings such as these:

warnings

I've looked at a promising approach by Thonny to extract module information and save that in module/APIstubs, and extend that to more complete prototypes. However that would still require pylint to include and prioritize these over CPython.

Is that something that can be configured in pylint and/or Python, and if so, how would I go about that?

Update : I have a decent partial solution on https://github.com/Josverl/micropython-stubber and there also may be interest to solve this more generally in vscode


Solution

  • In order to achieve this a few things are needed:

    • Stub files for the native / enabled modules in the firmware using PEP 484 Type Hints
    • Specific configuration of the VSCode Python extensions
    • Specific configuration of Pylint
    • Suppression of warnings that collide with the MicroPython principals or code optimization.

    A detailed explanation can be found in: https://github.com/Josverl/micropython-stubber#boost-micropython-productivity-in-vscode

    If you do not want to generate and gather the subs yourself, common MicroPython stubs stored in the sister-repo: https://github.com/Josverl/micropython-stubs