You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			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]: ...
 |