Open FoamyGuy opened 2 years ago
I really want to tackle this, but I just want to note here before I forget that we may want to consider adding some typing_extensions.Protocol
types to circuitpython_typing
to help with some of the typing in this library!
The lack of annotations and param documentation causes it to be non-obvious that ESP_SPIcontrol()
takes DigitalInOut
s, not Pin
s. This caught at least one user: https://github.com/adafruit/circuitpython/issues/7386#issuecomment-1373110653
I can take this one on then, it seems I said I would a while ago :sweat_smile:
There are missing type annotations for some functions in this library.
The
typing
module does not exist on CircuitPython devices so the import needs to be wrapped in try/except to catch the error for missing import. There is an example of how that is done here:Once imported the typing annotations for the argument type(s), and return type(s) can be added to the function signature. Here is an example of a function that has had this done already:
If you are new to Git or Github we have a guide about contributing to our projects here: https://learn.adafruit.com/contribute-to-circuitpython-with-git-and-github
There is also a guide that covers our CI utilities and how to run them locally to ensure they will pass in Github Actions here: https://learn.adafruit.com/creating-and-sharing-a-circuitpython-library/check-your-code In particular the pages:
Sharing docs on ReadTheDocs
andCheck your code with pre-commit
contain the tools to install and commands to run locally to run the checks.If you are attempting to resolve this issue and need help, you can post a comment on this issue and tag both @foamyguy and @kattni or reach out to us on Discord: https://adafru.it/discord in the
#circuitpython-dev
channel.The following locations are reported by mypy to be missing type annotations: