Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 :

  • recognize the micropython standard libs and modules
  • recognize the subset of classes / methods implemented versus CPython

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

like image 803
Jos Verlinde Avatar asked Jan 11 '19 11:01

Jos Verlinde


1 Answers

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

like image 151
Jos Verlinde Avatar answered Oct 25 '22 23:10

Jos Verlinde