137 lines
4.9 KiB
Python
137 lines
4.9 KiB
Python
|
from dataclasses import dataclass
|
||
|
import os
|
||
|
|
||
|
from matplotlib._afm import AFM
|
||
|
from matplotlib import ft2font
|
||
|
|
||
|
from pathlib import Path
|
||
|
|
||
|
from collections.abc import Iterable
|
||
|
from typing import Any, Literal
|
||
|
|
||
|
font_scalings: dict[str | None, float]
|
||
|
stretch_dict: dict[str, int]
|
||
|
weight_dict: dict[str, int]
|
||
|
font_family_aliases: set[str]
|
||
|
MSFolders: str
|
||
|
MSFontDirectories: list[str]
|
||
|
MSUserFontDirectories: list[str]
|
||
|
X11FontDirectories: list[str]
|
||
|
OSXFontDirectories: list[str]
|
||
|
|
||
|
def get_fontext_synonyms(fontext: str) -> list[str]: ...
|
||
|
def list_fonts(directory: str, extensions: Iterable[str]) -> list[str]: ...
|
||
|
def win32FontDirectory() -> str: ...
|
||
|
def _get_fontconfig_fonts() -> list[Path]: ...
|
||
|
def findSystemFonts(
|
||
|
fontpaths: Iterable[str | os.PathLike | Path] | None = ..., fontext: str = ...
|
||
|
) -> list[str]: ...
|
||
|
@dataclass
|
||
|
class FontEntry:
|
||
|
fname: str = ...
|
||
|
name: str = ...
|
||
|
style: str = ...
|
||
|
variant: str = ...
|
||
|
weight: str | int = ...
|
||
|
stretch: str = ...
|
||
|
size: str = ...
|
||
|
def _repr_html_(self) -> str: ...
|
||
|
def _repr_png_(self) -> bytes: ...
|
||
|
|
||
|
def ttfFontProperty(font: ft2font.FT2Font) -> FontEntry: ...
|
||
|
def afmFontProperty(fontpath: str, font: AFM) -> FontEntry: ...
|
||
|
|
||
|
class FontProperties:
|
||
|
def __init__(
|
||
|
self,
|
||
|
family: str | Iterable[str] | None = ...,
|
||
|
style: Literal["normal", "italic", "oblique"] | None = ...,
|
||
|
variant: Literal["normal", "small-caps"] | None = ...,
|
||
|
weight: int | str | None = ...,
|
||
|
stretch: int | str | None = ...,
|
||
|
size: float | str | None = ...,
|
||
|
fname: str | os.PathLike | Path | None = ...,
|
||
|
math_fontfamily: str | None = ...,
|
||
|
) -> None: ...
|
||
|
def __hash__(self) -> int: ...
|
||
|
def __eq__(self, other: object) -> bool: ...
|
||
|
def get_family(self) -> list[str]: ...
|
||
|
def get_name(self) -> str: ...
|
||
|
def get_style(self) -> Literal["normal", "italic", "oblique"]: ...
|
||
|
def get_variant(self) -> Literal["normal", "small-caps"]: ...
|
||
|
def get_weight(self) -> int | str: ...
|
||
|
def get_stretch(self) -> int | str: ...
|
||
|
def get_size(self) -> float: ...
|
||
|
def get_file(self) -> str | bytes | None: ...
|
||
|
def get_fontconfig_pattern(self) -> dict[str, list[Any]]: ...
|
||
|
def set_family(self, family: str | Iterable[str] | None) -> None: ...
|
||
|
def set_style(
|
||
|
self, style: Literal["normal", "italic", "oblique"] | None
|
||
|
) -> None: ...
|
||
|
def set_variant(self, variant: Literal["normal", "small-caps"] | None) -> None: ...
|
||
|
def set_weight(self, weight: int | str | None) -> None: ...
|
||
|
def set_stretch(self, stretch: int | str | None) -> None: ...
|
||
|
def set_size(self, size: float | str | None) -> None: ...
|
||
|
def set_file(self, file: str | os.PathLike | Path | None) -> None: ...
|
||
|
def set_fontconfig_pattern(self, pattern: str) -> None: ...
|
||
|
def get_math_fontfamily(self) -> str: ...
|
||
|
def set_math_fontfamily(self, fontfamily: str | None) -> None: ...
|
||
|
def copy(self) -> FontProperties: ...
|
||
|
# Aliases
|
||
|
set_name = set_family
|
||
|
get_slant = get_style
|
||
|
set_slant = set_style
|
||
|
get_size_in_points = get_size
|
||
|
|
||
|
def json_dump(data: FontManager, filename: str | Path | os.PathLike) -> None: ...
|
||
|
def json_load(filename: str | Path | os.PathLike) -> FontManager: ...
|
||
|
|
||
|
class FontManager:
|
||
|
__version__: int
|
||
|
default_size: float | None
|
||
|
defaultFamily: dict[str, str]
|
||
|
afmlist: list[FontEntry]
|
||
|
ttflist: list[FontEntry]
|
||
|
def __init__(self, size: float | None = ..., weight: str = ...) -> None: ...
|
||
|
def addfont(self, path: str | Path | os.PathLike) -> None: ...
|
||
|
@property
|
||
|
def defaultFont(self) -> dict[str, str]: ...
|
||
|
def get_default_weight(self) -> str: ...
|
||
|
@staticmethod
|
||
|
def get_default_size() -> float: ...
|
||
|
def set_default_weight(self, weight: str) -> None: ...
|
||
|
def score_family(
|
||
|
self, families: str | list[str] | tuple[str], family2: str
|
||
|
) -> float: ...
|
||
|
def score_style(self, style1: str, style2: str) -> float: ...
|
||
|
def score_variant(self, variant1: str, variant2: str) -> float: ...
|
||
|
def score_stretch(self, stretch1: str | int, stretch2: str | int) -> float: ...
|
||
|
def score_weight(self, weight1: str | float, weight2: str | float) -> float: ...
|
||
|
def score_size(self, size1: str | float, size2: str | float) -> float: ...
|
||
|
def findfont(
|
||
|
self,
|
||
|
prop: str | FontProperties,
|
||
|
fontext: Literal["ttf", "afm"] = ...,
|
||
|
directory: str | None = ...,
|
||
|
fallback_to_default: bool = ...,
|
||
|
rebuild_if_missing: bool = ...,
|
||
|
) -> str: ...
|
||
|
def get_font_names(self) -> list[str]: ...
|
||
|
|
||
|
def is_opentype_cff_font(filename: str) -> bool: ...
|
||
|
def get_font(
|
||
|
font_filepaths: Iterable[str | Path | bytes] | str | Path | bytes,
|
||
|
hinting_factor: int | None = ...,
|
||
|
) -> ft2font.FT2Font: ...
|
||
|
|
||
|
fontManager: FontManager
|
||
|
|
||
|
def findfont(
|
||
|
prop: str | FontProperties,
|
||
|
fontext: Literal["ttf", "afm"] = ...,
|
||
|
directory: str | None = ...,
|
||
|
fallback_to_default: bool = ...,
|
||
|
rebuild_if_missing: bool = ...,
|
||
|
) -> str: ...
|
||
|
def get_font_names() -> list[str]: ...
|