From 4ab8c1618496b4010299606fb74e75173b563478 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 14 May 2024 22:44:06 +0530 Subject: [PATCH] ... --- kitty/fonts/__init__.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/kitty/fonts/__init__.py b/kitty/fonts/__init__.py index 678d4a878..c5a9b8eb8 100644 --- a/kitty/fonts/__init__.py +++ b/kitty/fonts/__init__.py @@ -1,8 +1,12 @@ from enum import Enum, IntEnum, auto -from typing import Callable, Dict, List, Literal, NamedTuple, Tuple, TypedDict, Union +from typing import TYPE_CHECKING, Callable, Dict, List, Literal, NamedTuple, Tuple, TypedDict, Union +from kitty.types import run_once from kitty.typing import CoreTextFont, FontConfigPattern +if TYPE_CHECKING: + import re + class ListedFont(TypedDict): family: str @@ -162,6 +166,11 @@ Descriptor = Union[FontConfigPattern, CoreTextFont] Scorer = Callable[[Descriptor], Score] -def family_name_to_key(family: str) -> str: +@run_once +def fnname_pat() -> 're.Pattern[str]': import re - return re.sub(r'\s+', ' ', family.lower()) + return re.compile(r'\s+') + + +def family_name_to_key(family: str) -> str: + return fnname_pat().sub(' ', family).strip().lower()