source: sasview/_modules/sas/sasview/sasview.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: 23.3 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.sasview.sasview &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="Module code" href="../../index.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" accesskey="U">Module code</a> &raquo;</li> 
42      </ul>
43    </div> 
44
45    <div class="document">
46      <div class="documentwrapper">
47        <div class="bodywrapper">
48          <div class="body">
49           
50  <h1>Source code for sas.sasview.sasview</h1><div class="highlight"><pre>
51<span class="c">################################################################################</span>
52<span class="c">#This software was developed by the University of Tennessee as part of the</span>
53<span class="c">#Distributed Data Analysis of Neutron Scattering Experiments (DANSE)</span>
54<span class="c">#project funded by the US National Science Foundation. </span>
55<span class="c">#</span>
56<span class="c">#See the license text in license.txt</span>
57<span class="c">#</span>
58<span class="c">#copyright 2009, University of Tennessee</span>
59<span class="c">################################################################################</span>
60<span class="kn">import</span> <span class="nn">os</span>
61<span class="kn">import</span> <span class="nn">logging</span>
62<span class="kn">from</span> <span class="nn">shutil</span> <span class="kn">import</span> <span class="n">copy</span>
63<span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">INFO</span><span class="p">,</span>
64                    <span class="n">format</span><span class="o">=</span><span class="s">&#39;</span><span class="si">%(asctime)s</span><span class="s"> </span><span class="si">%(levelname)s</span><span class="s"> </span><span class="si">%(message)s</span><span class="s">&#39;</span><span class="p">,</span>
65                    <span class="n">filename</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">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="s">&quot;~&quot;</span><span class="p">),</span>
66                                          <span class="s">&#39;sasview.log&#39;</span><span class="p">))</span>
67
68<span class="c"># Allow the dynamic selection of wxPython via an evironment variable, when devs</span>
69<span class="c"># who have multiple versions of the module installed want to pick between them.</span>
70<span class="c"># This variable does not have to be set of course, and through normal usage will</span>
71<span class="c"># probably not be, but this can make things a little easier when upgrading to a</span>
72<span class="c"># new version of wx.</span>
73<span class="n">WX_ENV_VAR</span> <span class="o">=</span> <span class="s">&quot;SASVIEW_WX_VERSION&quot;</span>
74<span class="k">if</span> <span class="n">WX_ENV_VAR</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
75    <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&quot;You have set the </span><span class="si">%s</span><span class="s"> environment variable to </span><span class="si">%s</span><span class="s">.&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">WX_ENV_VAR</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">WX_ENV_VAR</span><span class="p">]))</span>
76    <span class="kn">import</span> <span class="nn">wxversion</span>
77    <span class="k">if</span> <span class="n">wxversion</span><span class="o">.</span><span class="n">checkInstalled</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">WX_ENV_VAR</span><span class="p">]):</span>
78        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&quot;Version </span><span class="si">%s</span><span class="s"> of wxPython is installed, so using that version.&quot;</span> <span class="o">%</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">WX_ENV_VAR</span><span class="p">])</span>
79        <span class="n">wxversion</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">WX_ENV_VAR</span><span class="p">])</span>
80    <span class="k">else</span><span class="p">:</span>
81        <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">&quot;Version </span><span class="si">%s</span><span class="s"> of wxPython is not installed, so using default version.&quot;</span> <span class="o">%</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">WX_ENV_VAR</span><span class="p">])</span>
82<span class="k">else</span><span class="p">:</span>
83    <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&quot;You have not set the </span><span class="si">%s</span><span class="s"> environment variable, so using default version of wxPython.&quot;</span> <span class="o">%</span> <span class="n">WX_ENV_VAR</span><span class="p">)</span>
84
85<span class="kn">import</span> <span class="nn">wx</span>
86<span class="kn">import</span> <span class="nn">sys</span>
87<span class="c"># The below will make sure that sasview application uses the matplotlib font </span>
88<span class="c"># bundled with sasview. </span>
89<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">sys</span><span class="p">,</span> <span class="s">&#39;frozen&#39;</span><span class="p">):</span>
90    <span class="n">mplconfigdir</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">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="s">&quot;~&quot;</span><span class="p">),</span> <span class="s">&#39;.matplotlib&#39;</span><span class="p">)</span>
91    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">mplconfigdir</span><span class="p">):</span>
92        <span class="n">os</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">mplconfigdir</span><span class="p">)</span>
93    <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s">&#39;MPLCONFIGDIR&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">mplconfigdir</span>
94    <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span> <span class="o">&lt;</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">7</span><span class="p">):</span>
95        <span class="nb">reload</span><span class="p">(</span><span class="n">sys</span><span class="p">)</span>
96    <span class="n">sys</span><span class="o">.</span><span class="n">setdefaultencoding</span><span class="p">(</span><span class="s">&quot;iso-8859-1&quot;</span><span class="p">)</span>
97<span class="kn">from</span> <span class="nn">sas.guiframe</span> <span class="kn">import</span> <span class="n">gui_manager</span>
98<span class="kn">from</span> <span class="nn">sas.guiframe.gui_style</span> <span class="kn">import</span> <span class="n">GUIFRAME</span>
99<span class="kn">from</span> <span class="nn">welcome_panel</span> <span class="kn">import</span> <span class="n">WelcomePanel</span>
100<span class="c"># For py2exe, import config here</span>
101<span class="kn">import</span> <span class="nn">local_config</span>
102<span class="n">PLUGIN_MODEL_DIR</span> <span class="o">=</span> <span class="s">&#39;plugin_models&#39;</span>
103<span class="n">APP_NAME</span> <span class="o">=</span> <span class="s">&#39;SasView&#39;</span>
104
105<span class="k">class</span> <span class="nc">SasViewApp</span><span class="p">(</span><span class="n">gui_manager</span><span class="o">.</span><span class="n">ViewApp</span><span class="p">):</span>
106<div class="viewcode-block" id="SasViewApp"><a class="viewcode-back" href="../../../dev/api/sas.sasview.html#sas.sasview.sasview.SasViewApp">[docs]</a>    <span class="sd">&quot;&quot;&quot;</span>
107<span class="sd">    &quot;&quot;&quot;</span>
108 
109
110<span class="k">class</span> <span class="nc">SasView</span><span class="p">():</span></div>
111<div class="viewcode-block" id="SasView"><a class="viewcode-back" href="../../../dev/api/sas.sasview.html#sas.sasview.sasview.SasView">[docs]</a>    <span class="sd">&quot;&quot;&quot;</span>
112<span class="sd">    &quot;&quot;&quot;</span>
113    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
114        <span class="sd">&quot;&quot;&quot;</span>
115<span class="sd">        &quot;&quot;&quot;</span>
116        <span class="c">#from gui_manager import ViewApp</span>
117        <span class="bp">self</span><span class="o">.</span><span class="n">gui</span> <span class="o">=</span> <span class="n">SasViewApp</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> 
118        <span class="c"># Set the application manager for the GUI</span>
119        <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">set_manager</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
120        <span class="c"># Add perspectives to the basic application</span>
121        <span class="c"># Additional perspectives can still be loaded</span>
122        <span class="c"># dynamically</span>
123        <span class="c"># Note: py2exe can&#39;t find dynamically loaded</span>
124        <span class="c"># modules. We load the fitting module here</span>
125        <span class="c"># to ensure a complete Windows executable build.</span>
126
127        <span class="c"># Fitting perspective</span>
128        <span class="k">try</span><span class="p">:</span>
129            <span class="kn">import</span> <span class="nn">sas.perspectives.fitting</span> <span class="kn">as</span> <span class="nn">module</span>   
130            <span class="n">fitting_plug</span> <span class="o">=</span> <span class="n">module</span><span class="o">.</span><span class="n">Plugin</span><span class="p">()</span>
131            <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">add_perspective</span><span class="p">(</span><span class="n">fitting_plug</span><span class="p">)</span>
132        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">inst</span><span class="p">:</span>
133            <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">&quot;Fitting problems: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">inst</span><span class="p">))</span>
134            <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: could not find Fitting plug-in module&quot;</span><span class="o">%</span> <span class="n">APP_NAME</span><span class="p">)</span> 
135            <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span>
136
137        <span class="c"># P(r) perspective</span>
138        <span class="k">try</span><span class="p">:</span>
139            <span class="kn">import</span> <span class="nn">sas.perspectives.pr</span> <span class="kn">as</span> <span class="nn">module</span>   
140            <span class="n">pr_plug</span> <span class="o">=</span> <span class="n">module</span><span class="o">.</span><span class="n">Plugin</span><span class="p">(</span><span class="n">standalone</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
141            <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">add_perspective</span><span class="p">(</span><span class="n">pr_plug</span><span class="p">)</span>
142        <span class="k">except</span><span class="p">:</span>
143            <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: could not find P(r) plug-in module&quot;</span><span class="o">%</span> <span class="n">APP_NAME</span><span class="p">)</span>
144            <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span> 
145       
146        <span class="c">#Invariant perspective</span>
147        <span class="k">try</span><span class="p">:</span>
148            <span class="kn">import</span> <span class="nn">sas.perspectives.invariant</span> <span class="kn">as</span> <span class="nn">module</span>   
149            <span class="n">invariant_plug</span> <span class="o">=</span> <span class="n">module</span><span class="o">.</span><span class="n">Plugin</span><span class="p">(</span><span class="n">standalone</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
150            <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">add_perspective</span><span class="p">(</span><span class="n">invariant_plug</span><span class="p">)</span>
151        <span class="k">except</span><span class="p">:</span>
152            <span class="k">raise</span>
153            <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: could not find Invariant plug-in module&quot;</span><span class="o">%</span> \
154                          <span class="n">APP_NAME</span><span class="p">)</span>
155            <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span> 
156       
157        <span class="c">#Calculator perspective   </span>
158        <span class="k">try</span><span class="p">:</span>
159            <span class="kn">import</span> <span class="nn">sas.perspectives.calculator</span> <span class="kn">as</span> <span class="nn">module</span>   
160            <span class="n">calculator_plug</span> <span class="o">=</span> <span class="n">module</span><span class="o">.</span><span class="n">Plugin</span><span class="p">(</span><span class="n">standalone</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
161            <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">add_perspective</span><span class="p">(</span><span class="n">calculator_plug</span><span class="p">)</span>
162        <span class="k">except</span><span class="p">:</span>
163            <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">: could not find Calculator plug-in module&quot;</span><span class="o">%</span> \
164                                                        <span class="n">APP_NAME</span><span class="p">)</span>
165            <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span> 
166       
167           
168        <span class="c"># Add welcome page</span>
169        <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">set_welcome_panel</span><span class="p">(</span><span class="n">WelcomePanel</span><span class="p">)</span>
170     
171        <span class="c"># Build the GUI</span>
172        <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">build_gui</span><span class="p">()</span>
173        <span class="c"># delete unused model folder    </span>
174        <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">clean_plugin_models</span><span class="p">(</span><span class="n">PLUGIN_MODEL_DIR</span><span class="p">)</span>
175        <span class="c"># Start the main loop</span>
176        <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">MainLoop</span><span class="p">()</span>
177
178
179<span class="k">def</span> <span class="nf">run</span><span class="p">():</span></div>
180<div class="viewcode-block" id="run"><a class="viewcode-back" href="../../../dev/api/sas.sasview.html#sas.sasview.sasview.run">[docs]</a>    <span class="kn">from</span> <span class="nn">multiprocessing</span> <span class="kn">import</span> <span class="n">freeze_support</span>
181    <span class="n">freeze_support</span><span class="p">()</span>
182    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
183        <span class="c">## Run sasview as an interactive python interpreter</span>
184        <span class="c">#if sys.argv[1] == &quot;-i&quot;:</span>
185        <span class="c">#    sys.argv = [&quot;ipython&quot;, &quot;--pylab&quot;]</span>
186        <span class="c">#    from IPython import start_ipython</span>
187        <span class="c">#    sys.exit(start_ipython())</span>
188        <span class="n">thing_to_run</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
189        <span class="n">sys</span><span class="o">.</span><span class="n">argv</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
190        <span class="kn">import</span> <span class="nn">runpy</span>
191        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">thing_to_run</span><span class="p">):</span>
192            <span class="n">runpy</span><span class="o">.</span><span class="n">run_path</span><span class="p">(</span><span class="n">thing_to_run</span><span class="p">,</span> <span class="n">run_name</span><span class="o">=</span><span class="s">&quot;__main__&quot;</span><span class="p">)</span>
193        <span class="k">else</span><span class="p">:</span>
194            <span class="n">runpy</span><span class="o">.</span><span class="n">run_module</span><span class="p">(</span><span class="n">thing_to_run</span><span class="p">,</span> <span class="n">run_name</span><span class="o">=</span><span class="s">&quot;__main__&quot;</span><span class="p">)</span>
195    <span class="k">else</span><span class="p">:</span>
196        <span class="n">SasView</span><span class="p">()</span>
197
198<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></div>
199    <span class="n">run</span><span class="p">()</span>
200</pre></div>
201
202          </div>
203        </div>
204      </div>
205      <div class="sphinxsidebar">
206        <div class="sphinxsidebarwrapper">
207<div id="searchbox" style="display: none">
208  <h3>Quick search</h3>
209    <form class="search" action="../../../search.html" method="get">
210      <input type="text" name="q" />
211      <input type="submit" value="Go" />
212      <input type="hidden" name="check_keywords" value="yes" />
213      <input type="hidden" name="area" value="default" />
214    </form>
215    <p class="searchtip" style="font-size: 90%">
216    Enter search terms or a module, class or function name.
217    </p>
218</div>
219<script type="text/javascript">$('#searchbox').show(0);</script>
220        </div>
221      </div>
222      <div class="clearer"></div>
223    </div>
224    <div class="related">
225      <h3>Navigation</h3>
226      <ul>
227        <li class="right" style="margin-right: 10px">
228          <a href="../../../genindex.html" title="General Index"
229             >index</a></li>
230        <li class="right" >
231          <a href="../../../py-modindex.html" title="Python Module Index"
232             >modules</a> |</li>
233        <li><a href="../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
234          <li><a href="../../index.html" >Module code</a> &raquo;</li> 
235      </ul>
236    </div>
237    <div class="footer">
238        &copy; Copyright 2013, The SasView Project.
239      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
240    </div>
241  </body>
242</html>
Note: See TracBrowser for help on using the repository browser.