
    i                     b    d dl Z d dlZd dlZd dlmZmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d Zd ZdS )    N)	ASCENTDEFAULT_WIDTHDESCENTFONT_FAMILY	FONT_NAME
FONT_STYLEOUT_FONT_DIRUPMVECT_GLYPH_DIR)
ensure_dirc                 @   t          | t                    rQ|                                                     d          r*	 t	          | dd          d          S # t
          $ r Y d S w xY wt          | t                    r"t          |           dk    rt          |           S d S )NzU+         )
isinstancestrupper
startswithint	Exceptionlenord)chs    '/code/app/lib/handwriting/font_build.py_char_to_codepointr      s    "c rxxzz44T:: 	r!""vr??" 	 	 	44	"c s2ww!||2ww4s   A 
A$#A$c           
      n   	 dd l }dd l}n$# t          $ r}t          d|           d }~ww xY wt          j                            | t                    }t          t          j	        t          j                            |d                              }|st          d          t          j                            | t                    }t          |           |                                }t          |_        t          |_        t           dt"           |_        t"          |_        t(          |_        t,          |_        t0          |_        |                    dd          }t7          t8          dz            |_        |D ]d}	t          j                            t          j                            |	                    d         }
tA          j!        d	|
          }|s]|"                    d
          }tG          |          }|	 |                    |          }n,# t          $ r}t          d| d|dd|           |d }~ww xY w|$                                 	 |%                    |	           nE# t          $ r8}t          dt          j                            |	           d|           |d }~ww xY w	 |&                                s/t          dt          j                            |	                     n# t          $ r Y nw xY w|'                                \  }}}}||k    s||k    r/t          dt          j                            |	                     d}|(                    |)                    | |z   d                     t7          t8                    |_        |*                                 |+                                 |,                                 ft          j                            |t           d          }|-                    |           |.                                 d S )Nr   zuFontForge python bindings not available.
On Ubuntu: sudo apt-get install fontforge python3-fontforge
Original error: z*.svgz!No SVG glyphs found to build TTF.     spacegffffff?z^glyph_(.+?)_binary$r   z!FontForge createChar failed for 'z' (U+04Xz): z$FontForge importOutlines failed for z: z%FontForge imported empty outline for z)FontForge produced zero-area outline for    z.ttf)/	fontforgepsMatr   RuntimeErrorospathjoinr   sortedglobr	   r   fontr   fontnamer   
familynamer   fullnameweightr
   emr   ascentr   descent
createCharr   r   widthsplitextbasenamerematchgroupr   clearimportOutlinesisWorthOutputtingboundingBox	transform	translateremoveOverlapcorrectDirectionroundgenerateclose)out_dirr"   r#   esvg_dir	svg_filesfont_out_dirr*   r   svg_pathstemmr   	codepointglyphxminyminxmaxymaxsidettf_paths                        r   build_ttf_with_fontforgerT      s.   
 
 
 
# # #
 
 	

 gll7N33Gtygw!?!?@@AAI @>???7<<66L|>>DDM!DO"11Z11DMDKDGDKDLOOD'**Emd*++EK . .w 0 0 : :;;A>H,d33 	WWQZZ&r**		OOI..EE 	 	 	RBRRYRRRqRR 	 		  **** 	 	 	Xrw7G7G7Q7QXXUVXX 		**,, "XBG<L<LX<V<VXX    	 	 	D	 "'!2!2!4!4dD$4<<44<<XBG<L<LX<V<VXX   a88999-((   w||LY*<*<*<==HMM(JJLLLLLsS    
,',H
I#H==II00
J2:3J--J26AK::
LL)r)   r%   r6   app.lib.handwriting.configr   r   r   r   r   r   r	   r
   r   app.lib.handwriting.io_utilsr   r   rT        r   <module>rY      s     				 				
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 4 3 3 3 3 3  Q Q Q Q QrX   