Refactoring: Move
Move font related functions into font module
This commit is contained in:
parent
de9b3bad93
commit
1de938f2fa
@ -4,7 +4,7 @@ from pathlib import Path
|
||||
from typing import List
|
||||
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
from funcy import lmap, complement, keep, first, lzip
|
||||
from funcy import lmap, complement, keep, first, lzip, omit, project
|
||||
from loguru import logger
|
||||
|
||||
from synthesis.random import rnd
|
||||
@ -80,3 +80,27 @@ def get_fonts(path: Path = None) -> List[str]:
|
||||
fonts = list(path.rglob("*.ttf"))
|
||||
fonts = [font.name for font in fonts]
|
||||
return fonts
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def get_font_picker(**kwargs):
|
||||
return RandomFontPicker(**kwargs, return_default_font=True)
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def pick_random_mono_space_font_available_on_system(**kwargs):
|
||||
font_picker = get_font_picker(**omit(kwargs, ["includes", "excludes"]))
|
||||
return font_picker.pick_random_mono_space_font_available_on_system()
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def pick_random_font_available_on_system(**kwargs):
|
||||
kwargs["excludes"] = (
|
||||
*kwargs.get(
|
||||
"excludes",
|
||||
),
|
||||
"Kinnari",
|
||||
"KacstOne",
|
||||
)
|
||||
font_picker = get_font_picker(**omit(kwargs, ["includes", "excludes"]))
|
||||
return font_picker.pick_random_font_available_on_system(**project(kwargs, ["includes", "excludes"]))
|
||||
|
||||
28
test/fixtures/page_generation/page.py
vendored
28
test/fixtures/page_generation/page.py
vendored
@ -30,7 +30,7 @@ from synthesis.partitioner.page_partitioner import PagePartitioner
|
||||
from synthesis.random import rnd
|
||||
from synthesis.segment.content_rectangle import ContentRectangle
|
||||
from synthesis.segment.random_content_rectangle import RandomContentRectangle
|
||||
from synthesis.text.font import RandomFontPicker
|
||||
from synthesis.text.font import pick_random_mono_space_font_available_on_system, pick_random_font_available_on_system
|
||||
from synthesis.text.line_formatter.identity import IdentityLineFormatter
|
||||
from synthesis.text.line_formatter.paragraph import ParagraphLineFormatter
|
||||
|
||||
@ -52,8 +52,6 @@ from funcy import (
|
||||
lfilter,
|
||||
repeatedly,
|
||||
mapcat,
|
||||
omit,
|
||||
project,
|
||||
chunks,
|
||||
)
|
||||
|
||||
@ -671,30 +669,6 @@ def dump_plt_to_image(rectangle):
|
||||
return image
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def get_font_picker(**kwargs):
|
||||
return RandomFontPicker(**kwargs, return_default_font=True)
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def pick_random_mono_space_font_available_on_system(**kwargs):
|
||||
font_picker = get_font_picker(**omit(kwargs, ["includes", "excludes"]))
|
||||
return font_picker.pick_random_mono_space_font_available_on_system()
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def pick_random_font_available_on_system(**kwargs):
|
||||
kwargs["excludes"] = (
|
||||
*kwargs.get(
|
||||
"excludes",
|
||||
),
|
||||
"Kinnari",
|
||||
"KacstOne",
|
||||
)
|
||||
font_picker = get_font_picker(**omit(kwargs, ["includes", "excludes"]))
|
||||
return font_picker.pick_random_font_available_on_system(**project(kwargs, ["includes", "excludes"]))
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def pick_colormap() -> ListedColormap:
|
||||
cmap_name = rnd.choice(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user