From: Melissa LeBlanc-Williams Date: Wed, 19 Jan 2022 18:40:33 +0000 (-0800) Subject: Merge pull request #543 from tekktrik/feature/add-typing-module X-Git-Tag: 6.20.0 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/7fafb8770abd9697e9ad39938aee0a32f9bb0bf6?hp=4f2c2a75503043268b44fc1aa3f45e8dc5131a28 Merge pull request #543 from tekktrik/feature/add-typing-module Add typing module(s) to Blinka --- diff --git a/docs/api.rst b/docs/api.rst index dc0aeb6..e25be92 100755 --- a/docs/api.rst +++ b/docs/api.rst @@ -4,8 +4,11 @@ .. If your library file(s) are nested in a directory (e.g. /adafruit_foo/foo.py) .. use this format as the module name: "adafruit_foo.foo" +.. automodule:: _typing + :members: + .. automodule:: adafruit_blinka - :members: + :members: .. automodule:: adafruit_blinka.agnostic :members: @@ -25,6 +28,9 @@ .. automodule:: busio :members: +.. automodule:: circuitpython_typing + :members: + .. automodule:: digitalio :members: diff --git a/requirements.txt b/requirements.txt index 013f2dc..851141c 100755 --- a/requirements.txt +++ b/requirements.txt @@ -6,3 +6,4 @@ rpi_ws281x>=4.0.0; platform_machine=='armv7l' or platform_machine=='armv6l' sysv_ipc>=1.1.0; sys_platform == 'linux' and platform_machine!='mips' pyftdi>=0.40.0 binho-host-adapter>=0.1.6 +numpy>=1.21.5 diff --git a/setup.py b/setup.py index 7d0264a..3a30af0 100755 --- a/setup.py +++ b/setup.py @@ -52,10 +52,12 @@ setup( # py_modules lists top-level single file packages to include. # find_packages only finds packages in directories with __init__.py files. py_modules=[ + "_typing", "analogio", "bitbangio", "board", "busio", + "circuitpython_typing", "digitalio", "keypad", "micropython", diff --git a/src/_typing.py b/src/_typing.py new file mode 100644 index 0000000..3c1671b --- /dev/null +++ b/src/_typing.py @@ -0,0 +1,31 @@ +# The MIT License (MIT) +# +# Copyright (c) 2017 cefn for adafruit industries +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`_typing` - Define (legacy) subset of types for C-level protocols +================================================================= + +See `CircuitPython:circuitpython_typing` in CircuitPython for more details. + +* Author(s): Alec Delaney +""" + +from circuitpython_typing import * # pylint: disable=wildcard-import,unused-wildcard-import diff --git a/src/circuitpython_typing.py b/src/circuitpython_typing.py new file mode 100644 index 0000000..3df3587 --- /dev/null +++ b/src/circuitpython_typing.py @@ -0,0 +1,50 @@ +# The MIT License (MIT) +# +# Copyright (c) 2017 cefn for adafruit industries +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`circuitpython_typing` - Define subset of types for C-level protocols +===================================================================== + +See `CircuitPython:circuitpython_typing` in CircuitPython for more details. + +* Author(s): Alec Delaney +""" + +from typing import Union +from array import array +from numpy import ndarray + +ReadableBuffer = Union[bytes, bytearray, memoryview, array, ndarray] +"""Classes that implement the readable buffer protocol + - `bytes` + - `bytearray` + - `memoryview` + - `array.array` + - ``numpy.ndarray`` +""" + +WriteableBuffer = Union[bytearray, memoryview, array, ndarray] +"""Classes that implement the writeable buffer protocol + - `bytearray` + - `memoryview` + - `array.array` + - ``numpy.ndarray`` +"""