commit for publication

This commit is contained in:
2026-09-17 14:41:22 +01:00
committed by Jack Clifton
commit 0bf030f3c7
26 changed files with 2506 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
VALID = True
INVALID = False
from . import defaults
from . import sanitise
from . import validation
+5
View File
@@ -0,0 +1,5 @@
import datetime
def unix_epoch():
return datetime.datetime(1970, 1, 1)
+21
View File
@@ -0,0 +1,21 @@
def mac_addr(addr):
WHITELIST_CHARS = ":0123456789ABCDEF"
addr = addr.upper().strip()
addr = "".join(char for char in addr if char in WHITELIST_CHARS)
return addr
def text_input(text, OVERWRITE_WHITELIST_CHARS=""):
WHITELIST_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 _.-"
if OVERWRITE_WHITELIST_CHARS:
WHITELIST_CHARS = OVERWRITE_WHITELIST_CHARS
if not isinstance(text, str):
return ""
return "".join([char for char in text if char in WHITELIST_CHARS])
+65
View File
@@ -0,0 +1,65 @@
from . import VALID, INVALID
def mac_addr(addr):
VALID_MAC_CHARS = "0123456789abcdefABCDEF"
if len(addr) != 17:
return INVALID
COLON_START_IDX = 2
COLON_STEP = 3
for idx in range(COLON_START_IDX, len(addr), COLON_STEP):
if addr[idx] != ":":
return INVALID
mac_sections = addr.split(":")
if len(mac_sections) != 6:
return INVALID
for mac_byte in mac_sections:
if len(mac_byte) != 2:
return INVALID
for char in mac_byte:
if not char in VALID_MAC_CHARS:
return INVALID
return VALID
def password_strength(password):
PW_MIN_LEN = 8
if not isinstance(password, str):
return "Not a string"
if len(password) < PW_MIN_LEN:
return f"Password too short. {PW_MIN_LEN} character minimum"
def text_numeric_only(text, extra_chars=""):
WHITELIST_CHARS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
for char in text:
if not (char in WHITELIST_CHARS or char in extra_chars):
return INVALID
return VALID
def username(username):
return text_numeric_only(username, extra_chars=" _-")
def email(email):
return text_numeric_only(email, extra_chars=" _-@+.")