adafruit / adafruit/Adafruit_CircuitPython_BLE_Eddystone

Missing Type Annotations

Open
#14 1 comment 0 reactions 0 assignees View on GitHub
documentation Hacktoberfest
Dominant language
Python
Stars
4
Forks
9
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_ble_eddystone/\_\_init\_\_.py:38
- [ ] adafruit_ble_eddystone/\_\_init\_\_.py:43
- [ ] adafruit_ble_eddystone/\_\_init\_\_.py:54
- [ ] adafruit_ble_eddystone/\_\_init\_\_.py:58
- [ ] adafruit_ble_eddystone/\_\_init\_\_.py:65
- [ ] adafruit_ble_eddystone/\_\_init\_\_.py:77
- [ ] adafruit_ble_eddystone/\_\_init\_\_.py:81
- [ ] adafruit_ble_eddystone/\_\_init\_\_.py:86
- [ ] adafruit_ble_eddystone/\_\_init\_\_.py:97
- [ ] adafruit_ble_eddystone/url.py:39
- [ ] adafruit_ble_eddystone/url.py:56
- [ ] adafruit_ble_eddystone/url.py:90
- [ ] adafruit_ble_eddystone/uid.py:42

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the mypy-reported locations in adafruit_ble_eddystone/__init__.py, url.py, and uid.py, using the existing wrap_text_to_pixels annotation as a model. Check how the typing import is handled for CircuitPython compatibility, then run the documented pre-commit and mypy checks; done means all listed locations are annotated and the checks pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.