source: sasview/_modules/sas/guiframe/data_manager.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: 48.1 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.guiframe.data_manager &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.guiframe" href="../guiframe.html" /> 
29  </head>
30  <body>
31    <div class="related">
32      <h3>Navigation</h3>
33      <ul>
34        <li class="right" style="margin-right: 10px">
35          <a href="../../../genindex.html" title="General Index"
36             accesskey="I">index</a></li>
37        <li class="right" >
38          <a href="../../../py-modindex.html" title="Python Module Index"
39             >modules</a> |</li>
40        <li><a href="../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
41          <li><a href="../../index.html" >Module code</a> &raquo;</li>
42          <li><a href="../guiframe.html" accesskey="U">sas.guiframe</a> &raquo;</li> 
43      </ul>
44    </div> 
45
46    <div class="document">
47      <div class="documentwrapper">
48        <div class="bodywrapper">
49          <div class="body">
50           
51  <h1>Source code for sas.guiframe.data_manager</h1><div class="highlight"><pre>
52<span class="c">################################################################################</span>
53<span class="c">#This software was developed by the University of Tennessee as part of the</span>
54<span class="c">#Distributed Data Analysis of Neutron Scattering Experiments (DANSE)</span>
55<span class="c">#project funded by the US National Science Foundation. </span>
56<span class="c">#</span>
57<span class="c">#See the license text in license.txt</span>
58<span class="c">#</span>
59<span class="c">#copyright 2010, University of Tennessee</span>
60<span class="c">################################################################################</span>
61<span class="sd">&quot;&quot;&quot;</span>
62<span class="sd">This module manages all data loaded into the application. Data_manager makes </span>
63<span class="sd">available all data loaded  for the current perspective. </span>
64
65<span class="sd">All modules &quot;creating Data&quot; posts their data to data_manager . </span>
66<span class="sd">Data_manager  make these new data available for all other perspectives.</span>
67<span class="sd">&quot;&quot;&quot;</span>
68<span class="kn">import</span> <span class="nn">logging</span>
69<span class="kn">import</span> <span class="nn">os</span>
70<span class="kn">import</span> <span class="nn">copy</span> 
71
72<span class="kn">from</span> <span class="nn">sas.guiframe.data_state</span> <span class="kn">import</span> <span class="n">DataState</span>
73<span class="kn">from</span> <span class="nn">sas.guiframe.utils</span> <span class="kn">import</span> <span class="n">parse_name</span>
74<span class="kn">import</span> <span class="nn">sas.dataloader.data_info</span> <span class="kn">as</span> <span class="nn">DataInfo</span>
75<span class="kn">from</span> <span class="nn">sas.guiframe.dataFitting</span> <span class="kn">import</span> <span class="n">Data1D</span>
76<span class="kn">from</span> <span class="nn">sas.guiframe.dataFitting</span> <span class="kn">import</span> <span class="n">Data2D</span>
77<span class="kn">import</span> <span class="nn">time</span>
78
79<div class="viewcode-block" id="DataManager"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager">[docs]</a><span class="k">class</span> <span class="nc">DataManager</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
80    <span class="sd">&quot;&quot;&quot;</span>
81<span class="sd">    Manage a list of data</span>
82<span class="sd">    &quot;&quot;&quot;</span>
83    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
84        <span class="sd">&quot;&quot;&quot;</span>
85<span class="sd">        Store opened path and data object created at the loading time</span>
86<span class="sd">        :param auto_plot: if True the datamanager sends data to plotting </span>
87<span class="sd">                            plugin. </span>
88<span class="sd">        :param auto_set_data: if True the datamanager sends to the current</span>
89<span class="sd">        perspective</span>
90<span class="sd">        &quot;&quot;&quot;</span>
91        <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span> <span class="o">=</span> <span class="p">{}</span>
92        <span class="bp">self</span><span class="o">.</span><span class="n">message</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
93        <span class="bp">self</span><span class="o">.</span><span class="n">data_name_dict</span> <span class="o">=</span> <span class="p">{}</span>
94        <span class="bp">self</span><span class="o">.</span><span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
95        <span class="bp">self</span><span class="o">.</span><span class="n">list_of_id</span> <span class="o">=</span> <span class="p">[]</span>
96        <span class="bp">self</span><span class="o">.</span><span class="n">time_stamp</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
97     
98    <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
99        <span class="n">_str</span>  <span class="o">=</span> <span class="s">&quot;&quot;</span>
100        <span class="n">_str</span> <span class="o">+=</span> <span class="s">&quot;No of states  is </span><span class="si">%s</span><span class="s"> </span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">))</span>
101        <span class="n">n_count</span> <span class="o">=</span> <span class="mi">0</span>
102        <span class="k">for</span>  <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
103            <span class="n">n_count</span> <span class="o">+=</span> <span class="mi">1</span> 
104            <span class="n">_str</span> <span class="o">+=</span> <span class="s">&quot;State No </span><span class="si">%s</span><span class="s"> </span><span class="se">\n</span><span class="s">&quot;</span>  <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">n_count</span><span class="p">)</span>
105            <span class="n">_str</span> <span class="o">+=</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span>
106        <span class="k">return</span> <span class="n">_str</span>
107       
108<div class="viewcode-block" id="DataManager.create_gui_data"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.create_gui_data">[docs]</a>    <span class="k">def</span> <span class="nf">create_gui_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
109        <span class="sd">&quot;&quot;&quot;</span>
110<span class="sd">        Receive data from loader and create a data to use for guiframe</span>
111<span class="sd">        &quot;&quot;&quot;</span>
112       
113        <span class="k">if</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">Data2D</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">__class__</span><span class="p">):</span>
114            <span class="n">new_plot</span> <span class="o">=</span> <span class="n">Data2D</span><span class="p">(</span><span class="n">image</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">err_image</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span> 
115        <span class="k">else</span><span class="p">:</span> 
116            <span class="n">new_plot</span> <span class="o">=</span> <span class="n">Data1D</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="p">[],</span> <span class="n">y</span><span class="o">=</span><span class="p">[],</span> <span class="n">dx</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dy</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
117           
118        <span class="n">new_plot</span><span class="o">.</span><span class="n">copy_from_datainfo</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
119        <span class="n">data</span><span class="o">.</span><span class="n">clone_without_data</span><span class="p">(</span><span class="n">clone</span><span class="o">=</span><span class="n">new_plot</span><span class="p">)</span>
120        <span class="c">#creating a name for data</span>
121        <span class="n">title</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
122        <span class="n">file_name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> <span class="k">if</span> <span class="n">path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="k">else</span> <span class="n">data</span><span class="o">.</span><span class="n">filename</span>
123        <span class="k">if</span> <span class="n">file_name</span><span class="p">:</span>
124            <span class="n">name</span> <span class="o">=</span> <span class="n">file_name</span>
125        <span class="k">elif</span> <span class="n">data</span><span class="o">.</span><span class="n">run</span><span class="p">:</span>
126            <span class="n">name</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">run</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
127        <span class="k">else</span><span class="p">:</span>
128            <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;data&quot;</span>
129        <span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
130        <span class="c">#find title</span>
131        <span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">strip</span><span class="p">():</span>
132            <span class="n">title</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">title</span>
133        <span class="k">if</span> <span class="n">title</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
134            <span class="n">title</span> <span class="o">=</span> <span class="n">file_name</span>
135       
136        <span class="k">if</span> <span class="n">new_plot</span><span class="o">.</span><span class="n">filename</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
137            <span class="n">new_plot</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">file_name</span>
138       
139        <span class="n">new_plot</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
140        <span class="n">new_plot</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
141        <span class="c">## allow to highlight data when plotted</span>
142        <span class="n">new_plot</span><span class="o">.</span><span class="n">interactive</span> <span class="o">=</span> <span class="bp">True</span>
143        <span class="c">## when 2 data have the same id override the 1 st plotted</span>
144        <span class="bp">self</span><span class="o">.</span><span class="n">time_stamp</span> <span class="o">+=</span> <span class="mi">1</span>
145        <span class="n">new_plot</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">time_stamp</span><span class="p">)</span>
146        <span class="c">##group_id specify on which panel to plot this data</span>
147        <span class="n">new_plot</span><span class="o">.</span><span class="n">group_id</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">time_stamp</span><span class="p">)</span>
148        <span class="n">new_plot</span><span class="o">.</span><span class="n">is_data</span> <span class="o">=</span> <span class="bp">True</span>
149        <span class="n">new_plot</span><span class="o">.</span><span class="n">path</span> <span class="o">=</span> <span class="n">path</span>
150        <span class="n">new_plot</span><span class="o">.</span><span class="n">list_group_id</span> <span class="o">=</span> <span class="p">[]</span>
151        <span class="c">##post data to plot</span>
152        <span class="c"># plot data</span>
153        <span class="k">return</span> <span class="n">new_plot</span>
154 </div>
155<div class="viewcode-block" id="DataManager.rename"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.rename">[docs]</a>    <span class="k">def</span> <span class="nf">rename</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
156        <span class="sd">&quot;&quot;&quot;</span>
157<span class="sd">        rename data</span>
158<span class="sd">        &quot;&quot;&quot;</span>
159        <span class="c">## name of the data allow to differentiate data when plotted</span>
160        <span class="n">name</span> <span class="o">=</span> <span class="n">parse_name</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="s">&quot;_&quot;</span><span class="p">)</span>
161       
162        <span class="n">max_char</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&quot;[&quot;</span><span class="p">)</span>
163        <span class="k">if</span> <span class="n">max_char</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
164            <span class="n">max_char</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
165        <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">max_char</span><span class="p">]</span>
166       
167        <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_name_dict</span><span class="p">:</span>
168            <span class="bp">self</span><span class="o">.</span><span class="n">data_name_dict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
169        <span class="k">else</span><span class="p">:</span>
170            <span class="bp">self</span><span class="o">.</span><span class="n">data_name_dict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
171            <span class="n">name</span> <span class="o">=</span> <span class="n">name</span> <span class="o">+</span> <span class="s">&quot; [&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_name_dict</span><span class="p">[</span><span class="n">name</span><span class="p">])</span> <span class="o">+</span> <span class="s">&quot;]&quot;</span>
172        <span class="k">return</span> <span class="n">name</span>
173   
174  </div>
175<div class="viewcode-block" id="DataManager.add_data"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.add_data">[docs]</a>    <span class="k">def</span> <span class="nf">add_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_list</span><span class="p">):</span>
176        <span class="sd">&quot;&quot;&quot;</span>
177<span class="sd">        receive a list of </span>
178<span class="sd">        &quot;&quot;&quot;</span>
179        <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">data_list</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
180            <span class="k">if</span> <span class="nb">id</span>  <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">:</span>
181                <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Data manager already stores </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
182                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;&quot;</span>
183                <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
184                <span class="n">data_state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span>
185                <span class="n">data_state</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">data</span>
186            <span class="k">else</span><span class="p">:</span>
187                <span class="n">data_state</span> <span class="o">=</span> <span class="n">DataState</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
188                <span class="n">data_state</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="nb">id</span>
189                <span class="n">data_state</span><span class="o">.</span><span class="n">path</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">path</span>
190                <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span> <span class="o">=</span> <span class="n">data_state</span>
191    </div>
192<div class="viewcode-block" id="DataManager.update_data"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.update_data">[docs]</a>    <span class="k">def</span> <span class="nf">update_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prev_data</span><span class="p">,</span> <span class="n">new_data</span><span class="p">):</span>
193        <span class="sd">&quot;&quot;&quot;</span>
194<span class="sd">        &quot;&quot;&quot;</span>
195        <span class="k">if</span> <span class="n">prev_data</span><span class="o">.</span><span class="n">id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
196            <span class="k">return</span> <span class="bp">None</span><span class="p">,</span> <span class="p">{}</span>
197        <span class="n">data_state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">prev_data</span><span class="o">.</span><span class="n">id</span><span class="p">]</span> 
198        <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">new_data</span><span class="o">.</span><span class="n">id</span><span class="p">]</span>  <span class="o">=</span> <span class="n">data_state</span><span class="o">.</span><span class="n">clone</span><span class="p">()</span>
199        <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">new_data</span><span class="o">.</span><span class="n">id</span><span class="p">]</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">new_data</span>
200        <span class="k">if</span> <span class="n">prev_data</span><span class="o">.</span><span class="n">id</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
201            <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">prev_data</span><span class="o">.</span><span class="n">id</span><span class="p">]</span> 
202        <span class="k">return</span> <span class="n">prev_data</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="p">{</span><span class="n">new_data</span><span class="o">.</span><span class="n">id</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">new_data</span><span class="o">.</span><span class="n">id</span><span class="p">]}</span>
203    </div>
204<div class="viewcode-block" id="DataManager.update_theory"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.update_theory">[docs]</a>    <span class="k">def</span> <span class="nf">update_theory</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">theory</span><span class="p">,</span> <span class="n">data_id</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">state</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
205        <span class="sd">&quot;&quot;&quot;</span>
206<span class="sd">        &quot;&quot;&quot;</span>
207        <span class="n">uid</span> <span class="o">=</span> <span class="n">data_id</span>
208        <span class="k">if</span> <span class="n">data_id</span> <span class="ow">is</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">theory</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
209            <span class="n">uid</span> <span class="o">=</span> <span class="n">theory</span><span class="o">.</span><span class="n">id</span>
210        <span class="k">if</span> <span class="n">uid</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
211             <span class="n">data_state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">uid</span><span class="p">]</span> 
212        <span class="k">else</span><span class="p">:</span>
213            <span class="n">data_state</span> <span class="o">=</span> <span class="n">DataState</span><span class="p">()</span>
214        <span class="n">data_state</span><span class="o">.</span><span class="n">uid</span> <span class="o">=</span> <span class="n">uid</span>
215        <span class="n">data_state</span><span class="o">.</span><span class="n">set_theory</span><span class="p">(</span><span class="n">theory_data</span><span class="o">=</span><span class="n">theory</span><span class="p">,</span> <span class="n">theory_state</span><span class="o">=</span><span class="n">state</span><span class="p">)</span>
216        <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">uid</span><span class="p">]</span> <span class="o">=</span> <span class="n">data_state</span>
217        <span class="k">return</span> <span class="p">{</span><span class="n">uid</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">uid</span><span class="p">]}</span>
218       
219    </div>
220<div class="viewcode-block" id="DataManager.get_message"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.get_message">[docs]</a>    <span class="k">def</span> <span class="nf">get_message</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
221        <span class="sd">&quot;&quot;&quot;</span>
222<span class="sd">        return message</span>
223<span class="sd">        &quot;&quot;&quot;</span>
224        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">message</span>
225    </div>
226<div class="viewcode-block" id="DataManager.get_by_id"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.get_by_id">[docs]</a>    <span class="k">def</span> <span class="nf">get_by_id</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">id_list</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
227        <span class="sd">&quot;&quot;&quot;</span>
228<span class="sd">        &quot;&quot;&quot;</span>
229        <span class="n">_selected_data</span> <span class="o">=</span> <span class="p">{}</span>
230        <span class="n">_selected_theory_list</span> <span class="o">=</span> <span class="p">{}</span>
231        <span class="k">if</span> <span class="n">id_list</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
232            <span class="k">return</span>
233        <span class="k">for</span> <span class="n">d_id</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">:</span>
234            <span class="k">for</span> <span class="n">search_id</span> <span class="ow">in</span> <span class="n">id_list</span><span class="p">:</span>
235                <span class="n">data_state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">d_id</span><span class="p">]</span>
236                <span class="n">data</span> <span class="o">=</span> <span class="n">data_state</span><span class="o">.</span><span class="n">data</span>
237                <span class="n">theory_list</span> <span class="o">=</span> <span class="n">data_state</span><span class="o">.</span><span class="n">get_theory</span><span class="p">()</span>
238                <span class="k">if</span> <span class="n">search_id</span> <span class="o">==</span> <span class="n">d_id</span><span class="p">:</span>
239                    <span class="n">_selected_data</span><span class="p">[</span><span class="n">search_id</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span>
240                <span class="k">if</span> <span class="n">search_id</span> <span class="ow">in</span> <span class="n">theory_list</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
241                     <span class="n">_selected_theory_list</span><span class="p">[</span><span class="n">search_id</span><span class="p">]</span> <span class="o">=</span> <span class="n">theory_list</span><span class="p">[</span><span class="n">search_id</span><span class="p">]</span>
242                   
243        <span class="k">return</span> <span class="n">_selected_data</span><span class="p">,</span> <span class="n">_selected_theory_list</span>
244   
245           </div>
246<div class="viewcode-block" id="DataManager.freeze"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.freeze">[docs]</a>    <span class="k">def</span> <span class="nf">freeze</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">theory_id</span><span class="p">):</span>
247        <span class="sd">&quot;&quot;&quot;</span>
248<span class="sd">        &quot;&quot;&quot;</span>
249        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">freeze_theory</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="o">.</span><span class="n">keys</span><span class="p">(),</span> <span class="n">theory_id</span><span class="p">)</span>
250        </div>
251<div class="viewcode-block" id="DataManager.freeze_theory"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.freeze_theory">[docs]</a>    <span class="k">def</span> <span class="nf">freeze_theory</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_id</span><span class="p">,</span> <span class="n">theory_id</span><span class="p">):</span>
252        <span class="sd">&quot;&quot;&quot;</span>
253<span class="sd">        &quot;&quot;&quot;</span>
254        <span class="n">selected_theory</span> <span class="o">=</span> <span class="p">{}</span>
255        <span class="k">for</span> <span class="n">d_id</span> <span class="ow">in</span> <span class="n">data_id</span><span class="p">:</span>
256            <span class="k">if</span> <span class="n">d_id</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">:</span>
257                <span class="n">data_state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">d_id</span><span class="p">]</span>
258                <span class="n">theory_list</span> <span class="o">=</span> <span class="n">data_state</span><span class="o">.</span><span class="n">get_theory</span><span class="p">()</span>
259                <span class="k">for</span> <span class="n">t_id</span> <span class="ow">in</span> <span class="n">theory_id</span><span class="p">:</span>
260                    <span class="k">if</span> <span class="n">t_id</span> <span class="ow">in</span> <span class="n">theory_list</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
261                        <span class="n">theory_data</span><span class="p">,</span> <span class="n">theory_state</span> <span class="o">=</span> <span class="n">theory_list</span><span class="p">[</span><span class="n">t_id</span><span class="p">]</span>
262                        <span class="n">new_theory</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">theory_data</span><span class="p">)</span>
263                        <span class="n">new_theory</span><span class="o">.</span><span class="n">id</span>  <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
264                        <span class="n">new_theory</span><span class="o">.</span><span class="n">is_data</span> <span class="o">=</span> <span class="bp">True</span>
265                        <span class="n">new_theory</span><span class="o">.</span><span class="n">name</span> <span class="o">+=</span> <span class="s">&#39;_@&#39;</span> <span class="o">+</span> \
266                                    <span class="nb">str</span><span class="p">(</span><span class="n">new_theory</span><span class="o">.</span><span class="n">id</span><span class="p">)[</span><span class="mi">7</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
267                        <span class="n">new_theory</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">new_theory</span><span class="o">.</span><span class="n">name</span>
268                        <span class="n">new_theory</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">new_theory</span><span class="o">.</span><span class="n">name</span>
269                        <span class="n">selected_theory</span><span class="p">[</span><span class="n">new_theory</span><span class="o">.</span><span class="n">id</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataState</span><span class="p">(</span><span class="n">new_theory</span><span class="p">)</span>
270                        <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">new_theory</span><span class="o">.</span><span class="n">id</span><span class="p">]</span> <span class="o">=</span> \
271                                    <span class="n">selected_theory</span><span class="p">[</span><span class="n">new_theory</span><span class="o">.</span><span class="n">id</span><span class="p">]</span>
272
273        <span class="k">return</span> <span class="n">selected_theory</span>
274                   
275            </div>
276<div class="viewcode-block" id="DataManager.delete_data"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.delete_data">[docs]</a>    <span class="k">def</span> <span class="nf">delete_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_id</span><span class="p">,</span> <span class="n">theory_id</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">delete_all</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
277        <span class="sd">&quot;&quot;&quot;</span>
278<span class="sd">        &quot;&quot;&quot;</span>
279        <span class="k">for</span> <span class="n">d_id</span> <span class="ow">in</span> <span class="n">data_id</span><span class="p">:</span>
280            <span class="k">if</span> <span class="n">d_id</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
281                <span class="n">data_state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">d_id</span><span class="p">]</span>
282                <span class="k">if</span> <span class="n">data_state</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_name_dict</span><span class="p">:</span>
283                    <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_name_dict</span><span class="p">[</span><span class="n">data_state</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">]</span>
284                <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">d_id</span><span class="p">]</span>
285       
286        <span class="bp">self</span><span class="o">.</span><span class="n">delete_theory</span><span class="p">(</span><span class="n">data_id</span><span class="p">,</span> <span class="n">theory_id</span><span class="p">)</span>
287        <span class="k">if</span> <span class="n">delete_all</span><span class="p">:</span>
288            <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span> <span class="o">=</span> <span class="p">{}</span>
289            <span class="bp">self</span><span class="o">.</span><span class="n">data_name_dict</span> <span class="o">=</span> <span class="p">{}</span>
290            </div>
291<div class="viewcode-block" id="DataManager.delete_theory"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.delete_theory">[docs]</a>    <span class="k">def</span> <span class="nf">delete_theory</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_id</span><span class="p">,</span> <span class="n">theory_id</span><span class="p">):</span>
292        <span class="sd">&quot;&quot;&quot;</span>
293<span class="sd">        &quot;&quot;&quot;</span>
294        <span class="k">for</span> <span class="n">d_id</span> <span class="ow">in</span> <span class="n">data_id</span><span class="p">:</span>
295            <span class="k">if</span> <span class="n">d_id</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">:</span>
296                <span class="n">data_state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="n">d_id</span><span class="p">]</span>
297                <span class="n">theory_list</span> <span class="o">=</span> <span class="n">data_state</span><span class="o">.</span><span class="n">get_theory</span><span class="p">()</span>
298                <span class="k">if</span> <span class="n">theory_id</span> <span class="ow">in</span> <span class="n">theory_list</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
299                    <span class="k">del</span> <span class="n">theory_list</span><span class="p">[</span><span class="n">theory_id</span><span class="p">]</span>
300        <span class="c">#del pure theory</span>
301        <span class="bp">self</span><span class="o">.</span><span class="n">delete_by_id</span><span class="p">(</span><span class="n">theory_id</span><span class="p">)</span>
302            </div>
303<div class="viewcode-block" id="DataManager.delete_by_id"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.delete_by_id">[docs]</a>    <span class="k">def</span> <span class="nf">delete_by_id</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">id_list</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
304        <span class="sd">&quot;&quot;&quot;</span>
305<span class="sd">        save data and path</span>
306<span class="sd">        &quot;&quot;&quot;</span>
307        <span class="k">for</span> <span class="nb">id</span> <span class="ow">in</span> <span class="n">id_list</span><span class="p">:</span>
308            <span class="k">if</span> <span class="nb">id</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">:</span>
309                <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span>
310         
311    </div>
312<div class="viewcode-block" id="DataManager.get_by_name"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.get_by_name">[docs]</a>    <span class="k">def</span> <span class="nf">get_by_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name_list</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
313        <span class="sd">&quot;&quot;&quot;</span>
314<span class="sd">        return a list of data given a list of data names</span>
315<span class="sd">        &quot;&quot;&quot;</span>
316        <span class="n">_selected_data</span> <span class="o">=</span> <span class="p">{}</span>
317        <span class="k">for</span> <span class="n">selected_name</span> <span class="ow">in</span> <span class="n">name_list</span><span class="p">:</span>
318            <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">data_state</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
319                <span class="k">if</span> <span class="n">data_state</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">selected_name</span><span class="p">:</span>
320                    <span class="n">_selected_data</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span> <span class="o">=</span> <span class="n">data_state</span><span class="o">.</span><span class="n">data</span>
321        <span class="k">return</span> <span class="n">_selected_data</span>
322    </div>
323<div class="viewcode-block" id="DataManager.delete_by_name"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.delete_by_name">[docs]</a>    <span class="k">def</span> <span class="nf">delete_by_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name_list</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
324        <span class="sd">&quot;&quot;&quot;</span>
325<span class="sd">        save data and path</span>
326<span class="sd">        &quot;&quot;&quot;</span>
327        <span class="k">for</span> <span class="n">selected_name</span> <span class="ow">in</span> <span class="n">name_list</span><span class="p">:</span>
328            <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">data_state</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
329                <span class="k">if</span> <span class="n">data_state</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">selected_name</span><span class="p">:</span>
330                    <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span>
331</div>
332<div class="viewcode-block" id="DataManager.get_data_state"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.get_data_state">[docs]</a>    <span class="k">def</span> <span class="nf">get_data_state</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_id</span><span class="p">):</span>
333        <span class="sd">&quot;&quot;&quot;</span>
334<span class="sd">        Send list of selected data</span>
335<span class="sd">        &quot;&quot;&quot;</span>
336        <span class="n">_selected_data_state</span> <span class="o">=</span> <span class="p">{}</span>
337        <span class="k">for</span> <span class="nb">id</span> <span class="ow">in</span> <span class="n">data_id</span><span class="p">:</span>
338            <span class="k">if</span> <span class="nb">id</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
339                <span class="n">_selected_data_state</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span>
340        <span class="k">return</span> <span class="n">_selected_data_state</span>
341    </div>
342<div class="viewcode-block" id="DataManager.get_all_data"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_manager.DataManager.get_all_data">[docs]</a>    <span class="k">def</span> <span class="nf">get_all_data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
343        <span class="sd">&quot;&quot;&quot;</span>
344<span class="sd">        return list of all available data</span>
345<span class="sd">        &quot;&quot;&quot;</span>
346        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_data</span>
347   
348
349        </div></div>
350</pre></div>
351
352          </div>
353        </div>
354      </div>
355      <div class="sphinxsidebar">
356        <div class="sphinxsidebarwrapper">
357<div id="searchbox" style="display: none">
358  <h3>Quick search</h3>
359    <form class="search" action="../../../search.html" method="get">
360      <input type="text" name="q" />
361      <input type="submit" value="Go" />
362      <input type="hidden" name="check_keywords" value="yes" />
363      <input type="hidden" name="area" value="default" />
364    </form>
365    <p class="searchtip" style="font-size: 90%">
366    Enter search terms or a module, class or function name.
367    </p>
368</div>
369<script type="text/javascript">$('#searchbox').show(0);</script>
370        </div>
371      </div>
372      <div class="clearer"></div>
373    </div>
374    <div class="related">
375      <h3>Navigation</h3>
376      <ul>
377        <li class="right" style="margin-right: 10px">
378          <a href="../../../genindex.html" title="General Index"
379             >index</a></li>
380        <li class="right" >
381          <a href="../../../py-modindex.html" title="Python Module Index"
382             >modules</a> |</li>
383        <li><a href="../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
384          <li><a href="../../index.html" >Module code</a> &raquo;</li>
385          <li><a href="../guiframe.html" >sas.guiframe</a> &raquo;</li> 
386      </ul>
387    </div>
388    <div class="footer">
389        &copy; Copyright 2013, The SasView Project.
390      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
391    </div>
392  </body>
393</html>
Note: See TracBrowser for help on using the repository browser.