Skip to content

Commit 3fc9dc3

Browse files
author
Brian Hines
committed
Validate the pin config
1 parent acf60c7 commit 3fc9dc3

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

pi_pin_manager/pins.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,17 @@ class MultiplePinWatcher(GPIOConfig, GPIOActions):
6363

6464
def __init__(self, config, event_handler):
6565
super(MultiplePinWatcher, self).__init__(config=config, event_handler=event_handler)
66+
self._validate_pin_config()
6667
self._initialize_gpio()
6768
self._initialize_pins()
6869

70+
def _validate_pin_config(self):
71+
required_keys = ['mode', 'event', 'handler']
72+
for _, v in self._pin_config:
73+
if not set(required_keys) < set(v.keys()):
74+
message = 'Pin config requires properties: {0}'.format(', '.join(required_keys))
75+
raise PinConfigurationError(message)
76+
6977
def _initialize_pins(self):
7078
for pin_num, pin_options in self._pin_config.items():
7179
self._setup_pin(pin_num, pin_options)

0 commit comments

Comments
 (0)