From 69103b7bfefa9d99faf1eee490c6465d734cf3c8 Mon Sep 17 00:00:00 2001 From: Alec Delaney Date: Wed, 23 Feb 2022 11:56:20 -0500 Subject: [PATCH 1/2] Add type annotations --- adafruit_gizmo/eink_gizmo.py | 31 ++++++++++++++++++++++++++++--- adafruit_gizmo/tft_gizmo.py | 17 +++++++++++++++-- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/adafruit_gizmo/eink_gizmo.py b/adafruit_gizmo/eink_gizmo.py index ed850cf..2b383cc 100755 --- a/adafruit_gizmo/eink_gizmo.py +++ b/adafruit_gizmo/eink_gizmo.py @@ -21,11 +21,28 @@ from adafruit_il0373 import IL0373 from adafruit_ssd1681 import SSD1681 +try: + from typing import Optional + from busio import SPI + from microcontroller import Pin +except ImportError: + pass + # pylint: disable=invalid-name, too-few-public-methods class EInk_Gizmo(IL0373): - """Class representing a 152x152 Tri-Color EInk Gizmo.""" + """Class representing a 152x152 Tri-Color EInk Gizmo. + + :param""" - def __init__(self, *, spi=None, cs=None, dc=None, reset=None, busy=None): + def __init__( + self, + *, + spi: Optional[SPI] = None, + cs: Optional[Pin] = None, + dc: Optional[Pin] = None, + reset: Optional[Pin] = None, + busy: Optional[Pin] = None + ) -> None: displayio.release_displays() if spi is None: import busio # pylint: disable=import-outside-toplevel @@ -55,7 +72,15 @@ def __init__(self, *, spi=None, cs=None, dc=None, reset=None, busy=None): class EInk_HD_Gizmo(SSD1681): """Class representing a 200x200 Tri-Color EInk HD Gizmo.""" - def __init__(self, *, spi=None, cs=None, dc=None, reset=None, busy=None): + def __init__( + self, + *, + spi: Optional[SPI] = None, + cs: Optional[Pin] = None, + dc: Optional[Pin] = None, + reset: Optional[Pin] = None, + busy: Optional[Pin] = None + ) -> None: displayio.release_displays() if spi is None: import busio # pylint: disable=import-outside-toplevel diff --git a/adafruit_gizmo/tft_gizmo.py b/adafruit_gizmo/tft_gizmo.py index ea599fd..5944eeb 100755 --- a/adafruit_gizmo/tft_gizmo.py +++ b/adafruit_gizmo/tft_gizmo.py @@ -19,13 +19,26 @@ import displayio from adafruit_st7789 import ST7789 +try: + from typing import Optional + from busio import SPI + from microcontroller import Pin +except ImportError: + pass + # pylint: disable=invalid-name, too-few-public-methods class TFT_Gizmo(ST7789): """Class representing a TFT Gizmo.""" def __init__( - self, *, spi=None, cs=board.RX, dc=board.TX, backlight=board.A3, rotation=180 - ): + self, + *, + spi: Optional[SPI] = None, + cs: Pin = board.RX, + dc: Pin = board.TX, + backlight: Pin = board.A3, + rotation: int = 180 + ) -> None: displayio.release_displays() if spi is None: import busio # pylint: disable=import-outside-toplevel From 9fac721ed191f7d7127f90a23ee966157cb7771e Mon Sep 17 00:00:00 2001 From: Alec Delaney Date: Wed, 23 Feb 2022 11:57:50 -0500 Subject: [PATCH 2/2] Update pylint to disable duplicate code failure Needed for type annotations --- .pylintrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pylintrc b/.pylintrc index cfd1c41..3908316 100644 --- a/.pylintrc +++ b/.pylintrc @@ -55,7 +55,7 @@ confidence= # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" # disable=import-error,print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call -disable=print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call,import-error,bad-continuation,unspecified-encoding +disable=print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call,import-error,bad-continuation,unspecified-encoding,duplicate-code # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option