L i(ddlZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZddlmZdd lmZmZdd lmZdd lmZmZej2d Zed gzZdZdZddZedk(rej@eyy)N)StringIO)Path) configLogger)addOpenTypeFeaturesFromString)FeatureLibError)Lexer)makeOutputFileName)TTFont TTLibError)Parser)TABLES VoltToFeazfontTools.feaLibcmapc\|dtjvrytd|ddDryy)z9Check if the glyph name is valid according to FEA syntax.rTc3@K|]}|tjvywN)rCHAR_NAME_CONTINUATION_).0cs `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/voltLib/__main__.py z)invalid_fea_glyph_name..s Da1E11 1 DsNF)rCHAR_NAME_START_any)names rinvalid_fea_glyph_namers1 Awe,,, D48 DD cd}t|D]B\}}|dk(r|tjvr |d|zz }&|tjvr|dz }>||z }D|S)zFSanitize the glyph name to ensure it is valid according to FEA syntax.ra_) enumeraterrr)r sanitizedirs rsanitize_glyph_namer%siI$1 6au555 q I e33 3  I NI  rc  tjd}|jdddt|jddd d t|jd d d ddt|jdddtdd|jdddd|jddd|jddd d!d"#|jd$d%d&d|j |}gd'}t |tt|d(z |j)|jxs,tt|jxs |j}tjd*|d+|j}d,} t!|}d-|vr(t#|d-j$j'd.}ntj)d/y( |7|jstj)d0y(t!|j}|j-}d,}t/d1|Drfg}|D]N} t1| r0t3| } t5|t5|z} | | vr d2| z} | | vr |j7| P|j9|t;|j=} tjd3t?| |} | jA|jBd45} |j}|jLrP|jOd;}tjd<|d+tQ|d=5}|jS| d,d,d,tjd> tU|| ||jB?|jXrd@D] }||vs||= |rKd"d,l-}|j]}|j_|t!|}|j9|g|dA_0|j_|y,#t*$rY8wxYw#tD$ru}|jFrtI|jJd"d6d,}d7|d8}|r'|\}}}tj)|d9|d9|d:|ntj)|Yd,}~y(d,}~wwxYw#1swYDxYw#tV$r,}|jFrtj)|Yd,}~y(d,}~wwxYw)Bz4Build tables from a MS VOLT project into an OTF fontz*Use fontTools to compile MS VOLT projects.) descriptioninputINPUTz*Path to the input font/VTP file to process)metavarhelptypez-fz--font INPUT_FONTz/Path to the input font (if INPUT is a VTP file)z-oz--outputoutputOUTPUTzPath to the output font.)destr*r+r,z-tz--tables TABLE_TAG+z!Specify the table(s) to be built.)r*choicesnargsr+z-Fz--debug-feature-filez)Write the generated feature file to disk. store_true)r+actionz--shipz+Remove source VOLT tables from output font.z-vz --verbosez?Increase the logger verbosity. Multiple -v options are allowed.countr)r+r6defaultz-Tz --tracebackzshow traceback for exceptions.)WARNINGINFODEBUGr)levelzCompiling MS VOLT to ''NTSIVzutf-8z"TSIV" table is missingzPlease provide an input fontc32K|]}t|ywr)r)rns rrzmain..s 9 !! $ 9sr zConverting VTP data to FEAT)ignore_unsupported_settingslocation"z" is not supported:z: z.feazWriting FEA to 'wz Compiling FEA to OpenType tables)filenametables)r>TSISTSIPTSIDpost)1argparseArgumentParser add_argumentrSUPPORTED_TABLES parse_argsrminlenverboser.r fontr(loginfor rdatadecodeerrorr getGlyphOrderrrr%setappend setGlyphOrderr parserconvertrGNotImplementedError tracebackgetattrargsdebug_feature_file with_suffixopenwriterrshipioBytesIOsave extraNames)rcparseroptionslevels output_font file_or_pathrT glyphOrdertempGlyphOrderr@existingdoc converterfeaerBmessagepathlinecolumn fea_filenamefptagrifs rmainr,s  $ $@F  9      >      '      0    8    :    N    -  %G )Fvc#f+/7??CDE..D7<<87==9%KHH%k]! 45==L D l# T>#DL$5$5$<$*   $ $ &CHH )*#t$I DQ==L!!"..v6  #L>34 , $  HHSM HH /0 %  !>>  ||3 Cd{I   JJL ! ay :&"$V IIk_    >      166!9j$7aS*+ !) D$ IIavQvhb : ; IIg           !  sP:A O4P1R!R4 PP R A+Q==RR S"SS__main__r)!rLloggingsysrirpathlibr fontToolsrfontTools.feaLib.builderrfontTools.feaLib.errorrfontTools.feaLib.lexerrfontTools.misc.cliToolsr fontTools.ttLibr r fontTools.voltLib.parserr fontTools.voltLib.voltToFear r getLoggerrUrOrr%r__name__exitrrrs| "B2(6.+9g*+VH$ ^B z CHHTVr