adafruit / Adafruit_CircuitPython_FeatherWing

CircuitPython classes for Adafruit FeatherWings
MIT License
11 stars 13 forks source link

Missing Type Annotations #72

Closed FoamyGuy closed 3 years ago

FoamyGuy commented 3 years ago

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:

try:
    from typing import List, Tuple
except ImportError:
    pass

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:

def wrap_text_to_pixels(
    string: str, max_width: int, font=None, indent0: str = "", indent1: str = ""
) -> List[str]:

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 and Check 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:

ddpruitt commented 2 years ago

adafruit_featherwing/pixelmatrix.py:19 has from typing import Sequence which is outside the try/except block. This is causing the NeoPixel Featherwing example to fail.

I tested moving the Sequence to within the try/except block and the example started working.

Please let me know if this is the proper way to report this.

FoamyGuy commented 2 years ago

@ddpruitt thank you for report. PR #76 is open with the fix for this.

You can make new issues to report things in the future.