From 2652342544b0b9740e88c251abc60b4e8bc7ed86 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 15 May 2024 22:39:16 +0530 Subject: [PATCH] DRYer --- kitty/fonts/__init__.py | 8 ++++++++ kitty/fonts/core_text.py | 10 +--------- kitty/fonts/fontconfig.py | 9 +-------- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/kitty/fonts/__init__.py b/kitty/fonts/__init__.py index c44972c27..d59c6a539 100644 --- a/kitty/fonts/__init__.py +++ b/kitty/fonts/__init__.py @@ -157,6 +157,14 @@ class FontSpec(NamedTuple): Descriptor = Union[FontConfigPattern, CoreTextFont] DescriptorVar = TypeVar('DescriptorVar', FontConfigPattern, CoreTextFont, Descriptor) + +class Score(NamedTuple): + variable_score: int + style_score: float + monospace_score: int + width_score: int + + class Scorer: def __init__(self, bold: bool = False, italic: bool = False, monospaced: bool = True, prefer_variable: bool = False) -> None: diff --git a/kitty/fonts/core_text.py b/kitty/fonts/core_text.py index 0558d6976..63613fe64 100644 --- a/kitty/fonts/core_text.py +++ b/kitty/fonts/core_text.py @@ -8,12 +8,11 @@ from functools import lru_cache from typing import Dict, Generator, Iterable, List, NamedTuple, Optional, Sequence, Tuple from kitty.fast_data_types import CTFace, coretext_all_fonts -from kitty.fonts import FontSpec, family_name_to_key from kitty.options.types import Options from kitty.typing import CoreTextFont from kitty.utils import log_error -from . import Descriptor, DescriptorVar, ListedFont, Scorer, VariableData +from . import Descriptor, DescriptorVar, FontSpec, ListedFont, Score, Scorer, VariableData, family_name_to_key attr_map = {(False, False): 'font_family', (True, False): 'bold_font', @@ -74,13 +73,6 @@ def list_fonts() -> Generator[ListedFont, None, None]: 'is_variable': is_variable(fd), 'descriptor': fd, 'style': fd['style']} -class Score(NamedTuple): - variable_score: int - style_score: float - monospace_score: int - width_score: int - - class WeightRange(NamedTuple): minimum: float = 99999 maximum: float = -99999 diff --git a/kitty/fonts/fontconfig.py b/kitty/fonts/fontconfig.py index f0ba93a49..6d9db7595 100644 --- a/kitty/fonts/fontconfig.py +++ b/kitty/fonts/fontconfig.py @@ -21,7 +21,7 @@ from kitty.fast_data_types import ( from kitty.fast_data_types import fc_match as fc_match_impl from kitty.typing import FontConfigPattern -from . import Descriptor, DescriptorVar, ListedFont, Scorer, VariableData, family_name_to_key +from . import Descriptor, DescriptorVar, ListedFont, Score, Scorer, VariableData, family_name_to_key FontCollectionMapType = Literal['family_map', 'ps_map', 'full_map', 'variable_map'] FontMap = Dict[FontCollectionMapType, Dict[str, List[FontConfigPattern]]] @@ -83,13 +83,6 @@ def fc_match(family: str, bold: bool, italic: bool, spacing: int = FC_MONO) -> F return fc_match_impl(family, bold, italic, spacing) -class Score(NamedTuple): - variable_score: int - style_score: float - monospace_score: int - width_score: int - - class WeightRange(NamedTuple): minimum: int = sys.maxsize maximum: int = -1