Skip to content

Improve library module type checking for non-native CircuitPython boards #6116

Open
@caternuson

Description

@caternuson

CircuitPython version

N/A - this issue relates to library usage on non-native targets.

Code/REPL

import adafruit_is31fl3741

Behavior

Traceback (most recent call last):
File "/home/pi/code.py", line 4, in <module>
import adafruit_is31fl3741
File "/home/pi/.local/lib/python3.7/site-packages/adafruit_is31fl3741/__init__.py", line 61, in <module>
class IS31FL3741:
File "/home/pi/.local/lib/python3.7/site-packages/adafruit_is31fl3741/__init__.py", line 92, in IS31FL3741
allocate: int = NO_BUFFER,
NameError: name 'busio' is not defined

Description

If an issue occurs during initial installation and a library module that is used "only for typing" is missing, the try/except currently used:

try:
    # Used only for typing
    import foo_module
    import bar_module
except ImportError:
    pass

will silently consume the import exception and continue to load the rest of the library module code. This will just lead to a different, and very confusing, issue later when the missing module is referenced in relation to type checking.

Additional information

Related forum post:
https://forums.adafruit.com/viewtopic.php?f=47&t=189065

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions