X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka_Displayio.git/blobdiff_plain/255ac2d73d09bc445dd3522b3b30f861552ccbe4..7c8fcb8b324e839a65d45174da42bf9a7ab1a217:/displayio/_i2cdisplay.py diff --git a/displayio/_i2cdisplay.py b/displayio/_i2cdisplay.py index 42f85ec..e37eb8a 100644 --- a/displayio/_i2cdisplay.py +++ b/displayio/_i2cdisplay.py @@ -23,7 +23,7 @@ displayio for Blinka import time import busio import digitalio -import circuitpython_typing +from circuitpython_typing import ReadableBuffer from ._constants import CHIP_SELECT_UNTOUCHED, DISPLAY_COMMAND __version__ = "0.0.0+auto.0" @@ -53,6 +53,15 @@ class I2CDisplay: self._i2c = i2c_bus self._dev_addr = device_address + def __new__(cls, *args, **kwargs): + from . import ( # pylint: disable=import-outside-toplevel, cyclic-import + allocate_display_bus, + ) + + display_bus_instance = super().__new__(cls) + allocate_display_bus(display_bus_instance) + return display_bus_instance + def _release(self): self.reset() self._i2c.deinit() @@ -76,7 +85,7 @@ class I2CDisplay: while not self._i2c.try_lock(): pass - def send(self, command: int, data: circuitpython_typing.ReadableBuffer) -> None: + def send(self, command: int, data: ReadableBuffer) -> None: """ Sends the given command value followed by the full set of data. Display state, such as vertical scroll, set via ``send`` may or may not be reset once the code is @@ -90,7 +99,7 @@ class I2CDisplay: self, data_type: int, _chip_select: int, # Chip select behavior - data: circuitpython_typing.ReadableBuffer, + data: ReadableBuffer, ): if data_type == DISPLAY_COMMAND: n = len(data)