micropython stubs for linting

Discussion about programs, libraries and tools that work with MicroPython. Mostly these are provided by a third party.
Target audience: All users and developers of MicroPython.
Post Reply
Posts: 6
Joined: Fri Nov 24, 2017 4:22 pm

micropython stubs for linting

Post by josverl » Mon Jan 14, 2019 4:59 pm

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 the linters could be better.

Is there a way for pylint to :
recognize the subset of classes / methods implemented versus CPython

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

I've looked at a promising approach by Thonny to extract module information and save that in module/APIstubs,
however that results in rather bare/sparse stubs, but that may be better than just ignoring everything.

I have also looked at options such as typeshed, or a way to have pylint consume the .rst files but I have not found anything there yet.

or has someone looked at adopting the gendoc script to generate these types of stubs ?

https://github.com/micropython/micropyt ... /gendoc.py

Posts: 1145
Joined: Fri Feb 28, 2014 2:05 pm

Re: micropython stubs for linting

Post by pfalcon » Fri Feb 22, 2019 10:24 pm

micropython-lib includes a WIP "typing" module, which was initially contributed, and which I slowly elaborate since then: https://github.com/pfalcon/micropython- ... ter/typing .

So, beginnings of typing annotation is there, and interested parties would be able to work on actual typing stubs for MicroPython API. (Well, fairly speaking, they could start even without it, as they would use CPython-based tools for actual annotation consumption anyway, the point that the work progresses even on MicroPython's own side.)
Awesome MicroPython list
Pycopy - A better MicroPython https://github.com/pfalcon/micropython
MicroPython standard library for all ports and forks - https://github.com/pfalcon/micropython-lib
More up to date docs - http://pycopy.readthedocs.io/

Post Reply