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

90 lines
7.3 KiB
HTML

<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module sstruct</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>sstruct</strong></big></big> (version 1.2)</font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/code/fontTools/Lib/sstruct.py">/code/fontTools/Lib/sstruct.py</a></font></td></tr></table>
<p><tt>sstruct.py&nbsp;--&nbsp;SuperStruct<br>
&nbsp;<br>
Higher&nbsp;level&nbsp;layer&nbsp;on&nbsp;top&nbsp;of&nbsp;the&nbsp;struct&nbsp;module,&nbsp;enabling&nbsp;to&nbsp;<br>
bind&nbsp;names&nbsp;to&nbsp;struct&nbsp;elements.&nbsp;The&nbsp;interface&nbsp;is&nbsp;similar&nbsp;to&nbsp;<br>
struct,&nbsp;except&nbsp;the&nbsp;objects&nbsp;passed&nbsp;and&nbsp;returned&nbsp;are&nbsp;not&nbsp;tuples&nbsp;<br>
(or&nbsp;argument&nbsp;lists),&nbsp;but&nbsp;dictionaries&nbsp;or&nbsp;instances.&nbsp;<br>
&nbsp;<br>
Just&nbsp;like&nbsp;struct,&nbsp;we&nbsp;use&nbsp;format&nbsp;strings&nbsp;to&nbsp;describe&nbsp;a&nbsp;data&nbsp;<br>
structure,&nbsp;except&nbsp;we&nbsp;use&nbsp;one&nbsp;line&nbsp;per&nbsp;element.&nbsp;Lines&nbsp;are&nbsp;<br>
separated&nbsp;by&nbsp;newlines&nbsp;or&nbsp;semi-colons.&nbsp;Each&nbsp;line&nbsp;contains&nbsp;<br>
either&nbsp;one&nbsp;of&nbsp;the&nbsp;special&nbsp;struct&nbsp;characters&nbsp;('@',&nbsp;'=',&nbsp;'&lt;',&nbsp;<br>
'&gt;'&nbsp;or&nbsp;'!')&nbsp;or&nbsp;a&nbsp;'name:formatchar'&nbsp;combo&nbsp;(eg.&nbsp;'myFloat:f').&nbsp;<br>
Repetitions,&nbsp;like&nbsp;the&nbsp;struct&nbsp;module&nbsp;offers&nbsp;them&nbsp;are&nbsp;not&nbsp;useful&nbsp;<br>
in&nbsp;this&nbsp;context,&nbsp;except&nbsp;for&nbsp;fixed&nbsp;length&nbsp;strings&nbsp;&nbsp;(eg.&nbsp;'myInt:5h'&nbsp;<br>
is&nbsp;not&nbsp;allowed&nbsp;but&nbsp;'myString:5s'&nbsp;is).&nbsp;The&nbsp;'x'&nbsp;format&nbsp;character&nbsp;<br>
(pad&nbsp;byte)&nbsp;is&nbsp;treated&nbsp;as&nbsp;'special',&nbsp;since&nbsp;it&nbsp;is&nbsp;by&nbsp;definition&nbsp;<br>
anonymous.&nbsp;Extra&nbsp;whitespace&nbsp;is&nbsp;allowed&nbsp;everywhere.<br>
&nbsp;<br>
The&nbsp;sstruct&nbsp;module&nbsp;offers&nbsp;one&nbsp;feature&nbsp;that&nbsp;the&nbsp;"normal"&nbsp;struct<br>
module&nbsp;doesn't:&nbsp;support&nbsp;for&nbsp;fixed&nbsp;point&nbsp;numbers.&nbsp;These&nbsp;are&nbsp;spelled<br>
as&nbsp;"n.mF",&nbsp;where&nbsp;n&nbsp;is&nbsp;the&nbsp;number&nbsp;of&nbsp;bits&nbsp;before&nbsp;the&nbsp;point,&nbsp;and&nbsp;m<br>
the&nbsp;number&nbsp;of&nbsp;bits&nbsp;after&nbsp;the&nbsp;point.&nbsp;Fixed&nbsp;point&nbsp;numbers&nbsp;get&nbsp;<br>
converted&nbsp;to&nbsp;floats.<br>
&nbsp;<br>
<a href="#-pack">pack</a>(format,&nbsp;object):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'object'&nbsp;is&nbsp;either&nbsp;a&nbsp;dictionary&nbsp;or&nbsp;an&nbsp;instance&nbsp;(or&nbsp;actually<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anything&nbsp;that&nbsp;has&nbsp;a&nbsp;__dict__&nbsp;attribute).&nbsp;If&nbsp;it&nbsp;is&nbsp;a&nbsp;dictionary,&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;its&nbsp;keys&nbsp;are&nbsp;used&nbsp;for&nbsp;names.&nbsp;If&nbsp;it&nbsp;is&nbsp;an&nbsp;instance,&nbsp;it's&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attributes&nbsp;are&nbsp;used&nbsp;to&nbsp;grab&nbsp;struct&nbsp;elements&nbsp;from.&nbsp;Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;string&nbsp;containing&nbsp;the&nbsp;data.<br>
&nbsp;<br>
<a href="#-unpack">unpack</a>(format,&nbsp;data,&nbsp;object=None)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;'object'&nbsp;is&nbsp;omitted&nbsp;(or&nbsp;None),&nbsp;a&nbsp;new&nbsp;dictionary&nbsp;will&nbsp;be&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returned.&nbsp;If&nbsp;'object'&nbsp;is&nbsp;a&nbsp;dictionary,&nbsp;it&nbsp;will&nbsp;be&nbsp;used&nbsp;to&nbsp;add&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;elements&nbsp;to.&nbsp;If&nbsp;it&nbsp;is&nbsp;an&nbsp;instance&nbsp;(or&nbsp;in&nbsp;fact&nbsp;anything<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that&nbsp;has&nbsp;a&nbsp;__dict__&nbsp;attribute),&nbsp;an&nbsp;attribute&nbsp;will&nbsp;be&nbsp;added&nbsp;for&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;each&nbsp;struct&nbsp;element.&nbsp;In&nbsp;the&nbsp;latter&nbsp;two&nbsp;cases,&nbsp;'object'&nbsp;itself&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;returned.<br>
&nbsp;<br>
<a href="#-unpack2">unpack2</a>(format,&nbsp;data,&nbsp;object=None)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convenience&nbsp;function.&nbsp;Same&nbsp;as&nbsp;unpack,&nbsp;except&nbsp;data&nbsp;may&nbsp;be&nbsp;longer&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;needed.&nbsp;The&nbsp;returned&nbsp;value&nbsp;is&nbsp;a&nbsp;tuple:&nbsp;(object,&nbsp;leftoverdata).<br>
&nbsp;<br>
<a href="#-calcsize">calcsize</a>(format)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like&nbsp;struct.<a href="#-calcsize">calcsize</a>(),&nbsp;but&nbsp;uses&nbsp;our&nbsp;own&nbsp;format&nbsp;strings:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;returns&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;data&nbsp;in&nbsp;bytes.</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="re.html">re</a><br>
</td><td width="25%" valign=top><a href="struct.html">struct</a><br>
</td><td width="25%" valign=top><a href="types.html">types</a><br>
</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="#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="-calcsize"><strong>calcsize</strong></a>(format)</dt></dl>
<dl><dt><a name="-getformat"><strong>getformat</strong></a>(format)</dt></dl>
<dl><dt><a name="-pack"><strong>pack</strong></a>(format, object)</dt></dl>
<dl><dt><a name="-unpack"><strong>unpack</strong></a>(format, data, object<font color="#909090">=None</font>)</dt></dl>
<dl><dt><a name="-unpack2"><strong>unpack2</strong></a>(format, data, object<font color="#909090">=None</font>)</dt></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>__copyright__</strong> = 'Copyright 1998, Just van Rossum &lt;just@letterror.com&gt;'<br>
<strong>__version__</strong> = '1.2'<br>
<strong>error</strong> = 'sstruct.error'</td></tr></table>
</body></html>