Skip to content

Commit 07db7a3

Browse files
authored
Merge pull request #19 from tekktrik/dev/use-type-alias
Use TypeAlias
2 parents c9abd8c + 669bea0 commit 07db7a3

File tree

9 files changed

+22
-48
lines changed

9 files changed

+22
-48
lines changed

.pylintrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ confidence=
5555
# no Warning level messages displayed, use"--disable=all --enable=classes
5656
# --disable=W"
5757
# 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
58-
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,pointless-string-statement
58+
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,pointless-string-statement,unused-argument,no-self-use
5959

6060
# Enable the message, report, category or checker with the given id(s). You can
6161
# either give multiple identifier separated by comma (,) or put this option

circuitpython_typing/__init__.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,7 @@
1616

1717
import array
1818
from typing import Union, Optional
19-
20-
# Protocol was introduced in Python 3.8.
21-
try:
22-
from typing import Protocol # pylint: disable=ungrouped-imports
23-
except ImportError:
24-
from typing_extensions import Protocol
19+
from typing_extensions import Protocol, TypeAlias # Safety import for Python 3.7
2520

2621
# Lists below are alphabetized.
2722

@@ -35,7 +30,7 @@
3530
"WriteableBuffer",
3631
]
3732

38-
ReadableBuffer = Union[
33+
ReadableBuffer: TypeAlias = Union[
3934
array.array,
4035
bytearray,
4136
bytes,
@@ -45,7 +40,7 @@
4540
]
4641
"""Classes that implement the readable buffer protocol."""
4742

48-
WriteableBuffer = Union[
43+
WriteableBuffer: TypeAlias = Union[
4944
array.array,
5045
bytearray,
5146
memoryview,
@@ -81,7 +76,7 @@ def write(self, buf: ReadableBuffer) -> Optional[int]:
8176

8277
# These types may not be in adafruit-blinka, so use the string form instead of a resolved name.
8378

84-
AudioSample = Union[
79+
AudioSample: TypeAlias = Union[
8580
"audiocore.WaveFile",
8681
"audiocore.RawSample",
8782
"audiomixer.Mixer",
@@ -92,10 +87,10 @@ def write(self, buf: ReadableBuffer) -> Optional[int]:
9287
You can play these back with `audioio.AudioOut`, `audiobusio.I2SOut` or `audiopwmio.PWMAudioOut`.
9388
"""
9489

95-
FrameBuffer = Union["rgbmatrix.RGBMatrix"]
90+
FrameBuffer: TypeAlias = Union["rgbmatrix.RGBMatrix"]
9691
"""Classes that implement the framebuffer protocol."""
9792

98-
Alarm = Union["alarm.pin.PinAlarm", "alarm.time.TimeAlarm"]
93+
Alarm: TypeAlias = Union["alarm.pin.PinAlarm", "alarm.time.TimeAlarm"]
9994
"""Classes that implement alarms for sleeping and asynchronous notification.
10095
You can use these alarms to wake up from light or deep sleep.
10196
"""

circuitpython_typing/device_drivers.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,7 @@
1010
"""
1111

1212
from adafruit_bus_device.i2c_device import I2CDevice
13-
14-
# # Protocol was introduced in Python 3.8.
15-
try:
16-
from typing import Protocol
17-
except ImportError:
18-
from typing_extensions import Protocol
13+
from typing_extensions import Protocol # Safety import for Python 3.7
1914

2015

2116
# pylint: disable=too-few-public-methods

circuitpython_typing/io.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@
1212
"""
1313

1414
# Protocol was introduced in Python 3.8.
15-
try:
16-
from typing import Protocol
17-
except ImportError:
18-
from typing_extensions import Protocol
15+
from typing_extensions import Protocol
1916

2017

2118
class ROValueIO(Protocol):

circuitpython_typing/led.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,12 @@
1111
* Author(s): Alec Delaney
1212
"""
1313

14-
# # Protocol was introduced in Python 3.8.
15-
try:
16-
from typing import Union, Tuple, Protocol
17-
except ImportError:
18-
from typing_extensions import Protocol
19-
20-
ColorBasedColorUnion = Union[int, Tuple[int, int, int]]
21-
FillBasedColorUnion = Union[ColorBasedColorUnion, Tuple[int, int, int, int]]
14+
# Protocol was introduced in Python 3.8, TypeAlias in 3.10
15+
from typing import Union, Tuple
16+
from typing_extensions import Protocol, TypeAlias
17+
18+
ColorBasedColorUnion: TypeAlias = Union[int, Tuple[int, int, int]]
19+
FillBasedColorUnion: TypeAlias = Union[ColorBasedColorUnion, Tuple[int, int, int, int]]
2220

2321

2422
class ColorBasedLED(Protocol):

circuitpython_typing/pil.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,7 @@
1212
"""
1313

1414
from typing import Tuple
15-
16-
# Protocol was introduced in Python 3.8.
17-
try:
18-
from typing import Protocol
19-
except ImportError:
20-
from typing_extensions import Protocol
15+
from typing_extensions import Protocol # Safety import for Python 3.7
2116

2217

2318
class PixelAccess(Protocol):

circuitpython_typing/pwmio.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@
1212
"""
1313

1414
# # Protocol was introduced in Python 3.8.
15-
try:
16-
from typing import Protocol
17-
except ImportError:
18-
from typing_extensions import Protocol
15+
from typing_extensions import Protocol
1916

2017

2118
class PWMOut(Protocol):

circuitpython_typing/socket.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,8 @@
1313
from types import ModuleType
1414
from typing import Any, Optional, Tuple, Union
1515

16-
# Protocol was introduced in Python 3.8.
17-
try:
18-
from typing import Protocol
19-
except ImportError:
20-
from typing_extensions import Protocol
16+
# Protocol was introduced in Python 3.8, TypeAlias in 3.10
17+
from typing_extensions import Protocol, TypeAlias
2118

2219

2320
# Based on https://github.com/python/typeshed/blob/master/stdlib/_socket.pyi
@@ -120,7 +117,7 @@ def connect(self, address: Union[Tuple[Any, ...], str, bytes]) -> None:
120117
...
121118

122119

123-
SocketType = Union[
120+
SocketType: TypeAlias = Union[
124121
LegacyCircuitPythonSocketType,
125122
CircuitPythonSocketType,
126123
StandardPythonSocketType,
@@ -138,4 +135,4 @@ def TLS_MODE(self) -> int: # pylint: disable=invalid-name
138135
...
139136

140137

141-
SSLContextType = Union[SSLContext, "_FakeSSLContext"]
138+
SSLContextType: TypeAlias = Union[SSLContext, "_FakeSSLContext"]

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
#
44
# SPDX-License-Identifier: MIT
55

6-
typing_extensions; python_version <= '3.7'
6+
typing_extensions~=4.0
77
adafruit-circuitpython-busdevice

0 commit comments

Comments
 (0)