source: sasview/dev/api/sas.data_util.html @ a462c6a

gh-pages
Last change on this file since a462c6a was a462c6a, checked in by ajj, 9 years ago

Rebuild to fix index and modules docs

  • Property mode set to 100644
File size: 130.9 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>sas.data_util package &mdash; SasView 3.0.0 documentation</title>
10   
11    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
12    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
13   
14    <script type="text/javascript">
15      var DOCUMENTATION_OPTIONS = {
16        URL_ROOT:    '../../',
17        VERSION:     '3.0.0',
18        COLLAPSE_INDEX: false,
19        FILE_SUFFIX: '.html',
20        HAS_SOURCE:  true
21      };
22    </script>
23    <script type="text/javascript" src="../../_static/jquery.js"></script>
24    <script type="text/javascript" src="../../_static/underscore.js"></script>
25    <script type="text/javascript" src="../../_static/doctools.js"></script>
26    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27    <link rel="top" title="SasView 3.0.0 documentation" href="../../index.html" />
28    <link rel="up" title="sas package" href="sas.html" />
29    <link rel="next" title="sas.dataloader package" href="sas.dataloader.html" />
30    <link rel="prev" title="sas.calculator package" href="sas.calculator.html" /> 
31  </head>
32  <body>
33    <div class="related">
34      <h3>Navigation</h3>
35      <ul>
36        <li class="right" style="margin-right: 10px">
37          <a href="../../genindex.html" title="General Index"
38             accesskey="I">index</a></li>
39        <li class="right" >
40          <a href="../../py-modindex.html" title="Python Module Index"
41             >modules</a> |</li>
42        <li class="right" >
43          <a href="sas.dataloader.html" title="sas.dataloader package"
44             accesskey="N">next</a> |</li>
45        <li class="right" >
46          <a href="sas.calculator.html" title="sas.calculator package"
47             accesskey="P">previous</a> |</li>
48        <li><a href="../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
49          <li><a href="../dev.html" >Developer Documentation</a> &raquo;</li>
50          <li><a href="modules.html" >lib.macosx-10.5-x86_64-2.7</a> &raquo;</li>
51          <li><a href="sas.html" accesskey="U">sas package</a> &raquo;</li> 
52      </ul>
53    </div> 
54
55    <div class="document">
56      <div class="documentwrapper">
57        <div class="bodywrapper">
58          <div class="body">
59           
60  <div class="section" id="sas-data-util-package">
61<h1>sas.data_util package</h1>
62<div class="section" id="submodules">
63<h2>Submodules</h2>
64</div>
65<div class="section" id="module-sas.data_util.calcthread">
66<span id="sas-data-util-calcthread-module"></span><h2>sas.data_util.calcthread module</h2>
67<dl class="class">
68<dt id="sas.data_util.calcthread.CalcCommandline">
69<em class="property">class </em><tt class="descclassname">sas.data_util.calcthread.</tt><tt class="descname">CalcCommandline</tt><big>(</big><em>n=20000</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcCommandline"><span class="viewcode-link">[source]</span></a></dt>
70<dd><p>Test method</p>
71<dl class="method">
72<dt id="sas.data_util.calcthread.CalcCommandline.complete">
73<tt class="descname">complete</tt><big>(</big><em>total=0.0</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcCommandline.complete"><span class="viewcode-link">[source]</span></a></dt>
74<dd></dd></dl>
75
76<dl class="method">
77<dt id="sas.data_util.calcthread.CalcCommandline.update">
78<tt class="descname">update</tt><big>(</big><em>i=0</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcCommandline.update"><span class="viewcode-link">[source]</span></a></dt>
79<dd></dd></dl>
80
81</dd></dl>
82
83<dl class="class">
84<dt id="sas.data_util.calcthread.CalcDemo">
85<em class="property">class </em><tt class="descclassname">sas.data_util.calcthread.</tt><tt class="descname">CalcDemo</tt><big>(</big><em>completefn=None</em>, <em>updatefn=None</em>, <em>yieldtime=0.01</em>, <em>worktime=0.01</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcDemo"><span class="viewcode-link">[source]</span></a></dt>
86<dd><p>Bases: <a class="reference internal" href="#sas.data_util.calcthread.CalcThread" title="sas.data_util.calcthread.CalcThread"><tt class="xref py py-class docutils literal"><span class="pre">sas.data_util.calcthread.CalcThread</span></tt></a></p>
87<p>Example of a calculation thread.</p>
88<dl class="method">
89<dt id="sas.data_util.calcthread.CalcDemo.compute">
90<tt class="descname">compute</tt><big>(</big><em>n</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcDemo.compute"><span class="viewcode-link">[source]</span></a></dt>
91<dd></dd></dl>
92
93</dd></dl>
94
95<dl class="class">
96<dt id="sas.data_util.calcthread.CalcThread">
97<em class="property">class </em><tt class="descclassname">sas.data_util.calcthread.</tt><tt class="descname">CalcThread</tt><big>(</big><em>completefn=None</em>, <em>updatefn=None</em>, <em>yieldtime=0.01</em>, <em>worktime=0.01</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread"><span class="viewcode-link">[source]</span></a></dt>
98<dd><p>Threaded calculation class.  Inherit from here and specialize
99the compute() method to perform the appropriate operations for the
100class.</p>
101<p>If you specialize the __init__ method be sure to call
102CalcThread.__init__, passing it the keyword arguments for
103yieldtime, worktime, update and complete.</p>
104<p>When defining the compute() method you need to include code which
105allows the GUI to run.  They are as follows:</p>
106<div class="highlight-python"><div class="highlight"><pre><span class="bp">self</span><span class="o">.</span><span class="n">isquit</span><span class="p">()</span>          <span class="c"># call frequently to check for interrupts</span>
107<span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kw</span><span class="o">=...</span><span class="p">)</span>    <span class="c"># call when the GUI could be updated</span>
108<span class="bp">self</span><span class="o">.</span><span class="n">complete</span><span class="p">(</span><span class="n">kw</span><span class="o">=...</span><span class="p">)</span>  <span class="c"># call before exiting compute()</span>
109</pre></div>
110</div>
111<p>The update() and complete() calls accept field=value keyword
112arguments which are passed to the called function.  complete()
113should be called before exiting the GUI function.  A KeyboardInterrupt
114event is triggered if the GUI signals that the computation should
115be halted.</p>
116<p>The following documentation should be included in the description
117of the derived class.</p>
118<p>The user of this class will call the following:</p>
119<div class="highlight-python"><div class="highlight"><pre><span class="n">thread</span> <span class="o">=</span> <span class="n">Work</span><span class="p">(</span><span class="o">...</span><span class="p">,</span><span class="n">kw</span><span class="o">=...</span><span class="p">)</span>  <span class="c"># prepare the work thread.</span>
120<span class="n">thread</span><span class="o">.</span><span class="n">queue</span><span class="p">(</span><span class="o">...</span><span class="p">,</span><span class="n">kw</span><span class="o">=...</span><span class="p">)</span>   <span class="c"># queue a work unit</span>
121<span class="n">thread</span><span class="o">.</span><span class="n">requeue</span><span class="p">(</span><span class="o">...</span><span class="p">,</span><span class="n">kw</span><span class="o">=...</span><span class="p">)</span> <span class="c"># replace work unit on the end of queue</span>
122<span class="n">thread</span><span class="o">.</span><span class="n">reset</span><span class="p">(</span><span class="o">...</span><span class="p">,</span><span class="n">kw</span><span class="o">=...</span><span class="p">)</span>   <span class="c"># reset the queue to the given work unit</span>
123<span class="n">thread</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>              <span class="c"># clear the queue and halt</span>
124<span class="n">thread</span><span class="o">.</span><span class="n">interrupt</span><span class="p">()</span>         <span class="c"># halt the current work unit but continue</span>
125<span class="n">thread</span><span class="o">.</span><span class="n">ready</span><span class="p">(</span><span class="n">delay</span><span class="o">=</span><span class="mf">0.</span><span class="p">)</span>     <span class="c"># request an update signal after delay</span>
126<span class="n">thread</span><span class="o">.</span><span class="n">isrunning</span><span class="p">()</span>         <span class="c"># returns true if compute() is running</span>
127</pre></div>
128</div>
129<p>Use queue() when all work must be done.  Use requeue() when intermediate
130work items don&#8217;t need to be done (e.g., in response to a mouse move
131event).  Use reset() when the current item doesn&#8217;t need to be completed
132before the new event (e.g., in response to a mouse release event).  Use
133stop() to halt the current and pending computations (e.g., in response to
134a stop button).</p>
135<p>The methods queue(), requeue() and reset() are proxies for the compute()
136method in the subclass.  Look there for a description of the arguments.
137The compute() method can be called directly to run the computation in
138the main thread, but it should not be called if isrunning() returns true.</p>
139<p>The constructor accepts additional keywords yieldtime=0.01 and
140worktime=0.01 which determine the cooperative multitasking
141behaviour.  Yield time is the duration of the sleep period
142required to give other processes a chance to run.  Work time
143is the duration between sleep periods.</p>
144<p>Notifying the GUI thread of work in progress and work complete
145is done with updatefn=updatefn and completefn=completefn arguments
146to the constructor.  Details of the parameters to the functions
147depend on the particular calculation class, but they will all
148be passed as keyword arguments.  Details of how the functions
149should be implemented vary from framework to framework.</p>
150<p>For wx, something like the following is needed:</p>
151<div class="highlight-python"><div class="highlight"><pre>import wx, wx.lib.newevent
152(CalcCompleteEvent, EVT_CALC_COMPLETE) = wx.lib.newevent.NewEvent()
153
154# methods in the main window class of your application
155def __init__():
156    ...
157    # Prepare the calculation in the GUI thread.
158    self.work = Work(completefn=self.CalcComplete)
159    self.Bind(EVT_CALC_COMPLETE, self.OnCalcComplete)
160    ...
161    # Bind work queue to a menu event.
162    self.Bind(wx.EVT_MENU, self.OnCalcStart, id=idCALCSTART)
163    ...
164
165def OnCalcStart(self,event):
166    # Start the work thread from the GUI thread.
167    self.work.queue(...work unit parameters...)
168
169def CalcComplete(self,**kwargs):
170    # Generate CalcComplete event in the calculation thread.
171    # kwargs contains field1, field2, etc. as defined by
172    # the Work thread class.
173    event = CalcCompleteEvent(**kwargs)
174    wx.PostEvent(self, event)
175
176def OnCalcComplete(self,event):
177    # Process CalcComplete event in GUI thread.
178    # Use values from event.field1, event.field2 etc. as
179    # defined by the Work thread class to show the results.
180    ...
181</pre></div>
182</div>
183<dl class="method">
184<dt id="sas.data_util.calcthread.CalcThread.complete">
185<tt class="descname">complete</tt><big>(</big><em>**kwargs</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.complete"><span class="viewcode-link">[source]</span></a></dt>
186<dd><p>Update the GUI with the completed results from a work unit.</p>
187</dd></dl>
188
189<dl class="method">
190<dt id="sas.data_util.calcthread.CalcThread.compute">
191<tt class="descname">compute</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.compute"><span class="viewcode-link">[source]</span></a></dt>
192<dd><p>Perform a work unit.  The subclass will provide details of
193the arguments.</p>
194</dd></dl>
195
196<dl class="method">
197<dt id="sas.data_util.calcthread.CalcThread.interrupt">
198<tt class="descname">interrupt</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.interrupt"><span class="viewcode-link">[source]</span></a></dt>
199<dd><p>Stop the current work item.  To clear the work queue as
200well call the stop() method.</p>
201</dd></dl>
202
203<dl class="method">
204<dt id="sas.data_util.calcthread.CalcThread.isquit">
205<tt class="descname">isquit</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.isquit"><span class="viewcode-link">[source]</span></a></dt>
206<dd><p>Check for interrupts.  Should be called frequently to
207provide user responsiveness.  Also yields to other running
208threads, which is required for good performance on OS X.</p>
209</dd></dl>
210
211<dl class="method">
212<dt id="sas.data_util.calcthread.CalcThread.isrunning">
213<tt class="descname">isrunning</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.isrunning"><span class="viewcode-link">[source]</span></a></dt>
214<dd></dd></dl>
215
216<dl class="method">
217<dt id="sas.data_util.calcthread.CalcThread.queue">
218<tt class="descname">queue</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.queue"><span class="viewcode-link">[source]</span></a></dt>
219<dd><p>Add a work unit to the end of the queue.  See the compute()
220method for details of the arguments to the work unit.</p>
221</dd></dl>
222
223<dl class="method">
224<dt id="sas.data_util.calcthread.CalcThread.ready">
225<tt class="descname">ready</tt><big>(</big><em>delay=0.0</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.ready"><span class="viewcode-link">[source]</span></a></dt>
226<dd><p>Ready for another update after delay=t seconds.  Call
227this for threads which can show intermediate results from
228long calculations.</p>
229</dd></dl>
230
231<dl class="method">
232<dt id="sas.data_util.calcthread.CalcThread.requeue">
233<tt class="descname">requeue</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.requeue"><span class="viewcode-link">[source]</span></a></dt>
234<dd><p>Replace the work unit on the end of the queue.  See the compute()
235method for details of the arguments to the work unit.</p>
236</dd></dl>
237
238<dl class="method">
239<dt id="sas.data_util.calcthread.CalcThread.reset">
240<tt class="descname">reset</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.reset"><span class="viewcode-link">[source]</span></a></dt>
241<dd><p>Clear the queue and start a new work unit.  See the compute()
242method for details of the arguments to the work unit.</p>
243</dd></dl>
244
245<dl class="method">
246<dt id="sas.data_util.calcthread.CalcThread.stop">
247<tt class="descname">stop</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.stop"><span class="viewcode-link">[source]</span></a></dt>
248<dd><p>Clear the queue and stop the thread.  New items may be
249queued after stop.  To stop just the current work item, and
250continue the rest of the queue call the interrupt method</p>
251</dd></dl>
252
253<dl class="method">
254<dt id="sas.data_util.calcthread.CalcThread.update">
255<tt class="descname">update</tt><big>(</big><em>**kwargs</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#CalcThread.update"><span class="viewcode-link">[source]</span></a></dt>
256<dd><p>Update GUI with the lastest results from the current work unit.</p>
257</dd></dl>
258
259</dd></dl>
260
261<dl class="function">
262<dt id="sas.data_util.calcthread.clock">
263<tt class="descclassname">sas.data_util.calcthread.</tt><tt class="descname">clock</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#clock"><span class="viewcode-link">[source]</span></a></dt>
264<dd></dd></dl>
265
266<dl class="function">
267<dt id="sas.data_util.calcthread.sleep">
268<tt class="descclassname">sas.data_util.calcthread.</tt><tt class="descname">sleep</tt><big>(</big><em>t</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/calcthread.html#sleep"><span class="viewcode-link">[source]</span></a></dt>
269<dd></dd></dl>
270
271</div>
272<div class="section" id="module-sas.data_util.err1d">
273<span id="sas-data-util-err1d-module"></span><h2>sas.data_util.err1d module</h2>
274<p>Error propogation algorithms for simple arithmetic</p>
275<p>Warning: like the underlying numpy library, the inplace operations
276may return values of the wrong type if some of the arguments are
277integers, so be sure to create them with floating point inputs.</p>
278<dl class="function">
279<dt id="sas.data_util.err1d.add">
280<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">add</tt><big>(</big><em>X</em>, <em>varX</em>, <em>Y</em>, <em>varY</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#add"><span class="viewcode-link">[source]</span></a></dt>
281<dd><p>Addition with error propagation</p>
282</dd></dl>
283
284<dl class="function">
285<dt id="sas.data_util.err1d.add_inplace">
286<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">add_inplace</tt><big>(</big><em>X</em>, <em>varX</em>, <em>Y</em>, <em>varY</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#add_inplace"><span class="viewcode-link">[source]</span></a></dt>
287<dd><p>In-place addition with error propagation</p>
288</dd></dl>
289
290<dl class="function">
291<dt id="sas.data_util.err1d.div">
292<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">div</tt><big>(</big><em>X</em>, <em>varX</em>, <em>Y</em>, <em>varY</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#div"><span class="viewcode-link">[source]</span></a></dt>
293<dd><p>Division with error propagation</p>
294</dd></dl>
295
296<dl class="function">
297<dt id="sas.data_util.err1d.div_inplace">
298<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">div_inplace</tt><big>(</big><em>X</em>, <em>varX</em>, <em>Y</em>, <em>varY</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#div_inplace"><span class="viewcode-link">[source]</span></a></dt>
299<dd><p>In-place division with error propagation</p>
300</dd></dl>
301
302<dl class="function">
303<dt id="sas.data_util.err1d.exp">
304<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">exp</tt><big>(</big><em>X</em>, <em>varX</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#exp"><span class="viewcode-link">[source]</span></a></dt>
305<dd><p>Exponentiation with error propagation</p>
306</dd></dl>
307
308<dl class="function">
309<dt id="sas.data_util.err1d.log">
310<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">log</tt><big>(</big><em>X</em>, <em>varX</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#log"><span class="viewcode-link">[source]</span></a></dt>
311<dd><p>Logarithm with error propagation</p>
312</dd></dl>
313
314<dl class="function">
315<dt id="sas.data_util.err1d.mul">
316<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">mul</tt><big>(</big><em>X</em>, <em>varX</em>, <em>Y</em>, <em>varY</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#mul"><span class="viewcode-link">[source]</span></a></dt>
317<dd><p>Multiplication with error propagation</p>
318</dd></dl>
319
320<dl class="function">
321<dt id="sas.data_util.err1d.mul_inplace">
322<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">mul_inplace</tt><big>(</big><em>X</em>, <em>varX</em>, <em>Y</em>, <em>varY</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#mul_inplace"><span class="viewcode-link">[source]</span></a></dt>
323<dd><p>In-place multiplication with error propagation</p>
324</dd></dl>
325
326<dl class="function">
327<dt id="sas.data_util.err1d.pow">
328<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">pow</tt><big>(</big><em>X</em>, <em>varX</em>, <em>n</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#pow"><span class="viewcode-link">[source]</span></a></dt>
329<dd><p>X**n with error propagation</p>
330</dd></dl>
331
332<dl class="function">
333<dt id="sas.data_util.err1d.pow_inplace">
334<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">pow_inplace</tt><big>(</big><em>X</em>, <em>varX</em>, <em>n</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#pow_inplace"><span class="viewcode-link">[source]</span></a></dt>
335<dd><p>In-place X**n with error propagation</p>
336</dd></dl>
337
338<dl class="function">
339<dt id="sas.data_util.err1d.sub">
340<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">sub</tt><big>(</big><em>X</em>, <em>varX</em>, <em>Y</em>, <em>varY</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#sub"><span class="viewcode-link">[source]</span></a></dt>
341<dd><p>Subtraction with error propagation</p>
342</dd></dl>
343
344<dl class="function">
345<dt id="sas.data_util.err1d.sub_inplace">
346<tt class="descclassname">sas.data_util.err1d.</tt><tt class="descname">sub_inplace</tt><big>(</big><em>X</em>, <em>varX</em>, <em>Y</em>, <em>varY</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/err1d.html#sub_inplace"><span class="viewcode-link">[source]</span></a></dt>
347<dd><p>In-place subtraction with error propagation</p>
348</dd></dl>
349
350</div>
351<div class="section" id="module-sas.data_util.formatnum">
352<span id="sas-data-util-formatnum-module"></span><h2>sas.data_util.formatnum module</h2>
353<p>Format values and uncertainties nicely for printing.</p>
354<p>:func:<a href="#id1"><span class="problematic" id="id2">`</span></a>format_uncertainty_pm`(v,err) produces the expanded format v +/- err.</p>
355<p>:func:<a href="#id3"><span class="problematic" id="id4">`</span></a>format_uncertainty_compact`(v,err) produces the compact format v(##),
356where the number in parenthesis is the uncertainty in the last two digits of v.</p>
357<p>:func:<a href="#id5"><span class="problematic" id="id6">`</span></a>format_uncertainty`(v,err) uses the compact format by default, but this
358can be changed to use the expanded +/- format by setting
359format_uncertainty.compact to False.</p>
360<p>The formatted string uses only the number of digits warranted by
361the uncertainty in the measurement.</p>
362<p>If the uncertainty is 0 or not otherwise provided, the simple
363%g floating point format option is used.</p>
364<p>Infinite and indefinite numbers are represented as inf and NaN.</p>
365<p>Example:</p>
366<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">v</span><span class="p">,</span><span class="n">dv</span> <span class="o">=</span> <span class="mf">757.2356</span><span class="p">,</span><span class="mf">0.01032</span>
367<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">format_uncertainty_pm</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">dv</span><span class="p">)</span>
368<span class="go">757.236 +/- 0.010</span>
369<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">format_uncertainty_compact</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">dv</span><span class="p">)</span>
370<span class="go">757.236(10)</span>
371<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">format_uncertainty</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">dv</span><span class="p">)</span>
372<span class="go">757.236(10)</span>
373<span class="gp">&gt;&gt;&gt; </span><span class="n">format_uncertainty</span><span class="o">.</span><span class="n">compact</span> <span class="o">=</span> <span class="bp">False</span>
374<span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="n">format_uncertainty</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">dv</span><span class="p">)</span>
375<span class="go">757.236 +/- 0.010</span>
376</pre></div>
377</div>
378<p>UncertaintyFormatter() returns a private formatter with its own
379formatter.compact flag.</p>
380<dl class="function">
381<dt id="sas.data_util.formatnum.format_uncertainty_pm">
382<tt class="descclassname">sas.data_util.formatnum.</tt><tt class="descname">format_uncertainty_pm</tt><big>(</big><em>value</em>, <em>uncertainty</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/formatnum.html#format_uncertainty_pm"><span class="viewcode-link">[source]</span></a></dt>
383<dd><p>Given <em>value</em> v and <em>uncertainty</em> dv, return a string v +/- dv.</p>
384</dd></dl>
385
386<dl class="function">
387<dt id="sas.data_util.formatnum.format_uncertainty_compact">
388<tt class="descclassname">sas.data_util.formatnum.</tt><tt class="descname">format_uncertainty_compact</tt><big>(</big><em>value</em>, <em>uncertainty</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/formatnum.html#format_uncertainty_compact"><span class="viewcode-link">[source]</span></a></dt>
389<dd><p>Given <em>value</em> v and <em>uncertainty</em> dv, return the compact
390representation v(##), where ## are the first two digits of
391the uncertainty.</p>
392</dd></dl>
393
394</div>
395<div class="section" id="module-sas.data_util.nxsunit">
396<span id="sas-data-util-nxsunit-module"></span><h2>sas.data_util.nxsunit module</h2>
397<p>Define unit conversion support for NeXus style units.</p>
398<p>The unit format is somewhat complicated.  There are variant spellings
399and incorrect capitalization to worry about, as well as forms such as
400&#8220;mili*metre&#8221; and &#8220;1e-7 seconds&#8221;.</p>
401<p>This is a minimal implementation of units including only what I happen to
402need now.  It does not support the complete dimensional analysis provided
403by the package udunits on which NeXus is based, or even the units used
404in the NeXus definition files.</p>
405<p>Unlike other units packages, this package does not carry the units along with
406the value but merely provides a conversion function for transforming values.</p>
407<p>Usage example:</p>
408<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">nxsunit</span>
409<span class="n">u</span> <span class="o">=</span> <span class="n">nxsunit</span><span class="o">.</span><span class="n">Converter</span><span class="p">(</span><span class="s">&#39;mili*metre&#39;</span><span class="p">)</span>  <span class="c"># Units stored in mm</span>
410<span class="n">v</span> <span class="o">=</span> <span class="n">u</span><span class="p">(</span><span class="mi">3000</span><span class="p">,</span><span class="s">&#39;m&#39;</span><span class="p">)</span>  <span class="c"># Convert the value 3000 mm into meters</span>
411</pre></div>
412</div>
413<p>NeXus example:</p>
414<div class="highlight-python"><div class="highlight"><pre># Load sample orientation in radians regardless of how it is stored.
415# 1. Open the path
416file.openpath(&#39;/entry1/sample/sample_orientation&#39;)
417# 2. scan the attributes, retrieving &#39;units&#39;
418units = [for attr,value in file.attrs() if attr == &#39;units&#39;]
419# 3. set up the converter (assumes that units actually exists)
420u = nxsunit.Converter(units[0])
421# 4. read the data and convert to the correct units
422v = u(file.read(),&#39;radians&#39;)
423</pre></div>
424</div>
425<p>This is a standalone module, not relying on either DANSE or NeXus, and
426can be used for other unit conversion tasks.</p>
427<p>Note: minutes are used for angle and seconds are used for time.  We
428cannot tell what the correct interpretation is without knowing something
429about the fields themselves.  If this becomes an issue, we will need to
430allow the application to set the dimension for the unit rather than
431inferring the dimension from an example unit.</p>
432<dl class="class">
433<dt id="sas.data_util.nxsunit.Converter">
434<em class="property">class </em><tt class="descclassname">sas.data_util.nxsunit.</tt><tt class="descname">Converter</tt><big>(</big><em>name</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/nxsunit.html#Converter"><span class="viewcode-link">[source]</span></a></dt>
435<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
436<p>Unit converter for NeXus style units.</p>
437<dl class="attribute">
438<dt id="sas.data_util.nxsunit.Converter.dims">
439<tt class="descname">dims</tt><em class="property"> = [{'kilometre': 1000.0, 'centi*Metre': 0.01, 'mili*meter': 0.001, 'gigameter': 1000000000.0, 'meter': 1, 'milli*meter': 0.001, 'kiloMetres': 1000.0, 'centiMeters': 0.01, 'picometers': 1e-12, 'centimeter': 0.01, 'picometre': 1e-12, 'centiMetre': 0.01, 'picoMeter': 1e-12, 'teraMetres': 1000000000000.0, 'kiloMetre': 1000.0, 'nanometre': 1e-09, 'pico*meter': 1e-12, 'nanoMeters': 1e-09, 'centi*metre': 0.01, 'mili*Meter': 0.001, 'micrometers': 1e-06, 'micron': 1e-06, 'picoMetre': 1e-12, 'centimetre': 0.01, 'micrometre': 1e-06, 'dm': 0.1, 'pico*Meter': 1e-12, 'miliMeter': 0.001, 'kilo*metre': 1000.0, 'gigaMeters': 1000000000.0, 'petaMeters': 1000000000000000.0, 'kilometres': 1000.0, 'megametre': 1000000.0, 'milli*metre': 0.001, 'megaMeters': 1000000.0, 'deci*Meter': 0.1, 'milimeter': 0.001, 'micro*Metre': 1e-06, 'microMeter': 1e-06, 'teraMeters': 1000000000000.0, 'kilo*meter': 1000.0, 'deciMeter': 0.1, 'millimeters': 0.001, 'femtometer': 1e-15, 'Gm': 1000000000.0, 'deci*metre': 0.1, 'femtometre': 1e-15, 'Angstrom': 1e-10, 'petametre': 1000000000000000.0, 'giga*metre': 1000000000.0, 'nanometers': 1e-09, 'deciMetre': 0.1, 'microMeters': 1e-06, 'metres': 1, 'kilo*Meter': 1000.0, 'meters': 1, 'gigametres': 1000000000.0, 'nanometer': 1e-09, 'terametre': 1000000000000.0, 'Pm': 1000000000000000.0, 'petameter': 1000000000000000.0, 'centi*Meter': 0.01, 'decimetre': 0.1, 'femto*metre': 1e-15, 'gigameters': 1000000000.0, 'decimeters': 0.1, 'kilometer': 1000.0, 'petameters': 1000000000000000.0, 'femto*meter': 1e-15, 'microMetre': 1e-06, 'centi*meter': 0.01, 'Mm': 1000000.0, 'megametres': 1000000.0, 'kiloMeter': 1000.0, 'mega*meter': 1000000.0, 'kilometers': 1000.0, 'nanoMetres': 1e-09, 'peta*Metre': 1000000000000000.0, 'megameter': 1000000.0, 'mili*metre': 0.001, 'tera*metre': 1000000000000.0, 'kilo*Metre': 1000.0, 'gigametre': 1000000000.0, 'metre': 1, 'Angstroms': 1e-10, 'Meters': 1, 'femtoMetres': 1e-15, 'peta*metre': 1000000000000000.0, 'micro*Meter': 1e-06, 'centiMeter': 0.01, 'picometer': 1e-12, 'millimetres': 0.001, 'terametres': 1000000000000.0, 'milliMetre': 0.001, 'cm': 0.01, 'microMetres': 1e-06, 'gigaMetre': 1000000000.0, 'milimetres': 0.001, 'tera*meter': 1000000000000.0, 'deciMeters': 0.1, 'nano*meter': 1e-09, 'milimetre': 0.001, 'megaMetres': 1000000.0, 'millimetre': 0.001, 'gigaMeter': 1000000000.0, 'nano*Meter': 1e-09, 'peta*Meter': 1000000000000000.0, 'nanometres': 1e-09, 'teraMetre': 1000000000000.0, 'giga*Meter': 1000000000.0, 'pm': 1e-12, 'petaMetres': 1000000000000000.0, 'milli*Metre': 0.001, 'centiMetres': 0.01, 'picometres': 1e-12, 'Metres': 1, 'deci*meter': 0.1, 'micro*metre': 1e-06, 'tera*Meter': 1000000000000.0, 'femtoMeters': 1e-15, 'deciMetres': 0.1, 'peta*meter': 1000000000000000.0, 'femtometres': 1e-15, 'gigaMetres': 1000000000.0, 'milliMetres': 0.001, 'giga*Metre': 1000000000.0, 'microns': 1e-06, 'Ang': 1e-10, 'mega*metre': 1000000.0, 'mm': 0.001, 'miliMetres': 0.001, 'um': 1e-06, 'terameter': 1000000000000.0, 'kiloMeters': 1000.0, 'miliMeters': 0.001, 'megaMetre': 1000000.0, 'pico*metre': 1e-12, 'mega*Metre': 1000000.0, 'femtoMetre': 1e-15, 'micrometer': 1e-06, 'decimeter': 0.1, 'Tm': 1000000000000.0, 'teraMeter': 1000000000000.0, 'km': 1000.0, 'femtoMeter': 1e-15, 'mili*Metre': 0.001, 'petaMetre': 1000000000000000.0, 'petametres': 1000000000000000.0, 'nm': 1e-09, 'pico*Metre': 1e-12, 'micrometres': 1e-06, 'deci*Metre': 0.1, 'femtometers': 1e-15, 'milliMeter': 0.001, 'miliMetre': 0.001, 'centimeters': 0.01, 'picoMeters': 1e-12, 'nanoMeter': 1e-09, 'A': 1e-10, 'petaMeter': 1000000000000000.0, 'megameters': 1000000.0, 'nano*Metre': 1e-09, 'femto*Metre': 1e-15, 'Metre': 1, 'terameters': 1000000000000.0, 'millimeter': 0.001, 'nanoMetre': 1e-09, 'milliMeters': 0.001, 'femto*Meter': 1e-15, 'micro*meter': 1e-06, 'fm': 1e-15, 'milimeters': 0.001, 'centimetres': 0.01, 'picoMetres': 1e-12, 'megaMeter': 1000000.0, 'nano*metre': 1e-09, 'm': 1, 'Meter': 1, 'milli*Meter': 0.001, 'decimetres': 0.1, 'mega*Meter': 1000000.0, 'tera*Metre': 1000000000000.0, 'giga*meter': 1000000000.0}, {'nanoseconds': 1e-09, 'deciSeconds': 0.1, 'femtoSeconds': 1e-15, 'kiloseconds': 1000.0, 'millisecond': 0.001, 'centi*second': 0.01, 'nanoSeconds': 1e-09, 'day': 86400, 'teraseconds': 1000000000000.0, 'kiloSeconds': 1000.0, 'weeks': 604800, 'kilo*second': 1000.0, 'peta*second': 1000000000000000.0, 'nanoSecond': 1e-09, 'decisecond': 0.1, 'centiSecond': 0.01, 'picosecond': 1e-12, 'ds': 0.1, 'petaSecond': 1000000000000000.0, 'mega*second': 1000000.0, 'Gs': 1000000000.0, 'megaSeconds': 1000000.0, 'mili*Second': 0.001, 'gigaseconds': 1000000000.0, 'Ps': 1000000000000000.0, 'teraSecond': 1000000000000.0, 'deci*Second': 0.1, 'giga*second': 1000000000.0, 'second': 1, 'nano*Second': 1e-09, 'gigaSeconds': 1000000000.0, 'centiSeconds': 0.01, 'picoseconds': 1e-12, 'Seconds': 1, 'milli*Second': 0.001, 'deciSecond': 0.1, 'centi*Second': 0.01, 'petasecond': 1000000000000000.0, 'ps': 1e-12, 'seconds': 1, 'hours': 3600, 'Ms': 1000000.0, 'mili*second': 0.001, 'kilo*Second': 1000.0, 'days': 86400, 'terasecond': 1000000000000.0, 'microSecond': 1e-06, 'giga*Second': 1000000000.0, 's': 1, 'femtoseconds': 1e-15, 'nano*second': 1e-09, 'kilosecond': 1000.0, 'cs': 0.01, 'miliSecond': 0.001, 'milliSeconds': 0.001, 'kiloSecond': 1000.0, 'femto*Second': 1e-15, 'deciseconds': 0.1, 'pico*second': 1e-12, 'milliseconds': 0.001, 'gigaSecond': 1000000000.0, 'femtosecond': 1e-15, 'megaseconds': 1000000.0, 'teraSeconds': 1000000000000.0, 'mega*Second': 1000000.0, 'petaseconds': 1000000000000000.0, 'hour': 3600, 'milli*second': 0.001, 'us': 1e-06, 'ms': 0.001, 'milliSecond': 0.001, 'miliSeconds': 0.001, 'petaSeconds': 1000000000000000.0, 'megaSecond': 1000000.0, 'Ts': 1000000000000.0, 'femto*second': 1e-15, 'tera*Second': 1000000000000.0, 'micro*Second': 1e-06, 'miliseconds': 0.001, 'peta*Second': 1000000000000000.0, 'gigasecond': 1000000000.0, 'nanosecond': 1e-09, 'milisecond': 0.001, 'ns': 1e-09, 'week': 604800, 'centiseconds': 0.01, 'fs': 1e-15, 'picoSeconds': 1e-12, 'microsecond': 1e-06, 'microSeconds': 1e-06, 'pico*Second': 1e-12, 'femtoSecond': 1e-15, 'deci*second': 0.1, 'megasecond': 1000000.0, 'ks': 1000.0, 'Second': 1, 'tera*second': 1000000000000.0, 'centisecond': 0.01, 'picoSecond': 1e-12, 'micro*second': 1e-06, 'microseconds': 1e-06}, {'arcminute': 0.016666666666666666, 'rad': 57.29577951308232, 'arcsec': 0.0002777777777777778, 'degree': 1, 'arcminutes': 0.016666666666666666, 'radians': 57.29577951308232, 'arcsecond': 0.0002777777777777778, 'arcmin': 0.016666666666666666, 'degrees': 1, 'radian': 57.29577951308232, 'deg': 1, 'minutes': 0.016666666666666666, 'minute': 0.016666666666666666, 'arcseconds': 0.0002777777777777778}, {'pico*hertz': 1e-12, 'mili*Hertz': 0.001, 'fHz': 1e-15, 'nanoHertzs': 1e-09, 'kiloHertzs': 1000.0, 'milli*Hertz': 0.001, 'pico*Hertz': 1e-12, 'miliHertz': 0.001, 'GHz': 1000000000.0, 'hertzs': 1, 'centiHertzs': 0.01, 'picohertzs': 1e-12, 'petahertz': 1000000000000000.0, 'mega*hertz': 1000000.0, 'microHertzs': 1e-06, 'PHz': 1000000000000000.0, 'teraHertzs': 1000000000000.0, 'dHz': 0.1, 'megaHertzs': 1000000.0, 'THz': 1000000000000.0, 'petaHertz': 1000000000000000.0, 'mega*Hertz': 1000000.0, 'centihertz': 0.01, 'kilo*Hertz': 1000.0, 'picoHertz': 1e-12, 'miliHertzs': 0.001, 'femto*hertz': 1e-15, 'petaHertzs': 1000000000000000.0, 'nanohertzs': 1e-09, 'centi*Hertz': 0.01, 'nano*hertz': 1e-09, 'giga*Hertz': 1000000000.0, 'peta*Hertz': 1000000000000000.0, 'kilo*hertz': 1000.0, 'Hz': 1, 'centi*hertz': 0.01, 'nano*Hertz': 1e-09, 'megaHertz': 1000000.0, 'decihertzs': 0.1, 'microhertzs': 1e-06, 'terahertzs': 1000000000000.0, 'megahertzs': 1000000.0, 'tera*Hertz': 1000000000000.0, 'terahertz': 1000000000000.0, 'gigahertz': 1000000000.0, 'milliHertz': 0.001, 'milliHertzs': 0.001, 'kHz': 1000.0, 'MHz': 1000000.0, 'decihertz': 0.1, 'gigaHertz': 1000000000.0, 'kiloHertz': 1000.0, 'deci*Hertz': 0.1, 'deciHertzs': 0.1, 'microhertz': 1e-06, 'Hertz': 1, 'milihertzs': 0.001, 'millihertzs': 0.001, 'rpm': 0.016666666666666666, 'hertz': 1, 'pHz': 1e-12, 'femtohertz': 1e-15, 'picoHertzs': 1e-12, 'milli*hertz': 0.001, 'gigahertzs': 1000000000.0, 'femtohertzs': 1e-15, 'micro*hertz': 1e-06, 'milihertz': 0.001, 'nanohertz': 1e-09, 'picohertz': 1e-12, 'deci*hertz': 0.1, 'femtoHertz': 1e-15, 'micro*Hertz': 1e-06, 'nanoHertz': 1e-09, 'rpms': 0.016666666666666666, 'kilohertzs': 1000.0, 'nHz': 1e-09, 'megahertz': 1000000.0, 'Hertzs': 1, 'femto*Hertz': 1e-15, 'giga*hertz': 1000000000.0, 'tera*hertz': 1000000000000.0, 'centiHertz': 0.01, 'peta*hertz': 1000000000000000.0, 'uHz': 1e-06, 'mHz': 0.001, 'petahertzs': 1000000000000000.0, 'deciHertz': 0.1, 'cHz': 0.01, 'centihertzs': 0.01, 'kilohertz': 1000.0, 'gigaHertzs': 1000000000.0, 'femtoHertzs': 1e-15, 'mili*hertz': 0.001, 'microHertz': 1e-06, 'teraHertz': 1000000000000.0, 'millihertz': 0.001}, {'gigaKelvin': 1000000000.0, 'decikelvin': 0.1, 'milli*kelvin': 0.001, 'giga*kelvin': 1000000000.0, 'nanoKelvins': 1e-09, 'centi*Kelvin': 0.01, 'milliKelvin': 0.001, 'nanokelvin': 1e-09, 'femto*kelvin': 1e-15, 'mega*Kelvin': 1000000.0, 'deci*Kelvin': 0.1, 'pico*Kelvin': 1e-12, 'microkelvin': 1e-06, 'GK': 1000000000.0, 'dK': 0.1, 'mili*Kelvin': 0.001, 'milli*Kelvin': 0.001, 'megakelvin': 1000000.0, 'nano*Kelvin': 1e-09, 'petaKelvin': 1000000000000000.0, 'deciKelvins': 0.1, 'milikelvins': 0.001, 'femtoKelvin': 1e-15, 'mega*kelvin': 1000000.0, 'microKelvins': 1e-06, 'peta*Kelvin': 1000000000000000.0, 'pico*kelvin': 1e-12, 'kK': 1000.0, 'decikelvins': 0.1, 'microKelvin': 1e-06, 'PK': 1000000000000000.0, 'picokelvin': 1e-12, 'centiKelvin': 0.01, 'K': 1, 'megakelvins': 1000000.0, 'miliKelvins': 0.001, 'kiloKelvin': 1000.0, 'milliKelvins': 0.001, 'petakelvin': 1000000000000000.0, 'MK': 1000000.0, 'terakelvin': 1000000000000.0, 'kiloKelvins': 1000.0, 'petakelvins': 1000000000000000.0, 'miliKelvin': 0.001, 'petaKelvins': 1000000000000000.0, 'megaKelvin': 1000000.0, 'tera*Kelvin': 1000000000000.0, 'pK': 1e-12, 'centiKelvins': 0.01, 'picokelvins': 1e-12, 'cK': 0.01, 'Kelvin': 1, 'kilokelvin': 1000.0, 'Kelvins': 1, 'centikelvins': 0.01, 'picoKelvins': 1e-12, 'mK': 0.001, 'uK': 1e-06, 'kelvins': 1, 'teraKelvin': 1000000000000.0, 'micro*Kelvin': 1e-06, 'picoKelvin': 1e-12, 'centikelvin': 0.01, 'gigakelvin': 1000000000.0, 'deciKelvin': 0.1, 'giga*Kelvin': 1000000000.0, 'tera*kelvin': 1000000000000.0, 'nK': 1e-09, 'gigakelvins': 1000000000.0, 'nanokelvins': 1e-09, 'kilo*Kelvin': 1000.0, 'terakelvins': 1000000000000.0, 'megaKelvins': 1000000.0, 'deci*kelvin': 0.1, 'milikelvin': 0.001, 'gigaKelvins': 1000000000.0, 'femtokelvins': 1e-15, 'TK': 1000000000000.0, 'teraKelvins': 1000000000000.0, 'micro*kelvin': 1e-06, 'microkelvins': 1e-06, 'centi*kelvin': 0.01, 'kelvin': 1, 'mili*kelvin': 0.001, 'femtoKelvins': 1e-15, 'kilokelvins': 1000.0, 'millikelvin': 0.001, 'peta*kelvin': 1000000000000000.0, 'nanoKelvin': 1e-09, 'femto*Kelvin': 1e-15, 'nano*kelvin': 1e-09, 'femtokelvin': 1e-15, 'kilo*kelvin': 1000.0, 'millikelvins': 0.001, 'fK': 1e-15}, {'femtoCoulomb': 1e-15, 'gigacoulombs': 1000000000.0, 'megaCoulombs': 1000000.0, 'deci*coulomb': 0.1, 'kilocoulomb': 1000.0, 'deciCoulombs': 0.1, 'femto*Coulomb': 1e-15, 'millicoulomb': 0.001, 'deci*Coulomb': 0.1, 'peta*Coulomb': 1000000000000000.0, 'mili*coulomb': 0.001, 'GC': 1000000000.0, 'petaCoulombs': 1000000000000000.0, 'megacoulomb': 1000000.0, 'miliCoulomb': 0.001, 'dC': 0.1, 'mili*Coulomb': 0.001, 'milliCoulombs': 0.001, 'picoCoulomb': 1e-12, 'gigaCoulomb': 1000000000.0, 'giga*coulomb': 1000000000.0, 'tera*coulomb': 1000000000000.0, 'microcoulombs': 1e-06, 'centiCoulombs': 0.01, 'picocoulombs': 1e-12, 'mega*Coulomb': 1000000.0, 'petaCoulomb': 1000000000000000.0, 'miliCoulombs': 0.001, 'PC': 1000000000000000.0, 'kiloCoulombs': 1000.0, 'femtocoulombs': 1e-15, 'petacoulombs': 1000000000000000.0, 'nano*coulomb': 1e-09, 'C': 1, 'teraCoulombs': 1000000000000.0, 'decicoulombs': 0.1, 'nano*Coulomb': 1e-09, 'deciCoulomb': 0.1, 'MC': 1000000.0, 'milliCoulomb': 0.001, 'picocoulomb': 1e-12, 'centiCoulomb': 0.01, 'teracoulombs': 1000000000000.0, 'decicoulomb': 0.1, 'kilo*Coulomb': 1000.0, 'pC': 1e-12, 'kilocoulombs': 1000.0, 'centicoulomb': 0.01, 'micro*Coulomb': 1e-06, 'femto*coulomb': 1e-15, 'nanocoulomb': 1e-09, 'cC': 0.01, 'pico*coulomb': 1e-12, 'nanocoulombs': 1e-09, 'centicoulombs': 0.01, 'milli*coulomb': 0.001, 'nanoCoulomb': 1e-09, 'mC': 0.001, 'picoCoulombs': 1e-12, 'pico*Coulomb': 1e-12, 'kiloCoulomb': 1000.0, 'femtoCoulombs': 1e-15, 'uC': 1e-06, 'gigacoulomb': 1000000000.0, 'giga*Coulomb': 1000000000.0, 'milli*Coulomb': 0.001, 'peta*coulomb': 1000000000000000.0, 'megacoulombs': 1000000.0, 'mega*coulomb': 1000000.0, 'megaCoulomb': 1000000.0, 'petacoulomb': 1000000000000000.0, 'nC': 1e-09, 'teracoulomb': 1000000000000.0, 'coulombs': 1, 'gigaCoulombs': 1000000000.0, 'microCoulombs': 1e-06, 'tera*Coulomb': 1000000000000.0, 'teraCoulomb': 1000000000000.0, 'centi*Coulomb': 0.01, 'millicoulombs': 0.001, 'milicoulomb': 0.001, 'TC': 1000000000000.0, 'kC': 1000.0, 'milicoulombs': 0.001, 'Coulomb': 1, 'microCoulomb': 1e-06, 'centi*coulomb': 0.01, 'nanoCoulombs': 1e-09, 'microAmp*hour': 0.0036, 'femtocoulomb': 1e-15, 'coulomb': 1, 'kilo*coulomb': 1000.0, 'microcoulomb': 1e-06, 'fC': 1e-15, 'Coulombs': 1, 'micro*coulomb': 1e-06}, {'10^-6 Angstrom^-2': 1e-06, 'Angstrom^-2': 1, '10-6 Angstrom-2': 1e-06, 'Angstrom-2': 1}, {'invAng': 1, 'n_m^-1': 0.1, '10-3 Angstrom-1': 0.001, 'invA': 1, 'n_m-1': 0.1, '1/nm': 0.1, '1/cm': 1e-08, '10^-3 Angstrom^-1': 0.001, 'nm^-1': 0.1, '1/A': 1, 'nm-1': 0.1, 'invAngstroms': 1}]</em></dt>
440<dd></dd></dl>
441
442<dl class="method">
443<dt id="sas.data_util.nxsunit.Converter.scale">
444<tt class="descname">scale</tt><big>(</big><em>units=''</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/nxsunit.html#Converter.scale"><span class="viewcode-link">[source]</span></a></dt>
445<dd></dd></dl>
446
447<dl class="attribute">
448<dt id="sas.data_util.nxsunit.Converter.scalebase">
449<tt class="descname">scalebase</tt><em class="property"> = 1</em></dt>
450<dd></dd></dl>
451
452<dl class="attribute">
453<dt id="sas.data_util.nxsunit.Converter.scalemap">
454<tt class="descname">scalemap</tt><em class="property"> = None</em></dt>
455<dd></dd></dl>
456
457<dl class="attribute">
458<dt id="sas.data_util.nxsunit.Converter.unknown">
459<tt class="descname">unknown</tt><em class="property"> = {'': 1, 'a.u.': 1, '???': 1, None: 1}</em></dt>
460<dd></dd></dl>
461
462</dd></dl>
463
464</div>
465<div class="section" id="module-sas.data_util.odict">
466<span id="sas-data-util-odict-module"></span><h2>sas.data_util.odict module</h2>
467<p>A dict that keeps keys in insertion order</p>
468<dl class="class">
469<dt id="sas.data_util.odict.OrderedDict">
470<em class="property">class </em><tt class="descclassname">sas.data_util.odict.</tt><tt class="descname">OrderedDict</tt><big>(</big><em>init_val=()</em>, <em>strict=False</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict"><span class="viewcode-link">[source]</span></a></dt>
471<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">dict</span></tt></p>
472<p>A class of dictionary that keeps the insertion order of keys.</p>
473<p>All appropriate methods return keys, items, or values in an ordered way.</p>
474<p>All normal dictionary methods are available. Update and comparison is
475restricted to other OrderedDict objects.</p>
476<p>Various sequence methods are available, including the ability to explicitly
477mutate the key ordering.</p>
478<p>__contains__ tests:</p>
479<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),))</span>
480<span class="gp">&gt;&gt;&gt; </span><span class="mi">1</span> <span class="ow">in</span> <span class="n">d</span>
481<span class="go">1</span>
482<span class="gp">&gt;&gt;&gt; </span><span class="mi">4</span> <span class="ow">in</span> <span class="n">d</span>
483<span class="go">0</span>
484</pre></div>
485</div>
486<p>__getitem__ tests:</p>
487<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))[</span><span class="mi">2</span><span class="p">]</span>
488<span class="go">1</span>
489<span class="gp">&gt;&gt;&gt; </span><span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))[</span><span class="mi">4</span><span class="p">]</span>
490<span class="gt">Traceback (most recent call last):</span>
491<span class="gr">KeyError</span>: <span class="n">4</span>
492</pre></div>
493</div>
494<p>__len__ tests:</p>
495<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">OrderedDict</span><span class="p">())</span>
496<span class="go">0</span>
497<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">))))</span>
498<span class="go">3</span>
499</pre></div>
500</div>
501<p>get tests:</p>
502<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
503<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
504<span class="go">3</span>
505<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">None</span>
506<span class="go">1</span>
507<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
508<span class="go">5</span>
509<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
510<span class="go">OrderedDict([(1, 3), (3, 2), (2, 1)])</span>
511</pre></div>
512</div>
513<p>has_key tests:</p>
514<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
515<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
516<span class="go">1</span>
517<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
518<span class="go">0</span>
519</pre></div>
520</div>
521<dl class="method">
522<dt id="sas.data_util.odict.OrderedDict.clear">
523<tt class="descname">clear</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.clear"><span class="viewcode-link">[source]</span></a></dt>
524<dd><div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
525<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
526<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
527<span class="go">OrderedDict([])</span>
528</pre></div>
529</div>
530</dd></dl>
531
532<dl class="method">
533<dt id="sas.data_util.odict.OrderedDict.copy">
534<tt class="descname">copy</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.copy"><span class="viewcode-link">[source]</span></a></dt>
535<dd><div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
536<span class="go">OrderedDict([(1, 3), (3, 2), (2, 1)])</span>
537</pre></div>
538</div>
539</dd></dl>
540
541<dl class="method">
542<dt id="sas.data_util.odict.OrderedDict.index">
543<tt class="descname">index</tt><big>(</big><em>key</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.index"><span class="viewcode-link">[source]</span></a></dt>
544<dd><p>Return the position of the specified key in the OrderedDict.</p>
545<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
546<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
547<span class="go">1</span>
548<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
549<span class="gt">Traceback (most recent call last):</span>
550<span class="gr">ValueError</span>: <span class="n">list.index(x): x not in list</span>
551</pre></div>
552</div>
553</dd></dl>
554
555<dl class="method">
556<dt id="sas.data_util.odict.OrderedDict.insert">
557<tt class="descname">insert</tt><big>(</big><em>index</em>, <em>key</em>, <em>value</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.insert"><span class="viewcode-link">[source]</span></a></dt>
558<dd><p>Takes <tt class="docutils literal"><span class="pre">index</span></tt>, <tt class="docutils literal"><span class="pre">key</span></tt>, and <tt class="docutils literal"><span class="pre">value</span></tt> as arguments.</p>
559<p>Sets <tt class="docutils literal"><span class="pre">key</span></tt> to <tt class="docutils literal"><span class="pre">value</span></tt>, so that <tt class="docutils literal"><span class="pre">key</span></tt> is at position <tt class="docutils literal"><span class="pre">index</span></tt> in
560the OrderedDict.</p>
561<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
562<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
563<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
564<span class="go">OrderedDict([(4, 0), (1, 3), (3, 2), (2, 1)])</span>
565<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
566<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
567<span class="go">OrderedDict([(2, 1), (4, 0), (1, 3), (3, 2)])</span>
568<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
569<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
570<span class="go">OrderedDict([(2, 1), (4, 0), (1, 3), (3, 2), (8, 1)])</span>
571</pre></div>
572</div>
573</dd></dl>
574
575<dl class="method">
576<dt id="sas.data_util.odict.OrderedDict.items">
577<tt class="descname">items</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.items"><span class="viewcode-link">[source]</span></a></dt>
578<dd><p><tt class="docutils literal"><span class="pre">items</span></tt> returns a list of tuples representing all the
579<tt class="docutils literal"><span class="pre">(key,</span> <span class="pre">value)</span></tt> pairs in the dictionary.</p>
580<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
581<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
582<span class="go">[(1, 3), (3, 2), (2, 1)]</span>
583<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
584<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
585<span class="go">[]</span>
586</pre></div>
587</div>
588</dd></dl>
589
590<dl class="method">
591<dt id="sas.data_util.odict.OrderedDict.iteritems">
592<tt class="descname">iteritems</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.iteritems"><span class="viewcode-link">[source]</span></a></dt>
593<dd><div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ii</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span><span class="o">.</span><span class="n">iteritems</span><span class="p">()</span>
594<span class="gp">&gt;&gt;&gt; </span><span class="n">ii</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
595<span class="go">(1, 3)</span>
596<span class="gp">&gt;&gt;&gt; </span><span class="n">ii</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
597<span class="go">(3, 2)</span>
598<span class="gp">&gt;&gt;&gt; </span><span class="n">ii</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
599<span class="go">(2, 1)</span>
600<span class="gp">&gt;&gt;&gt; </span><span class="n">ii</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
601<span class="gt">Traceback (most recent call last):</span>
602<span class="gr">StopIteration</span>
603</pre></div>
604</div>
605</dd></dl>
606
607<dl class="method">
608<dt id="sas.data_util.odict.OrderedDict.iterkeys">
609<tt class="descname">iterkeys</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.iterkeys"><span class="viewcode-link">[source]</span></a></dt>
610<dd><div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ii</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span><span class="o">.</span><span class="n">iterkeys</span><span class="p">()</span>
611<span class="gp">&gt;&gt;&gt; </span><span class="n">ii</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
612<span class="go">1</span>
613<span class="gp">&gt;&gt;&gt; </span><span class="n">ii</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
614<span class="go">3</span>
615<span class="gp">&gt;&gt;&gt; </span><span class="n">ii</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
616<span class="go">2</span>
617<span class="gp">&gt;&gt;&gt; </span><span class="n">ii</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
618<span class="gt">Traceback (most recent call last):</span>
619<span class="gr">StopIteration</span>
620</pre></div>
621</div>
622</dd></dl>
623
624<dl class="method">
625<dt id="sas.data_util.odict.OrderedDict.itervalues">
626<tt class="descname">itervalues</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.itervalues"><span class="viewcode-link">[source]</span></a></dt>
627<dd><div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">iv</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span><span class="o">.</span><span class="n">itervalues</span><span class="p">()</span>
628<span class="gp">&gt;&gt;&gt; </span><span class="n">iv</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
629<span class="go">3</span>
630<span class="gp">&gt;&gt;&gt; </span><span class="n">iv</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
631<span class="go">2</span>
632<span class="gp">&gt;&gt;&gt; </span><span class="n">iv</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
633<span class="go">1</span>
634<span class="gp">&gt;&gt;&gt; </span><span class="n">iv</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
635<span class="gt">Traceback (most recent call last):</span>
636<span class="gr">StopIteration</span>
637</pre></div>
638</div>
639</dd></dl>
640
641<dl class="method">
642<dt id="sas.data_util.odict.OrderedDict.keys">
643<tt class="descname">keys</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.keys"><span class="viewcode-link">[source]</span></a></dt>
644<dd><p>Return a list of keys in the <tt class="docutils literal"><span class="pre">OrderedDict</span></tt>.</p>
645<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
646<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
647<span class="go">[1, 3, 2]</span>
648</pre></div>
649</div>
650</dd></dl>
651
652<dl class="method">
653<dt id="sas.data_util.odict.OrderedDict.pop">
654<tt class="descname">pop</tt><big>(</big><em>key</em>, <em>*args</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.pop"><span class="viewcode-link">[source]</span></a></dt>
655<dd><p>No dict.pop in Python 2.2, gotta reimplement it</p>
656<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
657<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
658<span class="go">2</span>
659<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
660<span class="go">OrderedDict([(1, 3), (2, 1)])</span>
661<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
662<span class="gt">Traceback (most recent call last):</span>
663<span class="gr">KeyError</span>: <span class="n">4</span>
664<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
665<span class="go">0</span>
666<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
667<span class="gt">Traceback (most recent call last):</span>
668<span class="gr">TypeError</span>: <span class="n">pop expected at most 2 arguments, got 3</span>
669</pre></div>
670</div>
671</dd></dl>
672
673<dl class="method">
674<dt id="sas.data_util.odict.OrderedDict.popitem">
675<tt class="descname">popitem</tt><big>(</big><em>i=-1</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.popitem"><span class="viewcode-link">[source]</span></a></dt>
676<dd><p>Delete and return an item specified by index, not a random one as in
677dict. The index is -1 by default (the last item).</p>
678<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
679<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">popitem</span><span class="p">()</span>
680<span class="go">(2, 1)</span>
681<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
682<span class="go">OrderedDict([(1, 3), (3, 2)])</span>
683<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">popitem</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
684<span class="go">(1, 3)</span>
685<span class="gp">&gt;&gt;&gt; </span><span class="n">OrderedDict</span><span class="p">()</span><span class="o">.</span><span class="n">popitem</span><span class="p">()</span>
686<span class="gt">Traceback (most recent call last):</span>
687<span class="gr">KeyError</span>: <span class="n">&#39;popitem(): dictionary is empty&#39;</span>
688<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">popitem</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
689<span class="gt">Traceback (most recent call last):</span>
690<span class="gr">IndexError</span>: <span class="n">popitem(): index 2 not valid</span>
691</pre></div>
692</div>
693</dd></dl>
694
695<dl class="method">
696<dt id="sas.data_util.odict.OrderedDict.rename">
697<tt class="descname">rename</tt><big>(</big><em>old_key</em>, <em>new_key</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.rename"><span class="viewcode-link">[source]</span></a></dt>
698<dd><p>Rename the key for a given value, without modifying sequence order.</p>
699<p>For the case where new_key already exists this raise an exception,
700since if new_key exists, it is ambiguous as to what happens to the
701associated values, and the position of new_key in the sequence.</p>
702<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">od</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">()</span>
703<span class="gp">&gt;&gt;&gt; </span><span class="n">od</span><span class="p">[</span><span class="s">&#39;a&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
704<span class="gp">&gt;&gt;&gt; </span><span class="n">od</span><span class="p">[</span><span class="s">&#39;b&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span>
705<span class="gp">&gt;&gt;&gt; </span><span class="n">od</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
706<span class="go">[(&#39;a&#39;, 1), (&#39;b&#39;, 2)]</span>
707<span class="gp">&gt;&gt;&gt; </span><span class="n">od</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="s">&#39;b&#39;</span><span class="p">,</span> <span class="s">&#39;c&#39;</span><span class="p">)</span>
708<span class="gp">&gt;&gt;&gt; </span><span class="n">od</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
709<span class="go">[(&#39;a&#39;, 1), (&#39;c&#39;, 2)]</span>
710<span class="gp">&gt;&gt;&gt; </span><span class="n">od</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="s">&#39;c&#39;</span><span class="p">,</span> <span class="s">&#39;a&#39;</span><span class="p">)</span>
711<span class="gt">Traceback (most recent call last):</span>
712<span class="gr">ValueError</span>: <span class="n">New key already exists: &#39;a&#39;</span>
713<span class="gp">&gt;&gt;&gt; </span><span class="n">od</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="s">&#39;d&#39;</span><span class="p">,</span> <span class="s">&#39;b&#39;</span><span class="p">)</span>
714<span class="gt">Traceback (most recent call last):</span>
715<span class="gr">KeyError</span>: <span class="n">&#39;d&#39;</span>
716</pre></div>
717</div>
718</dd></dl>
719
720<dl class="method">
721<dt id="sas.data_util.odict.OrderedDict.reverse">
722<tt class="descname">reverse</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.reverse"><span class="viewcode-link">[source]</span></a></dt>
723<dd><p>Reverse the order of the OrderedDict.</p>
724<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
725<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
726<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
727<span class="go">OrderedDict([(2, 1), (3, 2), (1, 3)])</span>
728</pre></div>
729</div>
730</dd></dl>
731
732<dl class="method">
733<dt id="sas.data_util.odict.OrderedDict.setdefault">
734<tt class="descname">setdefault</tt><big>(</big><em>key</em>, <em>defval=None</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.setdefault"><span class="viewcode-link">[source]</span></a></dt>
735<dd><div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
736<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
737<span class="go">3</span>
738<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">None</span>
739<span class="go">True</span>
740<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
741<span class="go">OrderedDict([(1, 3), (3, 2), (2, 1), (4, None)])</span>
742<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
743<span class="go">0</span>
744<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
745<span class="go">OrderedDict([(1, 3), (3, 2), (2, 1), (4, None), (5, 0)])</span>
746</pre></div>
747</div>
748</dd></dl>
749
750<dl class="method">
751<dt id="sas.data_util.odict.OrderedDict.setitems">
752<tt class="descname">setitems</tt><big>(</big><em>items</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.setitems"><span class="viewcode-link">[source]</span></a></dt>
753<dd><p>This method allows you to set the items in the dict.</p>
754<p>It takes a list of tuples - of the same sort returned by the <tt class="docutils literal"><span class="pre">items</span></tt>
755method.</p>
756<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">()</span>
757<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setitems</span><span class="p">(((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)))</span>
758<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
759<span class="go">OrderedDict([(3, 1), (2, 3), (1, 2)])</span>
760</pre></div>
761</div>
762</dd></dl>
763
764<dl class="method">
765<dt id="sas.data_util.odict.OrderedDict.setkeys">
766<tt class="descname">setkeys</tt><big>(</big><em>keys</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.setkeys"><span class="viewcode-link">[source]</span></a></dt>
767<dd><p><tt class="docutils literal"><span class="pre">setkeys</span></tt> all ows you to pass in a new list of keys which will
768replace the current set. This must contain the same set of keys, but
769need not be in the same order.</p>
770<p>If you pass in new keys that don&#8217;t match, a <tt class="docutils literal"><span class="pre">KeyError</span></tt> will be
771raised.</p>
772<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
773<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
774<span class="go">[1, 3, 2]</span>
775<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setkeys</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
776<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
777<span class="go">OrderedDict([(1, 3), (2, 1), (3, 2)])</span>
778<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setkeys</span><span class="p">([</span><span class="s">&#39;a&#39;</span><span class="p">,</span> <span class="s">&#39;b&#39;</span><span class="p">,</span> <span class="s">&#39;c&#39;</span><span class="p">])</span>
779<span class="gt">Traceback (most recent call last):</span>
780<span class="gr">KeyError</span>: <span class="n">&#39;Keylist is not the same as current keylist.&#39;</span>
781</pre></div>
782</div>
783</dd></dl>
784
785<dl class="method">
786<dt id="sas.data_util.odict.OrderedDict.setvalues">
787<tt class="descname">setvalues</tt><big>(</big><em>values</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.setvalues"><span class="viewcode-link">[source]</span></a></dt>
788<dd><p>You can pass in a list of values, which will replace the
789current list. The value list must be the same len as the OrderedDict.</p>
790<p>(Or a <tt class="docutils literal"><span class="pre">ValueError</span></tt> is raised.)</p>
791<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
792<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setvalues</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
793<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
794<span class="go">OrderedDict([(1, 1), (3, 2), (2, 3)])</span>
795<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setvalues</span><span class="p">([</span><span class="mi">6</span><span class="p">])</span>
796<span class="gt">Traceback (most recent call last):</span>
797<span class="gr">ValueError</span>: <span class="n">Value list is not the same length as the OrderedDict.</span>
798</pre></div>
799</div>
800</dd></dl>
801
802<dl class="method">
803<dt id="sas.data_util.odict.OrderedDict.sort">
804<tt class="descname">sort</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.sort"><span class="viewcode-link">[source]</span></a></dt>
805<dd><p>Sort the key order in the OrderedDict.</p>
806<p>This method takes the same arguments as the <tt class="docutils literal"><span class="pre">list.sort</span></tt> method on
807your version of Python.</p>
808<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">4</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">)))</span>
809<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
810<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
811<span class="go">OrderedDict([(1, 4), (2, 2), (3, 3), (4, 1)])</span>
812</pre></div>
813</div>
814</dd></dl>
815
816<dl class="method">
817<dt id="sas.data_util.odict.OrderedDict.update">
818<tt class="descname">update</tt><big>(</big><em>from_od</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.update"><span class="viewcode-link">[source]</span></a></dt>
819<dd><p>Update from another OrderedDict or sequence of (key, value) pairs</p>
820<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
821<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">))))</span>
822<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
823<span class="go">OrderedDict([(1, 3), (0, 1), (3, 2), (2, 1)])</span>
824<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="mi">4</span><span class="p">:</span> <span class="mi">4</span><span class="p">})</span>
825<span class="gt">Traceback (most recent call last):</span>
826<span class="gr">TypeError</span>: <span class="n">undefined order, cannot get items from dict</span>
827<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">update</span><span class="p">((</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>
828<span class="gt">Traceback (most recent call last):</span>
829<span class="gr">TypeError</span>: <span class="n">cannot convert dictionary update sequence element &quot;4&quot; to a 2-item sequence</span>
830</pre></div>
831</div>
832</dd></dl>
833
834<dl class="method">
835<dt id="sas.data_util.odict.OrderedDict.values">
836<tt class="descname">values</tt><big>(</big><em>values=None</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#OrderedDict.values"><span class="viewcode-link">[source]</span></a></dt>
837<dd><p>Return a list of all the values in the OrderedDict.</p>
838<p>Optionally you can pass in a list of values, which will replace the
839current list. The value list must be the same len as the OrderedDict.</p>
840<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
841<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">()</span>
842<span class="go">[3, 2, 1]</span>
843</pre></div>
844</div>
845</dd></dl>
846
847</dd></dl>
848
849<dl class="class">
850<dt id="sas.data_util.odict.SequenceOrderedDict">
851<em class="property">class </em><tt class="descclassname">sas.data_util.odict.</tt><tt class="descname">SequenceOrderedDict</tt><big>(</big><em>init_val=()</em>, <em>strict=True</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/odict.html#SequenceOrderedDict"><span class="viewcode-link">[source]</span></a></dt>
852<dd><p>Bases: <a class="reference internal" href="#sas.data_util.odict.OrderedDict" title="sas.data_util.odict.OrderedDict"><tt class="xref py py-class docutils literal"><span class="pre">sas.data_util.odict.OrderedDict</span></tt></a></p>
853<p>Experimental version of OrderedDict that has a custom object for <tt class="docutils literal"><span class="pre">keys</span></tt>,
854<tt class="docutils literal"><span class="pre">values</span></tt>, and <tt class="docutils literal"><span class="pre">items</span></tt>.</p>
855<p>These are callable sequence objects that work as methods, or can be
856manipulated directly as sequences.</p>
857<p>Test for <tt class="docutils literal"><span class="pre">keys</span></tt>, <tt class="docutils literal"><span class="pre">items</span></tt> and <tt class="docutils literal"><span class="pre">values</span></tt>.</p>
858<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">SequenceOrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">)))</span>
859<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
860<span class="go">SequenceOrderedDict([(1, 2), (2, 3), (3, 4)])</span>
861<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span>
862<span class="go">[1, 2, 3]</span>
863<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
864<span class="go">[1, 2, 3]</span>
865<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setkeys</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
866<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
867<span class="go">SequenceOrderedDict([(3, 4), (2, 3), (1, 2)])</span>
868<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setkeys</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
869<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
870<span class="go">1</span>
871<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">[:]</span>
872<span class="go">[1, 2, 3]</span>
873<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
874<span class="go">3</span>
875<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span>
876<span class="go">2</span>
877<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">]</span>
878<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
879<span class="go">SequenceOrderedDict([(2, 3), (1, 2), (3, 4)])</span>
880<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
881<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span>
882<span class="go">[3, 1, 2]</span>
883<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
884<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
885<span class="go">SequenceOrderedDict([(1, 2), (2, 3), (3, 4)])</span>
886<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span> <span class="o">=</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">]</span>
887<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
888<span class="go">SequenceOrderedDict([(3, 4), (1, 2), (2, 3)])</span>
889<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">SequenceOrderedDict</span><span class="p">()</span>
890<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span> <span class="o">=</span> <span class="n">SequenceOrderedDict</span><span class="p">()</span>
891<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="o">.</span><span class="n">keys</span> <span class="o">==</span> <span class="n">b</span><span class="o">.</span><span class="n">keys</span>
892<span class="go">1</span>
893<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="p">[</span><span class="s">&#39;a&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">3</span>
894<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="o">.</span><span class="n">keys</span> <span class="o">==</span> <span class="n">b</span><span class="o">.</span><span class="n">keys</span>
895<span class="go">0</span>
896<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span><span class="p">[</span><span class="s">&#39;a&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">3</span>
897<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="o">.</span><span class="n">keys</span> <span class="o">==</span> <span class="n">b</span><span class="o">.</span><span class="n">keys</span>
898<span class="go">1</span>
899<span class="gp">&gt;&gt;&gt; </span><span class="n">b</span><span class="p">[</span><span class="s">&#39;b&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">3</span>
900<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="o">.</span><span class="n">keys</span> <span class="o">==</span> <span class="n">b</span><span class="o">.</span><span class="n">keys</span>
901<span class="go">0</span>
902<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="o">.</span><span class="n">keys</span> <span class="o">&gt;</span> <span class="n">b</span><span class="o">.</span><span class="n">keys</span>
903<span class="go">0</span>
904<span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="o">.</span><span class="n">keys</span> <span class="o">&lt;</span> <span class="n">b</span><span class="o">.</span><span class="n">keys</span>
905<span class="go">1</span>
906<span class="gp">&gt;&gt;&gt; </span><span class="s">&#39;a&#39;</span> <span class="ow">in</span> <span class="n">a</span><span class="o">.</span><span class="n">keys</span>
907<span class="go">1</span>
908<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">b</span><span class="o">.</span><span class="n">keys</span><span class="p">)</span>
909<span class="go">2</span>
910<span class="gp">&gt;&gt;&gt; </span><span class="s">&#39;c&#39;</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">keys</span>
911<span class="go">0</span>
912<span class="gp">&gt;&gt;&gt; </span><span class="mi">1</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">keys</span>
913<span class="go">1</span>
914<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span><span class="n">v</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">]</span>
915<span class="go">[3, 1, 2]</span>
916<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
917<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span>
918<span class="go">[1, 2, 3]</span>
919<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">SequenceOrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">)),</span> <span class="n">strict</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
920<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
921<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
922<span class="go">SequenceOrderedDict([(3, 4), (2, 3), (1, 2)])</span>
923<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span>
924<span class="go">[3, 2]</span>
925<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">keys</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
926<span class="gt">Traceback (most recent call last):</span>
927<span class="gr">KeyError</span>: <span class="n">&#39;Keylist is not the same as current keylist.&#39;</span>
928</pre></div>
929</div>
930<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">SequenceOrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">)))</span>
931<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
932<span class="go">SequenceOrderedDict([(1, 2), (2, 3), (3, 4)])</span>
933<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span>
934<span class="go">[2, 3, 4]</span>
935<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">()</span>
936<span class="go">[2, 3, 4]</span>
937<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setvalues</span><span class="p">((</span><span class="mi">4</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
938<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
939<span class="go">SequenceOrderedDict([(1, 4), (2, 3), (3, 2)])</span>
940<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
941<span class="go">[2, 3, 4]</span>
942<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
943<span class="go">4</span>
944<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span>
945<span class="go">3</span>
946<span class="gp">&gt;&gt;&gt; </span><span class="k">del</span> <span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
947<span class="gt">Traceback (most recent call last):</span>
948<span class="gr">TypeError</span>: <span class="n">Can&#39;t delete items from values</span>
949<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">[::</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span>
950<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
951<span class="go">SequenceOrderedDict([(1, 2), (2, 3), (3, 4)])</span>
952<span class="gp">&gt;&gt;&gt; </span><span class="mi">7</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">values</span>
953<span class="go">0</span>
954<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">)</span>
955<span class="go">3</span>
956<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span><span class="n">val</span> <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">]</span>
957<span class="go">[2, 3, 4]</span>
958<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span>
959<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
960<span class="go">2</span>
961<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
962<span class="go">0</span>
963<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="mi">7</span>
964<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span>
965<span class="go">[2, 3, 7]</span>
966<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
967<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span>
968<span class="go">[7, 3, 2]</span>
969<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
970<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span>
971<span class="go">[2, 3, 7]</span>
972<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&#39;anything&#39;</span><span class="p">)</span>
973<span class="gt">Traceback (most recent call last):</span>
974<span class="gr">TypeError</span>: <span class="n">Can&#39;t append items to values</span>
975<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">values</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
976<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
977<span class="go">SequenceOrderedDict([(1, 1), (2, 2), (3, 3)])</span>
978</pre></div>
979</div>
980<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">SequenceOrderedDict</span><span class="p">(((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">)))</span>
981<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
982<span class="go">SequenceOrderedDict([(1, 2), (2, 3), (3, 4)])</span>
983<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
984<span class="go">[(1, 2), (2, 3), (3, 4)]</span>
985<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">setitems</span><span class="p">([(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span> <span class="p">,</span><span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)])</span>
986<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
987<span class="go">SequenceOrderedDict([(3, 4), (2, 3), (1, 2)])</span>
988<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
989<span class="go">(3, 4)</span>
990<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
991<span class="go">[(3, 4), (2, 3)]</span>
992<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
993<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span>
994<span class="go">[(3, 4), (6, 3), (1, 2)]</span>
995<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="p">[(</span><span class="mi">9</span><span class="p">,</span> <span class="mi">9</span><span class="p">)]</span>
996<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
997<span class="go">SequenceOrderedDict([(3, 4), (9, 9), (1, 2)])</span>
998<span class="gp">&gt;&gt;&gt; </span><span class="k">del</span> <span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span>
999<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span>
1000<span class="go">SequenceOrderedDict([(3, 4), (1, 2)])</span>
1001<span class="gp">&gt;&gt;&gt; </span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">items</span>
1002<span class="go">1</span>
1003<span class="gp">&gt;&gt;&gt; </span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">items</span>
1004<span class="go">0</span>
1005<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">)</span>
1006<span class="go">2</span>
1007<span class="gp">&gt;&gt;&gt; </span><span class="p">[</span><span class="n">v</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">]</span>
1008<span class="go">[(3, 4), (1, 2)]</span>
1009<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">count</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>
1010<span class="go">1</span>
1011<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">index</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
1012<span class="go">1</span>
1013<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">index</span><span class="p">((</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
1014<span class="gt">Traceback (most recent call last):</span>
1015<span class="gr">ValueError</span>: <span class="n">list.index(x): x not in list</span>
1016<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
1017<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span>
1018<span class="go">[(1, 2), (3, 4)]</span>
1019<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
1020<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
1021<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span>
1022<span class="go">[(1, 2), (3, 4)]</span>
1023<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">))</span>
1024<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span>
1025<span class="go">[(1, 2), (3, 4), (5, 6)]</span>
1026<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
1027<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span>
1028<span class="go">[(0, 0), (1, 2), (3, 4), (5, 6)]</span>
1029<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="p">(</span><span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">))</span>
1030<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span>
1031<span class="go">[(0, 0), (1, 2), (3, 4), (7, 8), (5, 6)]</span>
1032<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
1033<span class="go">(5, 6)</span>
1034<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span>
1035<span class="go">[(0, 0), (1, 2), (3, 4), (7, 8)]</span>
1036<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">remove</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
1037<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span>
1038<span class="go">[(0, 0), (3, 4), (7, 8)]</span>
1039<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="o">.</span><span class="n">extend</span><span class="p">([(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">)])</span>
1040<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span><span class="o">.</span><span class="n">items</span>
1041<span class="go">[(0, 0), (3, 4), (7, 8), (1, 2), (5, 6)]</span>
1042</pre></div>
1043</div>
1044</dd></dl>
1045
1046</div>
1047<div class="section" id="module-sas.data_util.ordereddict">
1048<span id="sas-data-util-ordereddict-module"></span><h2>sas.data_util.ordereddict module</h2>
1049<p>Backport from python2.7 to python &lt;= 2.6.</p>
1050<dl class="class">
1051<dt id="sas.data_util.ordereddict.OrderedDict">
1052<em class="property">class </em><tt class="descclassname">sas.data_util.ordereddict.</tt><tt class="descname">OrderedDict</tt><big>(</big><em>*args</em>, <em>**kwds</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict"><span class="viewcode-link">[source]</span></a></dt>
1053<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">dict</span></tt></p>
1054<dl class="method">
1055<dt id="sas.data_util.ordereddict.OrderedDict.clear">
1056<tt class="descname">clear</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict.clear"><span class="viewcode-link">[source]</span></a></dt>
1057<dd></dd></dl>
1058
1059<dl class="method">
1060<dt id="sas.data_util.ordereddict.OrderedDict.copy">
1061<tt class="descname">copy</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict.copy"><span class="viewcode-link">[source]</span></a></dt>
1062<dd></dd></dl>
1063
1064<dl class="classmethod">
1065<dt id="sas.data_util.ordereddict.OrderedDict.fromkeys">
1066<em class="property">classmethod </em><tt class="descname">fromkeys</tt><big>(</big><em>iterable</em>, <em>value=None</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict.fromkeys"><span class="viewcode-link">[source]</span></a></dt>
1067<dd></dd></dl>
1068
1069<dl class="method">
1070<dt id="sas.data_util.ordereddict.OrderedDict.items">
1071<tt class="descname">items</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict.items"><span class="viewcode-link">[source]</span></a></dt>
1072<dd></dd></dl>
1073
1074<dl class="method">
1075<dt id="sas.data_util.ordereddict.OrderedDict.keys">
1076<tt class="descname">keys</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict.keys"><span class="viewcode-link">[source]</span></a></dt>
1077<dd></dd></dl>
1078
1079<dl class="method">
1080<dt id="sas.data_util.ordereddict.OrderedDict.pop">
1081<tt class="descname">pop</tt><big>(</big><em>key</em>, <em>default=&lt;object object at 0x10a676140&gt;</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict.pop"><span class="viewcode-link">[source]</span></a></dt>
1082<dd></dd></dl>
1083
1084<dl class="method">
1085<dt id="sas.data_util.ordereddict.OrderedDict.popitem">
1086<tt class="descname">popitem</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict.popitem"><span class="viewcode-link">[source]</span></a></dt>
1087<dd></dd></dl>
1088
1089<dl class="method">
1090<dt id="sas.data_util.ordereddict.OrderedDict.setdefault">
1091<tt class="descname">setdefault</tt><big>(</big><em>key</em>, <em>default=None</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict.setdefault"><span class="viewcode-link">[source]</span></a></dt>
1092<dd></dd></dl>
1093
1094<dl class="method">
1095<dt id="sas.data_util.ordereddict.OrderedDict.update">
1096<tt class="descname">update</tt><big>(</big><em>other=()</em>, <em>**kwds</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict.update"><span class="viewcode-link">[source]</span></a></dt>
1097<dd></dd></dl>
1098
1099<dl class="method">
1100<dt id="sas.data_util.ordereddict.OrderedDict.values">
1101<tt class="descname">values</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddict.html#OrderedDict.values"><span class="viewcode-link">[source]</span></a></dt>
1102<dd></dd></dl>
1103
1104</dd></dl>
1105
1106</div>
1107<div class="section" id="module-sas.data_util.ordereddicttest">
1108<span id="sas-data-util-ordereddicttest-module"></span><h2>sas.data_util.ordereddicttest module</h2>
1109<dl class="class">
1110<dt id="sas.data_util.ordereddicttest.TestOrderedDict">
1111<em class="property">class </em><tt class="descclassname">sas.data_util.ordereddicttest.</tt><tt class="descname">TestOrderedDict</tt><big>(</big><em>methodName='runTest'</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict"><span class="viewcode-link">[source]</span></a></dt>
1112<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">unittest.case.TestCase</span></tt></p>
1113<dl class="method">
1114<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_clear">
1115<tt class="descname">test_clear</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_clear"><span class="viewcode-link">[source]</span></a></dt>
1116<dd></dd></dl>
1117
1118<dl class="method">
1119<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_copying">
1120<tt class="descname">test_copying</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_copying"><span class="viewcode-link">[source]</span></a></dt>
1121<dd></dd></dl>
1122
1123<dl class="method">
1124<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_delitem">
1125<tt class="descname">test_delitem</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_delitem"><span class="viewcode-link">[source]</span></a></dt>
1126<dd></dd></dl>
1127
1128<dl class="method">
1129<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_equality">
1130<tt class="descname">test_equality</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_equality"><span class="viewcode-link">[source]</span></a></dt>
1131<dd></dd></dl>
1132
1133<dl class="method">
1134<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_init">
1135<tt class="descname">test_init</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_init"><span class="viewcode-link">[source]</span></a></dt>
1136<dd></dd></dl>
1137
1138<dl class="method">
1139<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_iterators">
1140<tt class="descname">test_iterators</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_iterators"><span class="viewcode-link">[source]</span></a></dt>
1141<dd></dd></dl>
1142
1143<dl class="method">
1144<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_pop">
1145<tt class="descname">test_pop</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_pop"><span class="viewcode-link">[source]</span></a></dt>
1146<dd></dd></dl>
1147
1148<dl class="method">
1149<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_popitem">
1150<tt class="descname">test_popitem</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_popitem"><span class="viewcode-link">[source]</span></a></dt>
1151<dd></dd></dl>
1152
1153<dl class="method">
1154<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_reinsert">
1155<tt class="descname">test_reinsert</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_reinsert"><span class="viewcode-link">[source]</span></a></dt>
1156<dd></dd></dl>
1157
1158<dl class="method">
1159<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_repr">
1160<tt class="descname">test_repr</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_repr"><span class="viewcode-link">[source]</span></a></dt>
1161<dd></dd></dl>
1162
1163<dl class="method">
1164<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_setdefault">
1165<tt class="descname">test_setdefault</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_setdefault"><span class="viewcode-link">[source]</span></a></dt>
1166<dd></dd></dl>
1167
1168<dl class="method">
1169<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_setitem">
1170<tt class="descname">test_setitem</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_setitem"><span class="viewcode-link">[source]</span></a></dt>
1171<dd></dd></dl>
1172
1173<dl class="method">
1174<dt id="sas.data_util.ordereddicttest.TestOrderedDict.test_update">
1175<tt class="descname">test_update</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/ordereddicttest.html#TestOrderedDict.test_update"><span class="viewcode-link">[source]</span></a></dt>
1176<dd></dd></dl>
1177
1178</dd></dl>
1179
1180</div>
1181<div class="section" id="module-sas.data_util.pathutils">
1182<span id="sas-data-util-pathutils-module"></span><h2>sas.data_util.pathutils module</h2>
1183<p>Utilities for path manipulation. Not to be confused with the pathutils module
1184from the pythonutils package (<a class="reference external" href="http://groups.google.com/group/pythonutils">http://groups.google.com/group/pythonutils</a>).</p>
1185<dl class="function">
1186<dt id="sas.data_util.pathutils.relpath">
1187<tt class="descclassname">sas.data_util.pathutils.</tt><tt class="descname">relpath</tt><big>(</big><em>p1</em>, <em>p2</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/pathutils.html#relpath"><span class="viewcode-link">[source]</span></a></dt>
1188<dd><p>Compute the relative path of p1 with respect to p2.</p>
1189</dd></dl>
1190
1191</div>
1192<div class="section" id="module-sas.data_util.registry">
1193<span id="sas-data-util-registry-module"></span><h2>sas.data_util.registry module</h2>
1194<p>File extension registry.</p>
1195<p>This provides routines for opening files based on extension,
1196and registers the built-in file extensions.</p>
1197<dl class="class">
1198<dt id="sas.data_util.registry.ExtensionRegistry">
1199<em class="property">class </em><tt class="descclassname">sas.data_util.registry.</tt><tt class="descname">ExtensionRegistry</tt><big>(</big><em>**kw</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/registry.html#ExtensionRegistry"><span class="viewcode-link">[source]</span></a></dt>
1200<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
1201<p>Associate a file loader with an extension.</p>
1202<p>Note that there may be multiple loaders for the same extension.</p>
1203<p>Example:</p>
1204<div class="highlight-python"><div class="highlight"><pre>registry = ExtensionRegistry()
1205
1206# Add an association by setting an element
1207registry[&#39;.zip&#39;] = unzip
1208
1209# Multiple extensions for one loader
1210registry[&#39;.tgz&#39;] = untar
1211registry[&#39;.tar.gz&#39;] = untar
1212
1213# Generic extensions to use after trying more specific extensions;
1214# these will be checked after the more specific extensions fail.
1215registry[&#39;.gz&#39;] = gunzip
1216
1217# Multiple loaders for one extension
1218registry[&#39;.cx&#39;] = cx1
1219registry[&#39;.cx&#39;] = cx2
1220registry[&#39;.cx&#39;] = cx3
1221
1222# Show registered extensions
1223print registry.extensions()
1224
1225# Can also register a format name for explicit control from caller
1226registry[&#39;cx3&#39;] = cx3
1227print registry.formats()
1228
1229# Retrieve loaders for a file name
1230registry.lookup(&#39;hello.cx&#39;) -&gt; [cx3,cx2,cx1]
1231
1232# Run loader on a filename
1233registry.load(&#39;hello.cx&#39;) -&gt;
1234    try:
1235        return cx3(&#39;hello.cx&#39;)
1236    except:
1237        try:
1238            return cx2(&#39;hello.cx&#39;)
1239        except:
1240            return cx1(&#39;hello.cx&#39;)
1241
1242# Load in a specific format ignoring extension
1243registry.load(&#39;hello.cx&#39;,format=&#39;cx3&#39;) -&gt;
1244    return cx3(&#39;hello.cx&#39;)
1245</pre></div>
1246</div>
1247<dl class="method">
1248<dt id="sas.data_util.registry.ExtensionRegistry.extensions">
1249<tt class="descname">extensions</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/registry.html#ExtensionRegistry.extensions"><span class="viewcode-link">[source]</span></a></dt>
1250<dd><p>Return a sorted list of registered extensions.</p>
1251</dd></dl>
1252
1253<dl class="method">
1254<dt id="sas.data_util.registry.ExtensionRegistry.formats">
1255<tt class="descname">formats</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/registry.html#ExtensionRegistry.formats"><span class="viewcode-link">[source]</span></a></dt>
1256<dd><p>Return a sorted list of the registered formats.</p>
1257</dd></dl>
1258
1259<dl class="method">
1260<dt id="sas.data_util.registry.ExtensionRegistry.load">
1261<tt class="descname">load</tt><big>(</big><em>path</em>, <em>format=None</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/registry.html#ExtensionRegistry.load"><span class="viewcode-link">[source]</span></a></dt>
1262<dd><p>Call the loader for the file type of path.</p>
1263<p>Raises ValueError if no loader is available.
1264Raises KeyError if format is not available.
1265May raise a loader-defined exception if loader fails.</p>
1266</dd></dl>
1267
1268<dl class="method">
1269<dt id="sas.data_util.registry.ExtensionRegistry.lookup">
1270<tt class="descname">lookup</tt><big>(</big><em>path</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/registry.html#ExtensionRegistry.lookup"><span class="viewcode-link">[source]</span></a></dt>
1271<dd><p>Return the loader associated with the file type of path.</p>
1272<p>Raises ValueError if file type is not known.</p>
1273</dd></dl>
1274
1275</dd></dl>
1276
1277<dl class="function">
1278<dt id="sas.data_util.registry.test">
1279<tt class="descclassname">sas.data_util.registry.</tt><tt class="descname">test</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/registry.html#test"><span class="viewcode-link">[source]</span></a></dt>
1280<dd></dd></dl>
1281
1282</div>
1283<div class="section" id="module-sas.data_util.uncertainty">
1284<span id="sas-data-util-uncertainty-module"></span><h2>sas.data_util.uncertainty module</h2>
1285<p>Uncertainty propagation class, and log() and exp() functions.</p>
1286<p>Based on scalars or numpy vectors, this class allows you to store and
1287manipulate values+uncertainties, with propagation of gaussian error for
1288addition, subtraction, multiplication, division, power, exp() and log().</p>
1289<p>Storage properties are determined by the numbers used to set the value
1290and uncertainty.  Be sure to use floating point uncertainty vectors
1291for inplace operations since numpy does not do automatic type conversion.
1292Normal operations can use mixed integer and floating point.  In place
1293operations (a <a href="#id7"><span class="problematic" id="id8">*</span></a>= b, etc.) create at most one extra copy for each operation.
1294c = a*b by contrast uses four intermediate vectors, so shouldn&#8217;t be used
1295for huge arrays.</p>
1296<dl class="class">
1297<dt id="sas.data_util.uncertainty.Uncertainty">
1298<em class="property">class </em><tt class="descclassname">sas.data_util.uncertainty.</tt><tt class="descname">Uncertainty</tt><big>(</big><em>x</em>, <em>variance=None</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/uncertainty.html#Uncertainty"><span class="viewcode-link">[source]</span></a></dt>
1299<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
1300<dl class="attribute">
1301<dt id="sas.data_util.uncertainty.Uncertainty.dx">
1302<tt class="descname">dx</tt></dt>
1303<dd><p>standard deviation</p>
1304</dd></dl>
1305
1306<dl class="method">
1307<dt id="sas.data_util.uncertainty.Uncertainty.exp">
1308<tt class="descname">exp</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/uncertainty.html#Uncertainty.exp"><span class="viewcode-link">[source]</span></a></dt>
1309<dd></dd></dl>
1310
1311<dl class="method">
1312<dt id="sas.data_util.uncertainty.Uncertainty.log">
1313<tt class="descname">log</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/uncertainty.html#Uncertainty.log"><span class="viewcode-link">[source]</span></a></dt>
1314<dd></dd></dl>
1315
1316</dd></dl>
1317
1318</div>
1319<div class="section" id="module-sas.data_util.uniquelist">
1320<span id="sas-data-util-uniquelist-module"></span><h2>sas.data_util.uniquelist module</h2>
1321<dl class="function">
1322<dt id="sas.data_util.uniquelist.main">
1323<tt class="descclassname">sas.data_util.uniquelist.</tt><tt class="descname">main</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/uniquelist.html#main"><span class="viewcode-link">[source]</span></a></dt>
1324<dd></dd></dl>
1325
1326<dl class="function">
1327<dt id="sas.data_util.uniquelist.test">
1328<tt class="descclassname">sas.data_util.uniquelist.</tt><tt class="descname">test</tt><big>(</big><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/uniquelist.html#test"><span class="viewcode-link">[source]</span></a></dt>
1329<dd></dd></dl>
1330
1331<dl class="function">
1332<dt id="sas.data_util.uniquelist.uniquelist">
1333<tt class="descclassname">sas.data_util.uniquelist.</tt><tt class="descname">uniquelist</tt><big>(</big><em>inputlist</em>, <em>hash=None</em><big>)</big><a class="reference internal" href="../../_modules/sas/data_util/uniquelist.html#uniquelist"><span class="viewcode-link">[source]</span></a></dt>
1334<dd><p>remove redunduant elements from the give list
1335and return a list of unique elements.</p>
1336<p>inputlist: input list
1337hash: use this function to make the items in the list hashable.</p>
1338<dl class="docutils">
1339<dt>Implementation details:</dt>
1340<dd>This function is order-preserving.</dd>
1341</dl>
1342</dd></dl>
1343
1344</div>
1345<div class="section" id="module-sas.data_util">
1346<span id="module-contents"></span><h2>Module contents</h2>
1347</div>
1348</div>
1349
1350
1351          </div>
1352        </div>
1353      </div>
1354      <div class="sphinxsidebar">
1355        <div class="sphinxsidebarwrapper">
1356  <h3><a href="../../index.html">Table Of Contents</a></h3>
1357  <ul>
1358<li><a class="reference internal" href="#">sas.data_util package</a><ul>
1359<li><a class="reference internal" href="#submodules">Submodules</a></li>
1360<li><a class="reference internal" href="#module-sas.data_util.calcthread">sas.data_util.calcthread module</a></li>
1361<li><a class="reference internal" href="#module-sas.data_util.err1d">sas.data_util.err1d module</a></li>
1362<li><a class="reference internal" href="#module-sas.data_util.formatnum">sas.data_util.formatnum module</a></li>
1363<li><a class="reference internal" href="#module-sas.data_util.nxsunit">sas.data_util.nxsunit module</a></li>
1364<li><a class="reference internal" href="#module-sas.data_util.odict">sas.data_util.odict module</a></li>
1365<li><a class="reference internal" href="#module-sas.data_util.ordereddict">sas.data_util.ordereddict module</a></li>
1366<li><a class="reference internal" href="#module-sas.data_util.ordereddicttest">sas.data_util.ordereddicttest module</a></li>
1367<li><a class="reference internal" href="#module-sas.data_util.pathutils">sas.data_util.pathutils module</a></li>
1368<li><a class="reference internal" href="#module-sas.data_util.registry">sas.data_util.registry module</a></li>
1369<li><a class="reference internal" href="#module-sas.data_util.uncertainty">sas.data_util.uncertainty module</a></li>
1370<li><a class="reference internal" href="#module-sas.data_util.uniquelist">sas.data_util.uniquelist module</a></li>
1371<li><a class="reference internal" href="#module-sas.data_util">Module contents</a></li>
1372</ul>
1373</li>
1374</ul>
1375
1376  <h4>Previous topic</h4>
1377  <p class="topless"><a href="sas.calculator.html"
1378                        title="previous chapter">sas.calculator package</a></p>
1379  <h4>Next topic</h4>
1380  <p class="topless"><a href="sas.dataloader.html"
1381                        title="next chapter">sas.dataloader package</a></p>
1382  <h3>This Page</h3>
1383  <ul class="this-page-menu">
1384    <li><a href="../../_sources/dev/api/sas.data_util.txt"
1385           rel="nofollow">Show Source</a></li>
1386  </ul>
1387<div id="searchbox" style="display: none">
1388  <h3>Quick search</h3>
1389    <form class="search" action="../../search.html" method="get">
1390      <input type="text" name="q" />
1391      <input type="submit" value="Go" />
1392      <input type="hidden" name="check_keywords" value="yes" />
1393      <input type="hidden" name="area" value="default" />
1394    </form>
1395    <p class="searchtip" style="font-size: 90%">
1396    Enter search terms or a module, class or function name.
1397    </p>
1398</div>
1399<script type="text/javascript">$('#searchbox').show(0);</script>
1400        </div>
1401      </div>
1402      <div class="clearer"></div>
1403    </div>
1404    <div class="related">
1405      <h3>Navigation</h3>
1406      <ul>
1407        <li class="right" style="margin-right: 10px">
1408          <a href="../../genindex.html" title="General Index"
1409             >index</a></li>
1410        <li class="right" >
1411          <a href="../../py-modindex.html" title="Python Module Index"
1412             >modules</a> |</li>
1413        <li class="right" >
1414          <a href="sas.dataloader.html" title="sas.dataloader package"
1415             >next</a> |</li>
1416        <li class="right" >
1417          <a href="sas.calculator.html" title="sas.calculator package"
1418             >previous</a> |</li>
1419        <li><a href="../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
1420          <li><a href="../dev.html" >Developer Documentation</a> &raquo;</li>
1421          <li><a href="modules.html" >lib.macosx-10.5-x86_64-2.7</a> &raquo;</li>
1422          <li><a href="sas.html" >sas package</a> &raquo;</li> 
1423      </ul>
1424    </div>
1425    <div class="footer">
1426        &copy; Copyright 2013, The SasView Project.
1427      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
1428    </div>
1429  </body>
1430</html>
Note: See TracBrowser for help on using the repository browser.