Coverage for gws-app/gws/lib/font/__init__.py: 53%

17 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-17 01:37 +0200

1import PIL.ImageFont 

2 

3import gws 

4import gws.lib.osx 

5 

6 

7class Config(gws.Config): 

8 """Custom fonts configuration.""" 

9 

10 dir: gws.DirPath 

11 """directory with custom fonts""" 

12 

13 

14def configure(cfg: Config): 

15 if cfg.dir: 

16 install_fonts(cfg.dir) 

17 

18 

19def install_fonts(source_dir): 

20 target_dir = '/usr/local/share/fonts' 

21 gws.lib.osx.run(['mkdir', '-p', target_dir], echo=True) 

22 for p in gws.lib.osx.find_files(source_dir): 

23 gws.lib.osx.run(['cp', '-v', p, target_dir], echo=True) 

24 

25 gws.lib.osx.run(['fc-cache', '-fv'], echo=True) 

26 

27 

28def from_name(name: str, size: int): 

29 return PIL.ImageFont.truetype(font=name, size=size)