OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python311
/
lib
/
python3.11
/
site-packages
/
validators
Server IP: 2a02:4780:11:1594:0:ef5:22d7:a
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
01/09/2025 02:18:04 AM
rwxr-xr-x
📄
__init__.py
1.86 KB
05/14/2024 03:18:23 PM
rw-r--r--
📁
__pycache__
-
05/14/2024 03:18:23 PM
rwxr-xr-x
📄
_extremes.py
1.01 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
_tld.txt
9.4 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
between.py
2.39 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
btc_address.py
1.62 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
card.py
5.63 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
country.py
14.57 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
cron.py
2.23 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
domain.py
2.4 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
email.py
2.72 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
encoding.py
1.34 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
finance.py
3.22 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
hashes.py
3.21 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
hostname.py
4.05 KB
05/14/2024 03:18:23 PM
rw-r--r--
📁
i18n
-
05/14/2024 03:18:23 PM
rwxr-xr-x
📄
iban.py
1.05 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
ip_address.py
4.34 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
length.py
1.45 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
mac_address.py
865 bytes
05/14/2024 03:18:23 PM
rw-r--r--
📄
py.typed
0 bytes
05/14/2024 03:18:23 PM
rw-r--r--
📄
slug.py
750 bytes
05/14/2024 03:18:23 PM
rw-r--r--
📄
uri.py
1.78 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
url.py
7.23 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
utils.py
3.1 KB
05/14/2024 03:18:23 PM
rw-r--r--
📄
uuid.py
1.04 KB
05/14/2024 03:18:23 PM
rw-r--r--
Editing: cron.py
Close
"""Cron.""" # local from .utils import validator def _validate_cron_component(component: str, min_val: int, max_val: int): if component == "*": return True if component.isdecimal(): return min_val <= int(component) <= max_val if "/" in component: parts = component.split("/") if len(parts) != 2 or not parts[1].isdecimal() or int(parts[1]) < 1: return False if parts[0] == "*": return True return parts[0].isdecimal() and min_val <= int(parts[0]) <= max_val if "-" in component: parts = component.split("-") if len(parts) != 2 or not parts[0].isdecimal() or not parts[1].isdecimal(): return False start, end = int(parts[0]), int(parts[1]) return min_val <= start <= max_val and min_val <= end <= max_val and start <= end if "," in component: for item in component.split(","): if not _validate_cron_component(item, min_val, max_val): return False return True # return all( # _validate_cron_component(item, min_val, max_val) for item in component.split(",") # ) # throws type error. why? return False @validator def cron(value: str, /): """Return whether or not given value is a valid cron string. Examples: >>> cron('*/5 * * * *') # Output: True >>> cron('30-20 * * * *') # Output: ValidationError(func=cron, ...) Args: value: Cron string to validate. Returns: (Literal[True]): If `value` is a valid cron string. (ValidationError): If `value` is an invalid cron string. """ if not value: return False try: minutes, hours, days, months, weekdays = value.strip().split() except ValueError as err: raise ValueError("Badly formatted cron string") from err if not _validate_cron_component(minutes, 0, 59): return False if not _validate_cron_component(hours, 0, 23): return False if not _validate_cron_component(days, 1, 31): return False if not _validate_cron_component(months, 1, 12): return False if not _validate_cron_component(weekdays, 0, 6): return False return True