From: Melissa LeBlanc-Williams Date: Tue, 13 Jul 2021 19:20:26 +0000 (-0700) Subject: Merge pull request #494 from kattni/rainbowio X-Git-Tag: 6.11.0 X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka.git/commitdiff_plain/6ccef3b61762a848bb47067e146af74bdd089047?hp=a79eb436569f2c4d1390571eba5779fc5aedf6db Merge pull request #494 from kattni/rainbowio Add rainbowio to Blinka. --- diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f00cbfe..95bdea1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,7 +35,7 @@ jobs: source actions-ci/install.sh - name: Pip install pylint, black, & Sphinx run: | - pip install --force-reinstall pylint black Sphinx sphinx-rtd-theme + pip install --force-reinstall pylint==2.7.1 black Sphinx sphinx-rtd-theme - name: Library version run: git describe --dirty --always --tags - name: Check formatting diff --git a/setup.py b/setup.py index 5d6ea95..576afbd 100755 --- a/setup.py +++ b/setup.py @@ -57,6 +57,7 @@ setup( "pulseio", "pwmio", "neopixel_write", + "rainbowio", ], package_data={ "adafruit_blinka.microcontroller.bcm283x.pulseio": ["libgpiod_pulsein"] diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py index fd9febe..19dc98f 100644 --- a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py +++ b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py @@ -25,7 +25,7 @@ def final(): atexit.register(final) -# pylint: disable=c-extension-no-member, consider-using-with +# pylint: disable=c-extension-no-member class PulseIn: """PulseIn Class to read PWM signals""" diff --git a/src/busio.py b/src/busio.py index 3057e52..b41b4c4 100755 --- a/src/busio.py +++ b/src/busio.py @@ -18,7 +18,7 @@ from adafruit_blinka import Enum, Lockable, agnostic from adafruit_blinka.agnostic import board_id, detector # pylint: disable=import-outside-toplevel,too-many-branches,too-many-statements -# pylint: disable=too-many-arguments,too-many-function-args,consider-using-with,too-many-return-statements +# pylint: disable=too-many-arguments,too-many-function-args,too-many-return-statements class I2C(Lockable): diff --git a/src/rainbowio.py b/src/rainbowio.py new file mode 100644 index 0000000..e852d83 --- /dev/null +++ b/src/rainbowio.py @@ -0,0 +1,27 @@ +""" +`rainbowio` - Provides the `colorwheel()` function +=========================================================== +See `CircuitPython:rainbowio` in CircuitPython for more details. +Not supported by all boards. + +* Author(s): Kattni Rembor +""" + + +def colorwheel(color_value): + """ + A colorwheel. ``0`` and ``255`` are red, ``85`` is green, and ``170`` is blue, with the values + between being the rest of the rainbow. + + :param int color_value: 0-255 of color value to return + :return: tuple of RGB values + """ + if color_value < 0 or color_value > 255: + return 0, 0, 0 + if color_value < 85: + return 255 - color_value * 3, color_value * 3, 0 + if color_value < 170: + color_value -= 85 + return 0, 255 - color_value * 3, color_value * 3 + color_value -= 170 + return color_value * 3, 0, 255 - color_value * 3