diff --git a/custom_components/mbtalive/config_flow.py b/custom_components/mbtalive/config_flow.py index 53fa00a..e7d047f 100644 --- a/custom_components/mbtalive/config_flow.py +++ b/custom_components/mbtalive/config_flow.py @@ -15,27 +15,15 @@ _LOGGER = logging.getLogger(__name__) -# --- Custom validator for train number --- -def validate_train_number(value: str | None) -> str | None: - """Validate that train number is 2–4 alphanumeric characters or empty.""" - if value in ("", None): - return None # normalize empty - value = str(value).strip().upper() - if not re.fullmatch(r"[A-Z0-9]{2,4}", value): - raise vol.Invalid("Train number must be 2–4 letters/numbers or empty") - return value - - def get_user_schema(default_api_key: str = "") -> vol.Schema: return vol.Schema({ vol.Required("depart_from", default=""): str, vol.Required("arrive_at", default=""): str, vol.Required("api_key", default=default_api_key): vol.All(str, vol.Length(min=32, max=32)), vol.Optional("max_trips", default=2): int, - vol.Optional("train", default=""): validate_train_number, + vol.Optional("train"): vol.All(str,vol.Length(min=2, max=4)) }) - class MBTAConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): """Handle a config flow for the MBTA integration.""" VERSION = 1 diff --git a/custom_components/mbtalive/manifest.json b/custom_components/mbtalive/manifest.json index 35d6898..a2e9946 100644 --- a/custom_components/mbtalive/manifest.json +++ b/custom_components/mbtalive/manifest.json @@ -8,7 +8,7 @@ "loggers": ["MBTALive"], "dependencies": [], "requirements": ["MBTAclient>=1.1.31"], - "version": "2.1.4", + "version": "2.1.5", "config_flow": true }