fonttools/Documentation/robofabDocs/robofab.ufoLib.html
Erik van Blokland 3646055ea2 initial import
git-svn-id: http://svn.robofab.com/trunk@1 b5fa9d6c-a76f-4ffd-b3cb-f825fc41095c
2008-01-07 17:40:34 +00:00

169 lines
13 KiB
HTML

<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module robofab.ufoLib</title>
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="robofab.html"><font color="#ffffff">robofab</font></a>.ufoLib</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/code/projects/robofab/Lib/robofab/ufoLib.py">/code/projects/robofab/Lib/robofab/ufoLib.py</a></font></td></tr></table>
<p><tt>"<br>
A&nbsp;library&nbsp;for&nbsp;importing&nbsp;.ufo&nbsp;files&nbsp;and&nbsp;their&nbsp;descendants.<br>
This&nbsp;library&nbsp;works&nbsp;with&nbsp;robofab&nbsp;objects.&nbsp;Using&nbsp;the&nbsp;magic&nbsp;of&nbsp;the<br>
U.F.O.,&nbsp;common&nbsp;attributes&nbsp;are&nbsp;exported&nbsp;to&nbsp;and&nbsp;read&nbsp;from&nbsp;.plist&nbsp;files.<br>
&nbsp;<br>
It&nbsp;contains&nbsp;two&nbsp;very&nbsp;simple&nbsp;classes&nbsp;for&nbsp;reading&nbsp;and&nbsp;writing&nbsp;the<br>
various&nbsp;components&nbsp;of&nbsp;the&nbsp;.ufo.&nbsp;Currently,&nbsp;the&nbsp;.ufo&nbsp;supports&nbsp;the<br>
files&nbsp;detailed&nbsp;below.&nbsp;But,&nbsp;these&nbsp;files&nbsp;are&nbsp;not&nbsp;absolutely&nbsp;required.<br>
If&nbsp;the&nbsp;a&nbsp;file&nbsp;is&nbsp;not&nbsp;included&nbsp;in&nbsp;the&nbsp;.ufo,&nbsp;it&nbsp;is&nbsp;implied&nbsp;that&nbsp;the&nbsp;data<br>
of&nbsp;that&nbsp;file&nbsp;is&nbsp;empty.<br>
&nbsp;<br>
FontName.ufo/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metainfo.plist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;meta&nbsp;info&nbsp;about&nbsp;the&nbsp;.ufo&nbsp;bundle,&nbsp;most&nbsp;impartantly&nbsp;the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;format&nbsp;version&nbsp;number.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;glyphs/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contents.plist&nbsp;&nbsp;#&nbsp;a&nbsp;plist&nbsp;mapping&nbsp;all&nbsp;glyph&nbsp;names&nbsp;to&nbsp;file&nbsp;names<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.glif&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;a&nbsp;glif&nbsp;file<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...etc...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fontinfo.plist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;font&nbsp;names,&nbsp;versions,&nbsp;copyright,&nbsp;dimentions,&nbsp;etc.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kerning.plist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;kerning<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lib.plist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;user&nbsp;definable&nbsp;data<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;groups.plist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;glyph&nbsp;group&nbsp;definitions</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="robofab.ufoLib.html#UFOReader">UFOReader</a>
</font></dt><dt><font face="helvetica, arial"><a href="robofab.ufoLib.html#UFOWriter">UFOWriter</a>
</font></dt></dl>
</dd>
</dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="UFOReader">class <strong>UFOReader</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>read&nbsp;the&nbsp;various&nbsp;components&nbsp;of&nbsp;the&nbsp;.ufo<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="UFOReader-__init__"><strong>__init__</strong></a>(self, path)</dt></dl>
<dl><dt><a name="UFOReader-getCharacterMapping"><strong>getCharacterMapping</strong></a>(self)</dt><dd><tt>Return&nbsp;a&nbsp;dictionary&nbsp;that&nbsp;maps&nbsp;unicode&nbsp;values&nbsp;(ints)&nbsp;to<br>
lists&nbsp;of&nbsp;glyph&nbsp;names.</tt></dd></dl>
<dl><dt><a name="UFOReader-getGlyphSet"><strong>getGlyphSet</strong></a>(self)</dt><dd><tt>return&nbsp;the&nbsp;GlyphSet&nbsp;associated&nbsp;with&nbsp;the<br>
glyphs&nbsp;directory&nbsp;in&nbsp;the&nbsp;.ufo</tt></dd></dl>
<dl><dt><a name="UFOReader-readGroups"><strong>readGroups</strong></a>(self)</dt><dd><tt>read&nbsp;groups.plist.&nbsp;returns&nbsp;a&nbsp;dict&nbsp;that&nbsp;should<br>
be&nbsp;applied&nbsp;to&nbsp;a&nbsp;font.groups&nbsp;<a href="__builtin__.html#object">object</a>.</tt></dd></dl>
<dl><dt><a name="UFOReader-readInfo"><strong>readInfo</strong></a>(self, info)</dt><dd><tt>read&nbsp;info.plist.&nbsp;it&nbsp;requires&nbsp;a&nbsp;font.info&nbsp;<a href="__builtin__.html#object">object</a><br>
as&nbsp;an&nbsp;argument.&nbsp;this&nbsp;will&nbsp;write&nbsp;the&nbsp;attributes<br>
defined&nbsp;in&nbsp;the&nbsp;file&nbsp;into&nbsp;the&nbsp;info&nbsp;<a href="__builtin__.html#object">object</a>.</tt></dd></dl>
<dl><dt><a name="UFOReader-readKerning"><strong>readKerning</strong></a>(self)</dt><dd><tt>read&nbsp;kerning.plist.&nbsp;returns&nbsp;a&nbsp;dict&nbsp;that&nbsp;should<br>
be&nbsp;applied&nbsp;to&nbsp;a&nbsp;font.kerning&nbsp;<a href="__builtin__.html#object">object</a>.</tt></dd></dl>
<dl><dt><a name="UFOReader-readLib"><strong>readLib</strong></a>(self)</dt><dd><tt>read&nbsp;lib.plist.&nbsp;returns&nbsp;a&nbsp;dict&nbsp;that&nbsp;should<br>
be&nbsp;applied&nbsp;to&nbsp;a&nbsp;font.lib&nbsp;<a href="__builtin__.html#object">object</a>.</tt></dd></dl>
<dl><dt><a name="UFOReader-readMetaInfo"><strong>readMetaInfo</strong></a>(self)</dt><dd><tt>read&nbsp;metainfo.plist.&nbsp;mostly&nbsp;used<br>
for&nbsp;internal&nbsp;operations</tt></dd></dl>
<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>__dict__</strong> = &lt;dictproxy object at 0x1665bf0&gt;<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dl>
<dl><dt><strong>__weakref__</strong> = &lt;attribute '__weakref__' of 'UFOReader' objects&gt;<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;(if&nbsp;defined)</tt></dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="UFOWriter">class <strong>UFOWriter</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>write&nbsp;the&nbsp;various&nbsp;components&nbsp;of&nbsp;the&nbsp;.ufo<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="UFOWriter-__init__"><strong>__init__</strong></a>(self, path)</dt></dl>
<dl><dt><a name="UFOWriter-getGlyphSet"><strong>getGlyphSet</strong></a>(self, glyphNameToFileNameFunc<font color="#909090">=None</font>)</dt><dd><tt>return&nbsp;the&nbsp;GlyphSet&nbsp;associated&nbsp;with&nbsp;the<br>
glyphs&nbsp;directory&nbsp;in&nbsp;the&nbsp;.ufo</tt></dd></dl>
<dl><dt><a name="UFOWriter-makeGlyphPath"><strong>makeGlyphPath</strong></a>(self)</dt><dd><tt>make&nbsp;the&nbsp;glyphs&nbsp;directory&nbsp;in&nbsp;the&nbsp;.ufo<br>
returns&nbsp;the&nbsp;path&nbsp;of&nbsp;the&nbsp;directory&nbsp;created</tt></dd></dl>
<dl><dt><a name="UFOWriter-writeGroups"><strong>writeGroups</strong></a>(self, groups)</dt><dd><tt>write&nbsp;groups.plist.&nbsp;this&nbsp;method&nbsp;requires&nbsp;a<br>
dict&nbsp;of&nbsp;glyph&nbsp;groups&nbsp;as&nbsp;an&nbsp;argument.</tt></dd></dl>
<dl><dt><a name="UFOWriter-writeInfo"><strong>writeInfo</strong></a>(self, info)</dt><dd><tt>write&nbsp;info.plist.&nbsp;this&nbsp;method&nbsp;requires&nbsp;a<br>
font.info&nbsp;<a href="__builtin__.html#object">object</a>.&nbsp;attributes&nbsp;will&nbsp;be&nbsp;taken&nbsp;from<br>
the&nbsp;given&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;and&nbsp;written&nbsp;into&nbsp;the&nbsp;file</tt></dd></dl>
<dl><dt><a name="UFOWriter-writeKerning"><strong>writeKerning</strong></a>(self, kerning)</dt><dd><tt>write&nbsp;kerning.plist.&nbsp;this&nbsp;method&nbsp;requires&nbsp;a<br>
dict&nbsp;of&nbsp;kerning&nbsp;pairs&nbsp;as&nbsp;an&nbsp;argument</tt></dd></dl>
<dl><dt><a name="UFOWriter-writeLib"><strong>writeLib</strong></a>(self, libDict)</dt><dd><tt>write&nbsp;lib.plist.&nbsp;this&nbsp;method&nbsp;requires&nbsp;a<br>
lib&nbsp;dict&nbsp;as&nbsp;an&nbsp;argument</tt></dd></dl>
<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>__dict__</strong> = &lt;dictproxy object at 0x1669fb0&gt;<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dl>
<dl><dt><strong>__weakref__</strong> = &lt;attribute '__weakref__' of 'UFOWriter' objects&gt;<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;(if&nbsp;defined)</tt></dl>
<dl><dt><strong>fileCreator</strong> = 'org.robofab.ufoLib'</dl>
<dl><dt><strong>formatVersion</strong> = 1</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-StringIO"><strong>StringIO</strong></a>(...)</dt><dd><tt><a href="#-StringIO">StringIO</a>([s])&nbsp;--&nbsp;Return&nbsp;a&nbsp;StringIO-like&nbsp;stream&nbsp;for&nbsp;reading&nbsp;or&nbsp;writing</tt></dd></dl>
<dl><dt><a name="-makeUFOPath"><strong>makeUFOPath</strong></a>(fontPath)</dt><dd><tt>return&nbsp;a&nbsp;.ufo&nbsp;pathname&nbsp;based&nbsp;on&nbsp;a&nbsp;.vfb&nbsp;pathname</tt></dd></dl>
<dl><dt><a name="-writePlistAtomically"><strong>writePlistAtomically</strong></a>(obj, path)</dt><dd><tt>Write&nbsp;a&nbsp;plist&nbsp;for&nbsp;'obj'&nbsp;to&nbsp;'path'.&nbsp;Do&nbsp;this&nbsp;sort&nbsp;of&nbsp;atomically,<br>
making&nbsp;it&nbsp;harder&nbsp;to&nbsp;cause&nbsp;corrupt&nbsp;files,&nbsp;for&nbsp;example&nbsp;when&nbsp;writePlist<br>
encounters&nbsp;an&nbsp;error&nbsp;halfway&nbsp;during&nbsp;write.&nbsp;Also:&nbsp;don't&nbsp;write&nbsp;out&nbsp;the<br>
file&nbsp;if&nbsp;it&nbsp;would&nbsp;be&nbsp;identical&nbsp;to&nbsp;what's&nbsp;already&nbsp;there,&nbsp;meaning&nbsp;the<br>
modification&nbsp;date&nbsp;won't&nbsp;get&nbsp;stomped&nbsp;when&nbsp;writing&nbsp;the&nbsp;same&nbsp;data.</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>FONTINFO_FILENAME</strong> = 'fontinfo.plist'<br>
<strong>GLYPHS_DIRNAME</strong> = 'glyphs'<br>
<strong>GROUPS_FILENAME</strong> = 'groups.plist'<br>
<strong>KERNING_FILENAME</strong> = 'kerning.plist'<br>
<strong>LIB_FILENAME</strong> = 'lib.plist'<br>
<strong>METAINFO_FILENAME</strong> = 'metainfo.plist'<br>
<strong>READ_MODE</strong> = 'r'<br>
<strong>WRITE_MODE</strong> = 'w'<br>
<strong>fontInfoAttrs</strong> = ['familyName', 'styleName', 'fullName', 'fontName', 'menuName', 'fontStyle', 'note', 'versionMajor', 'versionMinor', 'year', 'copyright', 'notice', 'trademark', 'license', 'licenseURL', 'createdBy', 'designer', 'designerURL', 'vendorURL', 'unitsPerEm', ...]</td></tr></table>
</body></html>