
    ]Mh                         d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
Z
ddlmZmZ dZ	 d dlZn## e$ r 	 d dlZn# e$ r
ZY dZ[ndZ[ww xY wY nw xY w ej        d          Zd Zd Zdd	Zd
 Zd ZddZdS )    N)closing)partial   )font_to_quadraticfonts_to_quadraticzfontTools.cu2quc                  L    	 t          j                    S # t          $ r Y dS w xY w)Nr   )mp	cpu_countNotImplementedError     S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/cu2qu/cli.py
_cpu_countr      s5    |~~   qqs    
##c                     t          t          j        d          rt          j                            |           S t          j        |           S )Nopen)hasattr
ufo_moduleFontr   )paths    r   open_ufor       s<    z'' *##D)))?4   r   c                 0   t          |           }t                              d|            t          |fi |rJt                              d|           |r|                    |           d S |                                 d S |rt          | |           d S d S )NzConverting curves for %s	Saving %s)r   loggerinfor   save	_copytree)
input_pathoutput_pathkwargsufos       r   _font_to_quadraticr!   &   s    
:

C
KK*J777'''' +K--- 	HH[!!!!!HHJJJJJ	 +*k*****+ +r   c                 r   t           j                            t           j                            t           j                            |                               } t           j                            t           j                            t           j                            |                              }| |k    S N)osr   normcaseabspathrealpath)path1path2s     r   	_samepathr*   3   sr    GRW__RW-=-=e-D-DEEFFEGRW__RW-=-=e-D-DEEFFEE>r   c                     t          | |          rt                              d           d S t          j                            |          rt          j        |           t          j        | |           d S )Nz6input and output paths are the same file; skipped copy)	r*   r   debugr$   r   existsshutilrmtreecopytree)r   r   s     r   r   r   :   sj    [)) MNNN	w~~k"" #k"""
OJ,,,,,r   c           
      :	   t          j        d          }|                    ddt          j                   |                    dddd	
           |                    dddd           |                    ddt
          ddd           |                    ddddd           |                    dddd            |                                }|                    d!d"dd#$           |                    d%d&t          d'd(t                      d)d*+           |                                }|                    d,d-dd.d/0           |                    d1d2dd3d40           |	                    |           }t          |                    d5           |j        sd6}n|j        d(k    rd7}nd8}t          j        |9           t          |j                  d(k    r|j        r|                    d:           |j        r|j        t&          j                                      st'          j                   n7t&          j                                      s|                    d;z             fd<|j        D             }n(|j        r	|j        g}ndgt          |j                  z  }t1          |j        dk    |j        |j        |j        rdnd=>          }|j        rt:                              d?           d@ |j        D             }t?          |fi |r_tA          ||          D ]L\  }	}
t:                              dA|
           |
r|	!                    |
           8|	!                                 MdS tA          |j        |          D ]\  }}
|
rtE          ||
           dS |j#        d(k    r'tI          t          |j                  |j#                  nd(}|d(k    rtK          tL          fi |}t:                              dB|           tO          tQ          j)        |                    5 }|*                    |tA          |j        |                     ddd           dS # 1 swxY w Y   dS tA          |j        |          D ]\  }}
tM          ||
fi | dS )Cz1Convert a UFO font from cubic to quadratic curvescu2qu)progz	--versionversion)actionr4   infiles+INPUTz%one or more input UFO source file(s).)nargsmetavarhelpz-vz	--verbosecountr   )r5   defaultz-ez--conversion-errorERRORNz<maxiumum approximation error measured in EM (default: 0.001))typer:   r=   r;   z-mz--mixedF
store_truez0whether to used mixed quadratic and cubic curves)r=   r5   r;   z--keep-directionreverse_directionstore_falsez$do not reverse the contour direction)destr5   r;   z-iz--interpolatablez@whether curve conversion should keep interpolation compatibility)r5   r;   z-jz--jobs?r   Nz9Convert using N multiple processes (default: %(default)s))r?   r9   r=   constr:   r;   z-oz--output-fileOUTPUTzsoutput filename for the converted UFO. By default fonts are modified in place. This only works with a single input.)r=   r:   r;   z-dz--output-dir	DIRECTORYz-output directory where to save converted UFOsz9Either ufoLib2 or defcon are required to run this script.WARNINGINFODEBUG)levelz2-o/--output-file can't be used with multile inputsz'%s' is not a directoryc                     g | ]?}t           j                            t           j                            |                    @S r   )r$   r   joinbasename).0p
output_dirs     r   
<listcomp>z_main.<locals>.<listcomp>   sF     
 
 
>?BGLLRW%5%5a%8%899
 
 
r   T)
dump_stats
max_err_emrA   all_quadraticzConverting curves compatiblyc                 ,    g | ]}t          |          S r   )r   )rP   infiles     r   rS   z_main.<locals>.<listcomp>   s     ???V  ???r   r   zRunning %d parallel processes)+argparseArgumentParseradd_argument	fontTools__version__floatadd_mutually_exclusive_groupintr   
parse_argsr   errorverboseloggingbasicConfiglenr6   output_filerR   r$   r   r-   mkdirisdirdictconversion_errorrA   mixedinterpolatabler   r   r   zipr   r   jobsminr   r!   r   r	   Poolstarmap)argsparsermode_parseroutput_parseroptionsrL   output_pathsr   ufosr    r   r   ro   funcpoolrR   s                  @r   _mainr|   C   s   $'222F
Iy?TUUU
4	     k'1EEE
K     ?      3	     5577KO	     llH  	 	 	 7799MF  	 	 	 <     %%GPQQQ? 	A		e$$$$
7?aG$7IJJJ 5'
w~~j)) 	AHZ    z** 	ALL2Z?@@@
 
 
 
CJ?
 
 
 
	 5+, vGO 4 44?Q&+!3&}6ee$	  F  F2333??w???d--f-- 
	7$'l$;$;   [K555 HH[))))HHJJJJ  ,/w+M+M 7 7'
K 7j+6667 7 ;B,:J:Js3w''666PQ!88-8888DKK7>>>'' G4T3w#E#EFFFG G G G G G G G G G G G G G G G G G ,/w+M+M F F'
K":{EEfEEEEF Fs   .*Q%%Q),Q)r#   )r$   rY   rd   r.   multiprocessingr	   
contextlibr   	functoolsr   r\   r    r   r   r   ufoLib2ImportErrordefcone	getLoggerr   r   r   r!   r*   r   r|   r   r   r   <module>r      s   				                        6 6 6 6 6 6 6 6
        #####    
	,	-	-  ! ! !
+ 
+ 
+ 
+  - - -CF CF CF CF CF CFs1   5 AA A AA
AAA