Skip to content

Missing Type Annotations #137

Closed
Closed
@FoamyGuy

Description

@FoamyGuy

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:

  • adafruit_ble/advertising/__init__.py:12
  • adafruit_ble/advertising/__init__.py:17
  • adafruit_ble/advertising/__init__.py:22
  • adafruit_ble/advertising/__init__.py:45
  • adafruit_ble/advertising/__init__.py:57
  • adafruit_ble/advertising/__init__.py:85
  • adafruit_ble/advertising/__init__.py:88
  • adafruit_ble/advertising/__init__.py:93
  • adafruit_ble/advertising/__init__.py:111
  • adafruit_ble/advertising/__init__.py:139
  • adafruit_ble/advertising/__init__.py:142
  • adafruit_ble/advertising/__init__.py:149
  • adafruit_ble/advertising/__init__.py:156
  • adafruit_ble/advertising/__init__.py:160
  • adafruit_ble/advertising/__init__.py:167
  • adafruit_ble/advertising/__init__.py:174
  • adafruit_ble/advertising/__init__.py:180
  • adafruit_ble/advertising/__init__.py:239
  • adafruit_ble/advertising/__init__.py:283
  • adafruit_ble/advertising/__init__.py:291
  • adafruit_ble/uuid/__init__.py:27
  • adafruit_ble/uuid/__init__.py:44
  • adafruit_ble/uuid/__init__.py:52
  • adafruit_ble/uuid/__init__.py:62
  • adafruit_ble/characteristics/__init__.py:75
  • adafruit_ble/characteristics/__init__.py:97
  • adafruit_ble/characteristics/__init__.py:113
  • adafruit_ble/characteristics/__init__.py:135
  • adafruit_ble/characteristics/__init__.py:144
  • adafruit_ble/characteristics/__init__.py:159
  • adafruit_ble/characteristics/__init__.py:181
  • adafruit_ble/characteristics/__init__.py:198
  • adafruit_ble/characteristics/__init__.py:219
  • adafruit_ble/characteristics/__init__.py:243
  • adafruit_ble/characteristics/__init__.py:251
  • adafruit_ble/advertising/standard.py:34
  • adafruit_ble/advertising/standard.py:53
  • adafruit_ble/advertising/standard.py:59
  • adafruit_ble/advertising/standard.py:77
  • adafruit_ble/advertising/standard.py:93
  • adafruit_ble/advertising/standard.py:128
  • adafruit_ble/advertising/standard.py:132
  • adafruit_ble/advertising/standard.py:141
  • adafruit_ble/advertising/standard.py:162
  • adafruit_ble/advertising/standard.py:176
  • adafruit_ble/advertising/standard.py:192
  • adafruit_ble/advertising/standard.py:212
  • adafruit_ble/advertising/standard.py:250
  • adafruit_ble/advertising/standard.py:268
  • adafruit_ble/advertising/standard.py:294
  • adafruit_ble/advertising/standard.py:318
  • adafruit_ble/advertising/standard.py:325
  • adafruit_ble/advertising/standard.py:367
  • adafruit_ble/services/__init__.py:32
  • adafruit_ble/characteristics/string.py:23
  • adafruit_ble/characteristics/string.py:42
  • adafruit_ble/characteristics/string.py:47
  • adafruit_ble/characteristics/string.py:54
  • adafruit_ble/characteristics/string.py:63
  • adafruit_ble/characteristics/stream.py:26
  • adafruit_ble/characteristics/stream.py:29
  • adafruit_ble/characteristics/stream.py:41
  • adafruit_ble/characteristics/stream.py:57
  • adafruit_ble/characteristics/stream.py:74
  • adafruit_ble/characteristics/stream.py:92
  • adafruit_ble/characteristics/int.py:23
  • adafruit_ble/characteristics/int.py:51
  • adafruit_ble/characteristics/int.py:56
  • adafruit_ble/characteristics/int.py:66
  • adafruit_ble/characteristics/int.py:74
  • adafruit_ble/characteristics/int.py:82
  • adafruit_ble/characteristics/int.py:90
  • adafruit_ble/characteristics/int.py:98
  • adafruit_ble/characteristics/int.py:106
  • adafruit_ble/characteristics/float.py:23
  • adafruit_ble/characteristics/float.py:43
  • adafruit_ble/characteristics/float.py:48
  • adafruit_ble/services/nordic.py:47
  • adafruit_ble/services/nordic.py:58
  • adafruit_ble/services/nordic.py:69
  • adafruit_ble/services/nordic.py:97
  • adafruit_ble/services/midi.py:27
  • adafruit_ble/services/circuitpython.py:26
  • adafruit_ble/services/standard/hid.py:168
  • adafruit_ble/services/standard/hid.py:190
  • adafruit_ble/services/standard/hid.py:201
  • adafruit_ble/services/standard/hid.py:323
  • adafruit_ble/services/standard/hid.py:392
  • adafruit_ble/services/standard/device_info.py:35
  • adafruit_ble/services/standard/__init__.py:30
  • adafruit_ble/__init__.py:39
  • adafruit_ble/__init__.py:46
  • adafruit_ble/__init__.py:59
  • adafruit_ble/__init__.py:77
  • adafruit_ble/__init__.py:121
  • adafruit_ble/__init__.py:124
  • adafruit_ble/__init__.py:141
  • adafruit_ble/__init__.py:151
  • adafruit_ble/__init__.py:202
  • adafruit_ble/__init__.py:279
  • adafruit_ble/__init__.py:319
  • adafruit_ble/__init__.py:328

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions