mirror of https://github.com/esphome/esphome.git
26 lines
534 B
Python
26 lines
534 B
Python
from __future__ import annotations
|
|
|
|
import unicodedata
|
|
|
|
from esphome.const import ALLOWED_NAME_CHARS
|
|
|
|
|
|
def strip_accents(value):
|
|
return "".join(
|
|
c
|
|
for c in unicodedata.normalize("NFD", str(value))
|
|
if unicodedata.category(c) != "Mn"
|
|
)
|
|
|
|
|
|
def friendly_name_slugify(value):
|
|
value = (
|
|
strip_accents(value)
|
|
.lower()
|
|
.replace(" ", "-")
|
|
.replace("_", "-")
|
|
.replace("--", "-")
|
|
.strip("-")
|
|
)
|
|
return "".join(c for c in value if c in ALLOWED_NAME_CHARS)
|