From e163b979041a21c5f3458e552d010d900f773122 Mon Sep 17 00:00:00 2001 From: Sebastien Fauque Date: Tue, 25 Apr 2023 15:12:27 -0600 Subject: [PATCH 1/5] added typing for image, scs, and, reverse_bit num --- adafruit_sharpmemorydisplay.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/adafruit_sharpmemorydisplay.py b/adafruit_sharpmemorydisplay.py index 526095c..e45bbf2 100644 --- a/adafruit_sharpmemorydisplay.py +++ b/adafruit_sharpmemorydisplay.py @@ -33,7 +33,9 @@ from micropython import const try: + from PIL import Image import numpy + from digitalio import DigitalInOut except ImportError: numpy = None @@ -45,7 +47,7 @@ _SHARPMEM_BIT_CLEAR = const(0x20) # in lsb -def reverse_bit(num): +def reverse_bit(num: float): """Turn an LSB byte to an MSB byte, and vice versa. Used for SPI as it is LSB for the SHARP, but 99% of SPI implementations are MSB only!""" result = 0 @@ -62,7 +64,15 @@ class SharpMemoryDisplay(adafruit_framebuf.FrameBuffer): # pylint: disable=too-many-instance-attributes,abstract-method - def __init__(self, spi, scs_pin, width, height, *, baudrate=2000000): + def __init__( + self, + spi: SPIDevice, + scs_pin: DigitalInOut, + width: float, + height: float, + *, + baudrate=2000000 + ): scs_pin.switch_to_output(value=True) self.spi_device = SPIDevice( spi, scs_pin, cs_active_value=True, baudrate=baudrate @@ -105,7 +115,7 @@ def show(self): image_buffer.extend(self._buf) spi.write(image_buffer) - def image(self, img): + def image(self, img: Image): """Set buffer to value of Python Imaging Library image. The image should be in 1 bit mode and a size equal to the display size.""" # determine our effective width/height, taking rotation into account From 2e2763672a3f28fea7c2192c6ee2a3f89f3f0be7 Mon Sep 17 00:00:00 2001 From: Sebastien Fauque Date: Tue, 25 Apr 2023 16:04:54 -0600 Subject: [PATCH 2/5] added future annotations for the DigitalInOut --- adafruit_sharpmemorydisplay.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/adafruit_sharpmemorydisplay.py b/adafruit_sharpmemorydisplay.py index e45bbf2..6468ea5 100644 --- a/adafruit_sharpmemorydisplay.py +++ b/adafruit_sharpmemorydisplay.py @@ -27,6 +27,7 @@ """ # pylint: enable=line-too-long +from __future__ import annotations import adafruit_framebuf from adafruit_bus_device.spi_device import SPIDevice @@ -71,7 +72,7 @@ def __init__( width: float, height: float, *, - baudrate=2000000 + baudrate=2000000, ): scs_pin.switch_to_output(value=True) self.spi_device = SPIDevice( From 9cd001b338c27ef2ee004c155ad00365aaa10f20 Mon Sep 17 00:00:00 2001 From: Sebastien Fauque Date: Wed, 26 Apr 2023 22:27:12 -0700 Subject: [PATCH 3/5] Added stubbed out type versions, fixed num types, added None return types. --- adafruit_sharpmemorydisplay.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/adafruit_sharpmemorydisplay.py b/adafruit_sharpmemorydisplay.py index 6468ea5..609df0e 100644 --- a/adafruit_sharpmemorydisplay.py +++ b/adafruit_sharpmemorydisplay.py @@ -27,16 +27,22 @@ """ # pylint: enable=line-too-long -from __future__ import annotations + + +try: + from __future__ import annotations + from busio import SPI + from digitalio import DigitalInOut + from circuitpython_typing.pil import Image +except ImportError: + pass import adafruit_framebuf from adafruit_bus_device.spi_device import SPIDevice from micropython import const try: - from PIL import Image import numpy - from digitalio import DigitalInOut except ImportError: numpy = None @@ -48,7 +54,7 @@ _SHARPMEM_BIT_CLEAR = const(0x20) # in lsb -def reverse_bit(num: float): +def reverse_bit(num: int) -> int: """Turn an LSB byte to an MSB byte, and vice versa. Used for SPI as it is LSB for the SHARP, but 99% of SPI implementations are MSB only!""" result = 0 @@ -67,10 +73,10 @@ class SharpMemoryDisplay(adafruit_framebuf.FrameBuffer): def __init__( self, - spi: SPIDevice, + spi: SPI, scs_pin: DigitalInOut, - width: float, - height: float, + width: int, + height: int, *, baudrate=2000000, ): @@ -89,7 +95,7 @@ def __init__( # Set the vcom bit to a defined state self._vcom = True - def show(self): + def show(self) -> None: """write out the frame buffer via SPI, we use MSB SPI only so some bit-swapping is required. """ @@ -116,7 +122,7 @@ def show(self): image_buffer.extend(self._buf) spi.write(image_buffer) - def image(self, img: Image): + def image(self, img: Image) -> None: """Set buffer to value of Python Imaging Library image. The image should be in 1 bit mode and a size equal to the display size.""" # determine our effective width/height, taking rotation into account From bf3a570b2722bd41e18c3973ea4f4171e51ffa4c Mon Sep 17 00:00:00 2001 From: Sebastien Fauque Date: Wed, 26 Apr 2023 22:33:25 -0700 Subject: [PATCH 4/5] Moving __future__ due to failed CI. --- adafruit_sharpmemorydisplay.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adafruit_sharpmemorydisplay.py b/adafruit_sharpmemorydisplay.py index 609df0e..27ecbfa 100644 --- a/adafruit_sharpmemorydisplay.py +++ b/adafruit_sharpmemorydisplay.py @@ -27,10 +27,10 @@ """ # pylint: enable=line-too-long +from __future__ import annotations try: - from __future__ import annotations from busio import SPI from digitalio import DigitalInOut from circuitpython_typing.pil import Image From 0b5469bba911990f90339ecbc3d0fddf29c0f734 Mon Sep 17 00:00:00 2001 From: foamyguy Date: Thu, 27 Apr 2023 19:08:49 -0500 Subject: [PATCH 5/5] add typing import --- adafruit_sharpmemorydisplay.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/adafruit_sharpmemorydisplay.py b/adafruit_sharpmemorydisplay.py index 27ecbfa..d73eb7e 100644 --- a/adafruit_sharpmemorydisplay.py +++ b/adafruit_sharpmemorydisplay.py @@ -31,6 +31,8 @@ try: + # pylint: disable=unused-import + import typing from busio import SPI from digitalio import DigitalInOut from circuitpython_typing.pil import Image pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy