def __init__(self, path, recursive=True, patterns=None, ignore_patterns=None, ignore_directories=False, case_sensitive=False, events=None, load_file=False, mode='auto', base64=False, defer_modified=0.5, **kwargs): super().__init__(**kwargs) self.path = path validator.is_directory(path=self.path) self.recursive = bool(recursive) self.patterns = make_list(patterns) self.ignore_patterns = make_list(ignore_patterns) self.ignore_directories = bool(ignore_directories) self.case_sensitive = bool(case_sensitive) self.load_file = bool(load_file) self.base64 = bool(base64) self.events = make_list(events) if self.events: validator.subset_of(self.EVENT_TYPES, events=self.events) self.mode = mode validator.one_of(FILE_MODES, mode=self.mode) self.defer_modified = float(defer_modified) if self.defer_modified < 0.0: self.defer_modified = 0.5
def __init__(self, discovery_prefix, component, config, object_id=None, node_id=None, **kwargs): super().__init__(**kwargs) self.discovery_prefix = str(discovery_prefix) validator.one_of(self.SUPPORTED_COMPONENTS, component=str(component)) self.component = str(component) self.object_id = self._parse_object_id(object_id) validator.is_instance(dict, config=config) self._config = config self.node_id = self._parse_node_id(node_id) self.configured = {}
def __init__(self, device='dht22', data_gpio=17, humidity_offset=0.0, temp_offset=0.0, **kwargs): super().__init__(**kwargs) valid_devices = ['dht11', 'dht22', 'am2302'] self.device = str(device).lower() validator.one_of(valid_devices, device=self.device) self.data_gpio = int(data_gpio) self.humidity_offset = float(humidity_offset) self.temp_offset = float(temp_offset)
def __init__(self, pins, default=CONST_RISING, **kwargs): super().__init__(**kwargs) self._mode_default = default validator.one_of(CONST_RISING_OPTIONS + CONST_FALLING_OPTIONS + CONST_SWITCH_OPTIONS + CONST_MOTION_OPTIONS, mode_default=self._mode_default) self._pins = [ Callback.from_str(pin_str, default=default) for pin_str in make_list(pins) ] _without_duplicate = set(self._pins) if len(_without_duplicate) != len(self._pins): diff = list( (Counter(self._pins) - Counter(_without_duplicate)).elements()) self.logger.warning( "You provided duplicate gpio pin configurations. Will ignore '%s'", diff) self._pins = _without_duplicate
def __init__(self, api_key: str, channel: str, username: str = DEFAULT_USERNAME, icon_url: Optional[str] = None, icon_emoji: Optional[str] = None, ping_users: Optional[Iterable[str]] = None, ping_level: str = DEFAULT_PING_LEVEL, fire_and_forget: bool = True): super().__init__() self.formatter = NoStacktraceFormatter() self.slacker = slacker.Slacker(api_key) self.fire_and_forget = bool(fire_and_forget) self.username = str(username) self.icon_url = icon_url and str(icon_url) self.icon_emoji = icon_emoji if (icon_emoji or icon_url) else self.DEFAULT_EMOJI self.channel = channel if not self.channel.startswith('#') and not self.channel.startswith( '@'): self.channel = '#' + self.channel # Optional ping user related stuff ping_level = str(ping_level).upper() validator.one_of(_nameToLevel, ping_level=ping_level) self.ping_level = _nameToLevel[ping_level] # type: int self.ping_user_ids = [] # type: List[int] if ping_users: user_map = self._build_user_map() for ping_user in ping_users: user_id = user_map.get(ping_user) if not user_id: raise RuntimeError( 'User not found in Slack users list: %s' % ping_user) self.ping_user_ids.append(user_id)
def _check_mode(cls, mode: str) -> str: validator.one_of(ALLOWED_MODES, mode=mode) return mode
def _parse_method(val): val = str(val).upper() validator.one_of(utils.HTTP_METHODS, method=val) return val