adafruit / adafruit/Adafruit_CircuitPython_PortalBase
Missing Type Annotations
- Dominant language
- Python
- Stars
- 17
- Forks
- 21
- PR merge metrics
- No merged PRs in 30d
Description
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:
```python
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:
```python
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:
- [ ] adafruit_portalbase/network.py:87
- [ ] adafruit_portalbase/network.py:117
- [ ] adafruit_portalbase/network.py:126
- [ ] adafruit_portalbase/network.py:149
- [ ] adafruit_portalbase/network.py:161
- [ ] adafruit_portalbase/network.py:170
- [ ] adafruit_portalbase/network.py:223
- [ ] adafruit_portalbase/network.py:251
- [ ] adafruit_portalbase/network.py:319
- [ ] adafruit_portalbase/network.py:375
- [ ] adafruit_portalbase/network.py:409
- [ ] adafruit_portalbase/network.py:426
- [ ] adafruit_portalbase/network.py:442
- [ ] adafruit_portalbase/network.py:458
- [ ] adafruit_portalbase/network.py:484
- [ ] adafruit_portalbase/network.py:494
- [ ] adafruit_portalbase/network.py:503
- [ ] adafruit_portalbase/network.py:534
- [ ] adafruit_portalbase/network.py:541
- [ ] adafruit_portalbase/network.py:563
- [ ] adafruit_portalbase/network.py:611
- [ ] adafruit_portalbase/network.py:630
- [ ] adafruit_portalbase/wifi_esp32s2.py:42
- [ ] adafruit_portalbase/wifi_esp32s2.py:54
- [ ] adafruit_portalbase/wifi_esp32s2.py:69
- [ ] adafruit_portalbase/wifi_esp32s2.py:103
- [ ] adafruit_portalbase/wifi_coprocessor.py:45
- [ ] adafruit_portalbase/wifi_coprocessor.py:78
- [ ] adafruit_portalbase/wifi_coprocessor.py:85
- [ ] adafruit_portalbase/wifi_coprocessor.py:94
- [ ] adafruit_portalbase/graphics.py:44
- [ ] adafruit_portalbase/graphics.py:66
- [ ] adafruit_portalbase/graphics.py:112
- [ ] adafruit_portalbase/\_\_init\_\_.py:59
- [ ] adafruit_portalbase/\_\_init\_\_.py:100
- [ ] adafruit_portalbase/\_\_init\_\_.py:117
- [ ] adafruit_portalbase/\_\_init\_\_.py:130
- [ ] adafruit_portalbase/\_\_init\_\_.py:140
- [ ] adafruit_portalbase/\_\_init\_\_.py:216
- [ ] adafruit_portalbase/\_\_init\_\_.py:272
- [ ] adafruit_portalbase/\_\_init\_\_.py:286
- [ ] adafruit_portalbase/\_\_init\_\_.py:294
- [ ] adafruit_portalbase/\_\_init\_\_.py:302
- [ ] adafruit_portalbase/\_\_init\_\_.py:315
- [ ] adafruit_portalbase/\_\_init\_\_.py:336
- [ ] adafruit_portalbase/\_\_init\_\_.py:356
- [ ] adafruit_portalbase/\_\_init\_\_.py:359
- [ ] adafruit_portalbase/\_\_init\_\_.py:390
- [ ] adafruit_portalbase/\_\_init\_\_.py:409
- [ ] adafruit_portalbase/\_\_init\_\_.py:413
- [ ] adafruit_portalbase/\_\_init\_\_.py:423
- [ ] adafruit_portalbase/\_\_init\_\_.py:432
- [ ] adafruit_portalbase/\_\_init\_\_.py:441
- [ ] adafruit_portalbase/\_\_init\_\_.py:458
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the mypy-reported locations in adafruit_portalbase/network.py, wifi_esp32s2.py, wifi_coprocessor.py, graphics.py, and __init__.py, and review the existing wrap_text_to_pixels annotation pattern. Check the listed functions and the typing import compatibility on CircuitPython devices, then run the repository's documented pre-commit and CI checks; done means the missing-annotation checklist is complete and the checks pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- embedded-iot
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100