32 lines
1,006 B
Python
32 lines
1,006 B
Python
import re
|
||
|
||
TEMPLATE_NAME_PATTERN = re.compile(r"^[A-Z0-9_]{3,40}$")
|
||
DLT_TEMPLATE_ID_PATTERN = re.compile(r"^\d{12,25}$")
|
||
VARIABLE_TOKEN = "{#var#}"
|
||
|
||
|
||
def normalize_template_name(value: str) -> str:
|
||
return value.strip().upper().replace(" ", "_")
|
||
|
||
|
||
def validate_template_name(value: str) -> str:
|
||
name = normalize_template_name(value)
|
||
if not TEMPLATE_NAME_PATTERN.match(name):
|
||
raise ValueError("Template name must be 3–40 uppercase letters, numbers, or underscores")
|
||
return name
|
||
|
||
|
||
def validate_template_text(value: str) -> str:
|
||
text = value.strip()
|
||
if len(text) < 10:
|
||
raise ValueError("Template must be at least 10 characters")
|
||
if len(text) > 1000:
|
||
raise ValueError("Template must be 1000 characters or fewer")
|
||
return text
|
||
|
||
|
||
def validate_dlt_template_id(value: str) -> str:
|
||
template_id = value.strip()
|
||
if not DLT_TEMPLATE_ID_PATTERN.match(template_id):
|
||
raise ValueError("DLT Template ID must be 12–25 digits")
|
||
return template_id
|