"""Validations for timed release module.""" import datetime from timed_release import config def validate_time(time_value): """Validate given time in HH:MM:SS format. Args: time_value (str): time to validate Returns: return boolean true if valid time match with time format else false """ try: datetime.datetime.strptime(time_value, config.DEFAULT_TIME_FORMAT) return True except ValueError: return False def is_integer_and_non_negative(value): """Validate given value is integer and can not be negative. Args: value: value to check integer and can not be negative Returns: return boolean true if value is integer and greater than zero else false """ if not isinstance(value, int) or value <= 0: return False return True def mandatory_fields(data, mandatory_fields_list): """Validate mandatory fields. Args: data (dict): dict of data mandatory_fields_list (list): list of required fields Returns: return dict of fields those are not present in data """ # checking fields in mandatory_fields_list is present in data if not # then return the dict of those fields. return [field for field in mandatory_fields_list if not data.get(field)] def validate_time_zone(time_zone): """Validate time zone. Args: time_zone (str): time zone Returns: return boolean true if valid time zone match with TIME_ZONES else false """ if time_zone in config.TIME_ZONES: return True return False def is_digit_and_non_zero(value): """Check if the value is digit and greater than zero. Args: value (str) Returns: Boolean: True if value is integer and greater than zero else False. """ if not value.isdigit() or int(value) <= 0: return False return True