mirror of
https://github.com/KevinMidboe/python-gpiozero.git
synced 2025-10-29 09:40:36 +00:00
fix various bugs found by the 'prospector' static-analysis tool
This commit is contained in:
@@ -10,11 +10,11 @@ except ImportError:
|
||||
pass
|
||||
|
||||
from time import sleep
|
||||
from collections import namedtuple
|
||||
from itertools import repeat, cycle, chain
|
||||
from threading import Lock
|
||||
|
||||
from .exc import (
|
||||
DeviceClosed,
|
||||
GPIOPinMissing,
|
||||
EnergenieSocketMissing,
|
||||
EnergenieBadSocket,
|
||||
|
||||
@@ -14,7 +14,7 @@ from itertools import chain
|
||||
from types import FunctionType
|
||||
from threading import RLock
|
||||
|
||||
from .threads import GPIOThread, _threads_shutdown
|
||||
from .threads import _threads_shutdown
|
||||
from .mixins import (
|
||||
ValuesMixin,
|
||||
SharedMixin,
|
||||
@@ -26,7 +26,6 @@ from .exc import (
|
||||
GPIOPinMissing,
|
||||
GPIOPinInUse,
|
||||
GPIODeviceClosed,
|
||||
GPIOBadSourceDelay,
|
||||
)
|
||||
|
||||
# Get a pin implementation to use as the default; we prefer RPi.GPIO's here
|
||||
|
||||
@@ -7,12 +7,11 @@ from __future__ import (
|
||||
division,
|
||||
)
|
||||
|
||||
import warnings
|
||||
from time import sleep, time
|
||||
from threading import Event
|
||||
|
||||
from .exc import InputDeviceError, GPIODeviceError, DeviceClosed
|
||||
from .devices import GPIODevice, CompositeDevice
|
||||
from .exc import InputDeviceError, DeviceClosed
|
||||
from .devices import GPIODevice
|
||||
from .mixins import GPIOQueue, EventsMixin
|
||||
|
||||
|
||||
@@ -560,7 +559,7 @@ class DistanceSensor(SmoothedInputDevice):
|
||||
def __init__(
|
||||
self, echo=None, trigger=None, queue_len=30, max_distance=1,
|
||||
threshold_distance=0.3, partial=False):
|
||||
if not (max_distance > 0):
|
||||
if max_distance <= 0:
|
||||
raise ValueError('invalid maximum distance (must be positive)')
|
||||
self._trigger = None
|
||||
super(DistanceSensor, self).__init__(
|
||||
|
||||
@@ -13,13 +13,18 @@ from functools import wraps
|
||||
from threading import Event
|
||||
from collections import deque
|
||||
try:
|
||||
from statistics import median, mean
|
||||
from statistics import median
|
||||
except ImportError:
|
||||
from .compat import median, mean
|
||||
from .compat import median
|
||||
|
||||
from .threads import GPIOThread
|
||||
from .exc import BadEventHandler, DeviceClosed
|
||||
|
||||
from .exc import (
|
||||
BadEventHandler,
|
||||
DeviceClosed,
|
||||
GPIOBadSourceDelay,
|
||||
GPIOBadQueueLen,
|
||||
GPIOBadSampleWait,
|
||||
)
|
||||
|
||||
class ValuesMixin(object):
|
||||
"""
|
||||
|
||||
@@ -5,8 +5,6 @@ from __future__ import (
|
||||
division,
|
||||
)
|
||||
|
||||
import warnings
|
||||
from time import sleep
|
||||
from threading import Lock
|
||||
from itertools import repeat, cycle, chain
|
||||
|
||||
@@ -194,7 +192,7 @@ class DigitalOutputDevice(OutputDevice):
|
||||
|
||||
def _blink_device(self, on_time, off_time, n):
|
||||
iterable = repeat(0) if n is None else repeat(0, n)
|
||||
for i in iterable:
|
||||
for _ in iterable:
|
||||
self._write(True)
|
||||
if self._blink_thread.stopping.wait(on_time):
|
||||
break
|
||||
|
||||
@@ -9,7 +9,7 @@ str = type('')
|
||||
import io
|
||||
from collections import namedtuple
|
||||
|
||||
from ..exc import PinUnknownPi, PinMultiplePins
|
||||
from ..exc import PinUnknownPi, PinMultiplePins, PinNoPins
|
||||
|
||||
|
||||
# Some useful constants for describing pins
|
||||
|
||||
@@ -15,7 +15,7 @@ try:
|
||||
except ImportError:
|
||||
from ..compat import isclose
|
||||
|
||||
from . import Pin, PINS_CLEANUP
|
||||
from . import Pin
|
||||
from ..exc import PinSetInput, PinPWMUnsupported, PinFixedPull
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ class MockPin(Pin):
|
||||
try:
|
||||
old_pin = cls._PINS[number]
|
||||
except KeyError:
|
||||
self = super(Pin, cls).__new__(cls)
|
||||
self = super(MockPin, cls).__new__(cls)
|
||||
cls._PINS[number] = self
|
||||
self._number = number
|
||||
self._function = 'input'
|
||||
|
||||
@@ -16,6 +16,7 @@ from ..exc import (
|
||||
PinFixedPull,
|
||||
PinInvalidPull,
|
||||
PinInvalidBounce,
|
||||
PinInvalidState,
|
||||
)
|
||||
|
||||
|
||||
@@ -135,7 +136,7 @@ class PiGPIOPin(Pin):
|
||||
if self._host == 'localhost':
|
||||
return "GPIO%d" % self._number
|
||||
else:
|
||||
return "GPIO%d on %s:%d" % (self._host, self._port)
|
||||
return "GPIO%d on %s:%d" % (self._number, self._host, self._port)
|
||||
|
||||
@property
|
||||
def host(self):
|
||||
@@ -182,7 +183,7 @@ class PiGPIOPin(Pin):
|
||||
try:
|
||||
self._connection.set_PWM_dutycycle(self._number, int(value * 255))
|
||||
except pigpio.error:
|
||||
raise PinInvalidValue('invalid state "%s" for pin %r' % (value, self))
|
||||
raise PinInvalidState('invalid state "%s" for pin %r' % (value, self))
|
||||
elif self.function == 'input':
|
||||
raise PinSetInput('cannot set state of pin %r' % self)
|
||||
else:
|
||||
|
||||
@@ -7,8 +7,6 @@ from __future__ import (
|
||||
str = type('')
|
||||
|
||||
|
||||
from threading import Lock
|
||||
|
||||
import RPIO
|
||||
import RPIO.PWM
|
||||
from RPIO.Exceptions import InvalidChannelException
|
||||
@@ -21,6 +19,8 @@ from ..exc import (
|
||||
PinFixedPull,
|
||||
PinInvalidPull,
|
||||
PinInvalidBounce,
|
||||
PinInvalidState,
|
||||
PinPWMError,
|
||||
)
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ class RPIOPin(Pin):
|
||||
|
||||
def _set_state(self, value):
|
||||
if not 0 <= value <= 1:
|
||||
raise PinInvalidValue('invalid state "%s" for pin %r' % (value, self))
|
||||
raise PinInvalidState('invalid state "%s" for pin %r' % (value, self))
|
||||
if self._pwm:
|
||||
RPIO.PWM.clear_channel_gpio(0, self._number)
|
||||
if value == 0:
|
||||
|
||||
@@ -15,8 +15,8 @@ try:
|
||||
from itertools import izip as zip
|
||||
except ImportError:
|
||||
pass
|
||||
from itertools import count, cycle
|
||||
from math import sin, cos, floor, radians
|
||||
from itertools import cycle
|
||||
from math import sin, cos, radians
|
||||
try:
|
||||
from statistics import mean
|
||||
except ImportError:
|
||||
|
||||
@@ -184,7 +184,7 @@ class SPISoftwareBus(SharedMixin, Device):
|
||||
for write_word in data:
|
||||
mask = 1 if self.lsb_first else 1 << (self.bits_per_word - 1)
|
||||
read_word = 0
|
||||
for bit in range(self.bits_per_word):
|
||||
for _ in range(self.bits_per_word):
|
||||
if self.mosi is not None:
|
||||
self.mosi.value = bool(write_word & mask)
|
||||
self.clock.on()
|
||||
|
||||
@@ -7,9 +7,9 @@ from __future__ import (
|
||||
str = type('')
|
||||
|
||||
|
||||
from .exc import DeviceClosed
|
||||
from .exc import DeviceClosed, InputDeviceError
|
||||
from .devices import Device
|
||||
from .spi import extract_spi_args, SPI
|
||||
from .spi import SPI
|
||||
|
||||
|
||||
class SPIDevice(Device):
|
||||
@@ -206,7 +206,7 @@ class MCP33xx(MCP3xxx):
|
||||
data = data[-2:]
|
||||
result = ((data[0] & 63) << 7) | (data[1] >> 1)
|
||||
# Account for the sign bit
|
||||
if self.differential and value > 4095:
|
||||
if self.differential and result > 4095:
|
||||
result = -(8192 - result)
|
||||
assert -4096 <= result < 4096
|
||||
return result
|
||||
|
||||
@@ -8,11 +8,6 @@ str = type('')
|
||||
|
||||
from threading import Thread, Event
|
||||
|
||||
from .exc import (
|
||||
GPIOBadQueueLen,
|
||||
GPIOBadSampleWait,
|
||||
)
|
||||
|
||||
|
||||
_THREADS = set()
|
||||
def _threads_shutdown():
|
||||
@@ -22,7 +17,9 @@ def _threads_shutdown():
|
||||
|
||||
|
||||
class GPIOThread(Thread):
|
||||
def __init__(self, group=None, target=None, name=None, args=(), kwargs={}):
|
||||
def __init__(self, group=None, target=None, name=None, args=(), kwargs=None):
|
||||
if kwargs is None:
|
||||
kwargs = {}
|
||||
self.stopping = Event()
|
||||
super(GPIOThread, self).__init__(group, target, name, args, kwargs)
|
||||
self.daemon = True
|
||||
|
||||
Reference in New Issue
Block a user