X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/1e22972224590004b9c48346a06e45658bdea6a2..d76755f8e5b923de0656fb222e092b80e94ebd9e:/src/adafruit_blinka/microcontroller/generic_linux/periphery_pin.py diff --git a/src/adafruit_blinka/microcontroller/generic_linux/periphery_pin.py b/src/adafruit_blinka/microcontroller/generic_linux/periphery_pin.py index daa3240..2a5464d 100644 --- a/src/adafruit_blinka/microcontroller/generic_linux/periphery_pin.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/periphery_pin.py @@ -1,10 +1,19 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""A Pin class for use with periphery.""" try: from periphery import GPIO except ImportError: - raise ImportError("Periphery Python bindings not found, please install and try again! Try running 'pip3 install python-periphery'") + raise ImportError( + "Periphery Python bindings not found, please install and try again! " + "Try running 'pip3 install python-periphery'" + ) from ImportError + -# Pins dont exist in CPython so...lets make our own! class Pin: + """Pins dont exist in CPython so...lets make our own!""" + IN = "in" OUT = "out" LOW = 0 @@ -12,7 +21,6 @@ class Pin: PULL_NONE = 0 PULL_UP = 1 PULL_DOWN = 2 - _CONSUMER = 'adafruit_blinka' id = None _value = LOW @@ -20,7 +28,7 @@ class Pin: def __init__(self, pin_id): self.id = pin_id - if type(pin_id) is tuple: + if isinstance(pin_id, tuple): self._num = int(pin_id[1]) self._chippath = "/dev/gpiochip{}".format(pin_id[0]) else: @@ -35,7 +43,8 @@ class Pin: return self.id == other def init(self, mode=IN, pull=None): - if mode != None: + """Initialize the Pin""" + if mode is not None: if mode == self.IN: self._mode = self.IN if self._line is not None: @@ -49,24 +58,29 @@ class Pin: else: raise RuntimeError("Invalid mode for pin: %s" % self.id) - if pull != None: + if pull is not None: if pull == self.PULL_UP: - raise NotImplementedError("Internal pullups not supported in periphery, use physical resistor instead!") - elif pull == self.PULL_DOWN: - raise NotImplementedError("Internal pulldowns not supported in periphery, use physical resistor instead!") - else: - raise RuntimeError("Invalid pull for pin: %s" % self.id) + raise NotImplementedError( + "Internal pullups not supported in periphery, " + "use physical resistor instead!" + ) + if pull == self.PULL_DOWN: + raise NotImplementedError( + "Internal pulldowns not supported in periphery, " + "use physical resistor instead!" + ) + raise RuntimeError("Invalid pull for pin: %s" % self.id) def value(self, val=None): - if val != None: + """Set or return the Pin Value""" + if val is not None: if val == self.LOW: self._value = val self._line.write(False) - elif val == self.HIGH: + return None + if val == self.HIGH: self._value = val self._line.write(True) - else: - raise RuntimeError("Invalid value for pin") - else: - return self.HIGH if self._line.read() else self.LOW - + return None + raise RuntimeError("Invalid value for pin") + return self.HIGH if self._line.read() else self.LOW