source: sasview/_modules/sas/perspectives/fitting/models.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: 148.8 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.perspectives.fitting.models &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.perspectives.fitting" href="../fitting.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="../fitting.html" accesskey="U">sas.perspectives.fitting</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.perspectives.fitting.models</h1><div class="highlight"><pre>
52<span class="sd">&quot;&quot;&quot;</span>
53<span class="sd">    Utilities to manage models</span>
54<span class="sd">&quot;&quot;&quot;</span>
55<span class="kn">import</span> <span class="nn">wx</span>
56<span class="kn">import</span> <span class="nn">imp</span>
57<span class="kn">import</span> <span class="nn">os</span>
58<span class="kn">import</span> <span class="nn">sys</span>
59<span class="kn">import</span> <span class="nn">math</span>
60<span class="kn">import</span> <span class="nn">os.path</span>
61<span class="c"># Time is needed by the log method</span>
62<span class="kn">import</span> <span class="nn">time</span>
63<span class="kn">import</span> <span class="nn">logging</span>
64<span class="kn">import</span> <span class="nn">py_compile</span>
65<span class="kn">import</span> <span class="nn">shutil</span>
66<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span>
67<span class="c"># Explicitly import from the pluginmodel module so that py2exe</span>
68<span class="c"># places it in the distribution. The Model1DPlugin class is used</span>
69<span class="c"># as the base class of plug-in models.</span>
70<span class="kn">from</span> <span class="nn">sas.models.pluginmodel</span> <span class="kn">import</span> <span class="n">Model1DPlugin</span>
71<span class="kn">from</span> <span class="nn">sas.models.BaseComponent</span> <span class="kn">import</span> <span class="n">BaseComponent</span>
72<span class="kn">from</span> <span class="nn">sas.guiframe.CategoryInstaller</span> <span class="kn">import</span> <span class="n">CategoryInstaller</span>
73   
74<span class="n">PLUGIN_DIR</span> <span class="o">=</span> <span class="s">&#39;plugin_models&#39;</span>
75
76<div class="viewcode-block" id="get_model_python_path"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.get_model_python_path">[docs]</a><span class="k">def</span> <span class="nf">get_model_python_path</span><span class="p">():</span>
77    <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">__file__</span><span class="p">)</span>
78
79</div>
80<div class="viewcode-block" id="log"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.log">[docs]</a><span class="k">def</span> <span class="nf">log</span><span class="p">(</span><span class="n">message</span><span class="p">):</span>
81    <span class="sd">&quot;&quot;&quot;</span>
82<span class="sd">        Log a message in a file located in the user&#39;s home directory</span>
83<span class="sd">    &quot;&quot;&quot;</span>
84    <span class="nb">dir</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;.sasview&#39;</span><span class="p">,</span> <span class="n">PLUGIN_DIR</span><span class="p">)</span>
85    <span class="n">out</span> <span class="o">=</span> <span class="nb">open</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">join</span><span class="p">(</span><span class="nb">dir</span><span class="p">,</span> <span class="s">&quot;plugins.log&quot;</span><span class="p">),</span> <span class="s">&#39;a&#39;</span><span class="p">)</span>
86    <span class="n">out</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%10g</span><span class="s"></span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">clock</span><span class="p">(),</span> <span class="n">message</span><span class="p">))</span>
87    <span class="n">out</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
88
89</div>
90<span class="k">def</span> <span class="nf">_check_plugin</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
91    <span class="sd">&quot;&quot;&quot;</span>
92<span class="sd">    Do some checking before model adding plugins in the list</span>
93<span class="sd">    </span>
94<span class="sd">    :param model: class model to add into the plugin list</span>
95<span class="sd">    :param name:name of the module plugin</span>
96<span class="sd">    </span>
97<span class="sd">    :return model: model if valid model or None if not valid</span>
98<span class="sd">    </span>
99<span class="sd">    &quot;&quot;&quot;</span>
100    <span class="c">#Check if the plugin is of type Model1DPlugin</span>
101    <span class="k">if</span> <span class="ow">not</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">Model1DPlugin</span><span class="p">):</span>
102        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Plugin </span><span class="si">%s</span><span class="s"> must be of type Model1DPlugin </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">name</span><span class="p">)</span>
103        <span class="n">log</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
104        <span class="k">return</span> <span class="bp">None</span>
105    <span class="k">if</span> <span class="n">model</span><span class="o">.</span><span class="n">__name__</span> <span class="o">!=</span> <span class="s">&quot;Model&quot;</span><span class="p">:</span>
106        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Plugin </span><span class="si">%s</span><span class="s"> class name must be Model </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">name</span><span class="p">)</span>
107        <span class="n">log</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
108        <span class="k">return</span> <span class="bp">None</span>
109    <span class="k">try</span><span class="p">:</span>
110        <span class="n">new_instance</span> <span class="o">=</span> <span class="n">model</span><span class="p">()</span>
111    <span class="k">except</span><span class="p">:</span>
112        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Plugin </span><span class="si">%s</span><span class="s"> error in __init__ </span><span class="se">\n\t</span><span class="s">: </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">),</span>
113                                    <span class="nb">str</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_type</span><span class="p">),</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span>
114        <span class="n">log</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
115        <span class="k">return</span> <span class="bp">None</span>
116   
117    <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">new_instance</span><span class="p">,</span> <span class="s">&quot;function&quot;</span><span class="p">):</span>
118        <span class="k">try</span><span class="p">:</span>
119            <span class="n">value</span> <span class="o">=</span> <span class="n">new_instance</span><span class="o">.</span><span class="n">function</span><span class="p">()</span>
120        <span class="k">except</span><span class="p">:</span>
121            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Plugin </span><span class="si">%s</span><span class="s">: error writing function </span><span class="se">\n\t</span><span class="s"> :</span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="se">\n</span><span class="s"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">),</span>
122                                    <span class="nb">str</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_type</span><span class="p">),</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span>
123            <span class="n">log</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
124            <span class="k">return</span> <span class="bp">None</span>
125    <span class="k">else</span><span class="p">:</span>
126        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Plugin  </span><span class="si">%s</span><span class="s"> needs a method called function </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">name</span><span class="p">)</span>
127        <span class="n">log</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
128        <span class="k">return</span> <span class="bp">None</span>
129    <span class="k">return</span> <span class="n">model</span>
130 
131 
132<div class="viewcode-block" id="find_plugins_dir"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.find_plugins_dir">[docs]</a><span class="k">def</span> <span class="nf">find_plugins_dir</span><span class="p">():</span>
133    <span class="sd">&quot;&quot;&quot;</span>
134<span class="sd">        Find path of the plugins directory.</span>
135<span class="sd">        The plugin directory is located in the user&#39;s home directory.</span>
136<span class="sd">    &quot;&quot;&quot;</span>
137    <span class="nb">dir</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;.sasview&#39;</span><span class="p">,</span> <span class="n">PLUGIN_DIR</span><span class="p">)</span>
138   
139    <span class="c"># If the plugin directory doesn&#39;t exist, create it</span>
140    <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">isdir</span><span class="p">(</span><span class="nb">dir</span><span class="p">):</span>
141        <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="nb">dir</span><span class="p">)</span>
142       
143    <span class="c"># Find paths needed</span>
144    <span class="k">try</span><span class="p">:</span>
145        <span class="c"># For source</span>
146        <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">isdir</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">dirname</span><span class="p">(</span><span class="n">__file__</span><span class="p">)):</span>
147            <span class="n">p_dir</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">dirname</span><span class="p">(</span><span class="n">__file__</span><span class="p">),</span> <span class="n">PLUGIN_DIR</span><span class="p">)</span>
148        <span class="k">else</span><span class="p">:</span>
149            <span class="k">raise</span>
150    <span class="k">except</span><span class="p">:</span>
151        <span class="c"># Check for data path next to exe/zip file.</span>
152        <span class="c">#Look for maximum n_dir up of the current dir to find plugins dir</span>
153        <span class="n">n_dir</span> <span class="o">=</span> <span class="mi">12</span>
154        <span class="n">p_dir</span> <span class="o">=</span> <span class="bp">None</span>
155        <span class="n">f_dir</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">dirname</span><span class="p">(</span><span class="n">__file__</span><span class="p">))</span>
156        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n_dir</span><span class="p">):</span>
157            <span class="k">if</span> <span class="n">i</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
158                <span class="n">f_dir</span><span class="p">,</span> <span class="n">_</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">split</span><span class="p">(</span><span class="n">f_dir</span><span class="p">)</span>
159            <span class="n">plugin_path</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">f_dir</span><span class="p">,</span> <span class="n">PLUGIN_DIR</span><span class="p">)</span>
160            <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">isdir</span><span class="p">(</span><span class="n">plugin_path</span><span class="p">):</span>
161                <span class="n">p_dir</span> <span class="o">=</span> <span class="n">plugin_path</span>
162                <span class="k">break</span>
163        <span class="k">if</span> <span class="ow">not</span> <span class="n">p_dir</span><span class="p">:</span>
164            <span class="k">raise</span>
165    <span class="c"># Place example user models as needed</span>
166    <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">isdir</span><span class="p">(</span><span class="n">p_dir</span><span class="p">):</span>
167        <span class="k">for</span> <span class="nb">file</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">p_dir</span><span class="p">):</span>
168            <span class="n">file_path</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">p_dir</span><span class="p">,</span> <span class="nb">file</span><span class="p">)</span>
169            <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">isfile</span><span class="p">(</span><span class="n">file_path</span><span class="p">):</span>
170                <span class="k">if</span> <span class="nb">file</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&quot;.&quot;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;py&#39;</span> <span class="ow">and</span>\
171                    <span class="nb">file</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&quot;.&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;__init__&#39;</span><span class="p">:</span>
172                    <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">isfile</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">join</span><span class="p">(</span><span class="nb">dir</span><span class="p">,</span> <span class="nb">file</span><span class="p">)):</span>
173                        <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="nb">dir</span><span class="p">)</span>
174
175    <span class="k">return</span> <span class="nb">dir</span>
176
177</div>
178<div class="viewcode-block" id="ReportProblem"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ReportProblem">[docs]</a><span class="k">class</span> <span class="nc">ReportProblem</span><span class="p">:</span>
179    <span class="k">def</span> <span class="nf">__nonzero__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
180        <span class="nb">type</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">traceback</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">()</span>
181        <span class="k">if</span> <span class="nb">type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="nb">issubclass</span><span class="p">(</span><span class="nb">type</span><span class="p">,</span> <span class="n">py_compile</span><span class="o">.</span><span class="n">PyCompileError</span><span class="p">):</span>
182            <span class="k">print</span> <span class="s">&quot;Problem with&quot;</span><span class="p">,</span> <span class="nb">repr</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
183            <span class="k">raise</span> <span class="nb">type</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">traceback</span>
184        <span class="k">return</span> <span class="mi">1</span>
185    </div>
186<span class="n">report_problem</span> <span class="o">=</span> <span class="n">ReportProblem</span><span class="p">()</span>
187
188
189<div class="viewcode-block" id="compile_file"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.compile_file">[docs]</a><span class="k">def</span> <span class="nf">compile_file</span><span class="p">(</span><span class="nb">dir</span><span class="p">):</span>
190    <span class="sd">&quot;&quot;&quot;</span>
191<span class="sd">    Compile a py file</span>
192<span class="sd">    &quot;&quot;&quot;</span>
193    <span class="k">try</span><span class="p">:</span>
194        <span class="kn">import</span> <span class="nn">compileall</span>
195        <span class="n">compileall</span><span class="o">.</span><span class="n">compile_dir</span><span class="p">(</span><span class="nb">dir</span><span class="o">=</span><span class="nb">dir</span><span class="p">,</span> <span class="n">ddir</span><span class="o">=</span><span class="nb">dir</span><span class="p">,</span> <span class="n">force</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
196                               <span class="n">quiet</span><span class="o">=</span><span class="n">report_problem</span><span class="p">)</span>
197    <span class="k">except</span><span class="p">:</span>
198        <span class="nb">type</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">traceback</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">()</span>
199        <span class="k">return</span> <span class="n">value</span>
200    <span class="k">return</span> <span class="bp">None</span>
201
202</div>
203<span class="k">def</span> <span class="nf">_findModels</span><span class="p">(</span><span class="nb">dir</span><span class="p">):</span>
204    <span class="sd">&quot;&quot;&quot;</span>
205<span class="sd">    &quot;&quot;&quot;</span>
206    <span class="c"># List of plugin objects</span>
207    <span class="n">plugins</span> <span class="o">=</span> <span class="p">{}</span>
208    <span class="c"># Go through files in plug-in directory</span>
209    <span class="c">#always recompile the folder plugin</span>
210    <span class="nb">dir</span> <span class="o">=</span> <span class="n">find_plugins_dir</span><span class="p">()</span>
211    <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">isdir</span><span class="p">(</span><span class="nb">dir</span><span class="p">):</span>
212        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;SasView couldn&#39;t locate Model plugin folder.&quot;</span>
213        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;&quot;&quot; &quot;</span><span class="si">%s</span><span class="s">&quot; does not exist&quot;&quot;&quot;</span> <span class="o">%</span> <span class="nb">dir</span>
214        <span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
215        <span class="k">return</span> <span class="n">plugins</span>
216    <span class="k">else</span><span class="p">:</span>
217        <span class="n">log</span><span class="p">(</span><span class="s">&quot;looking for models in: </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="nb">dir</span><span class="p">))</span>
218        <span class="n">compile_file</span><span class="p">(</span><span class="nb">dir</span><span class="p">)</span>
219        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&quot;pluging model dir: </span><span class="si">%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">dir</span><span class="p">))</span>
220    <span class="k">try</span><span class="p">:</span>
221        <span class="nb">list</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="nb">dir</span><span class="p">)</span>
222        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">:</span>
223            <span class="n">toks</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">splitext</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">basename</span><span class="p">(</span><span class="n">item</span><span class="p">))</span>
224            <span class="k">if</span> <span class="n">toks</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;.py&#39;</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">toks</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;__init__&#39;</span><span class="p">:</span>
225                <span class="n">name</span> <span class="o">=</span> <span class="n">toks</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
226           
227                <span class="n">path</span> <span class="o">=</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">abspath</span><span class="p">(</span><span class="nb">dir</span><span class="p">)]</span>
228                <span class="nb">file</span> <span class="o">=</span> <span class="bp">None</span>
229                <span class="k">try</span><span class="p">:</span>
230                    <span class="p">(</span><span class="nb">file</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">find_module</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span>
231                    <span class="n">module</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">load_module</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">file</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
232                    <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="s">&quot;Model&quot;</span><span class="p">):</span>
233                        <span class="k">try</span><span class="p">:</span>
234                            <span class="k">if</span> <span class="n">_check_plugin</span><span class="p">(</span><span class="n">module</span><span class="o">.</span><span class="n">Model</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
235                                <span class="n">plugins</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">module</span><span class="o">.</span><span class="n">Model</span>
236                        <span class="k">except</span><span class="p">:</span>
237                            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Error accessing Model&quot;</span>
238                            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;in </span><span class="si">%s</span><span class="se">\n</span><span class="s">  </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span>
239                                    <span class="nb">str</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_type</span><span class="p">),</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span>
240                            <span class="n">log</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
241                <span class="k">except</span><span class="p">:</span>
242                    <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Error accessing Model&quot;</span>
243                    <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; in </span><span class="si">%s</span><span class="se">\n</span><span class="s">  </span><span class="si">%s</span><span class="s"> </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="p">(</span><span class="n">name</span><span class="p">,</span>
244                                    <span class="nb">str</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_type</span><span class="p">),</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span>
245                    <span class="n">log</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
246                <span class="k">finally</span><span class="p">:</span>
247             
248                    <span class="k">if</span> <span class="ow">not</span> <span class="nb">file</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
249                        <span class="nb">file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
250    <span class="k">except</span><span class="p">:</span>
251        <span class="c"># Don&#39;t deal with bad plug-in imports. Just skip.</span>
252        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Could not import model plugin: </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span>
253        <span class="n">log</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
254        <span class="k">pass</span>
255    <span class="k">return</span> <span class="n">plugins</span>
256
257
258<div class="viewcode-block" id="ModelList"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelList">[docs]</a><span class="k">class</span> <span class="nc">ModelList</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
259    <span class="sd">&quot;&quot;&quot;</span>
260<span class="sd">    Contains dictionary of model and their type</span>
261<span class="sd">    &quot;&quot;&quot;</span>
262    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
263        <span class="sd">&quot;&quot;&quot;</span>
264<span class="sd">        &quot;&quot;&quot;</span>
265        <span class="bp">self</span><span class="o">.</span><span class="n">mydict</span> <span class="o">=</span> <span class="p">{}</span>
266       
267<div class="viewcode-block" id="ModelList.set_list"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelList.set_list">[docs]</a>    <span class="k">def</span> <span class="nf">set_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">mylist</span><span class="p">):</span>
268        <span class="sd">&quot;&quot;&quot;</span>
269<span class="sd">        :param name: the type of the list</span>
270<span class="sd">        :param mylist: the list to add</span>
271<span class="sd">        </span>
272<span class="sd">        &quot;&quot;&quot;</span>
273        <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">mydict</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
274            <span class="bp">self</span><span class="o">.</span><span class="n">reset_list</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">mylist</span><span class="p">)</span>
275            </div>
276<div class="viewcode-block" id="ModelList.reset_list"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelList.reset_list">[docs]</a>    <span class="k">def</span> <span class="nf">reset_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">mylist</span><span class="p">):</span>
277        <span class="sd">&quot;&quot;&quot;</span>
278<span class="sd">        :param name: the type of the list</span>
279<span class="sd">        :param mylist: the list to add</span>
280<span class="sd">        &quot;&quot;&quot;</span>
281        <span class="bp">self</span><span class="o">.</span><span class="n">mydict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">mylist</span>
282            </div>
283<div class="viewcode-block" id="ModelList.get_list"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelList.get_list">[docs]</a>    <span class="k">def</span> <span class="nf">get_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
284        <span class="sd">&quot;&quot;&quot;</span>
285<span class="sd">        return all the list stored in a dictionary object</span>
286<span class="sd">        &quot;&quot;&quot;</span>
287        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">mydict</span>
288       
289        </div></div>
290<div class="viewcode-block" id="ModelManagerBase"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManagerBase">[docs]</a><span class="k">class</span> <span class="nc">ModelManagerBase</span><span class="p">:</span>
291    <span class="sd">&quot;&quot;&quot;</span>
292<span class="sd">        Base class for the model manager</span>
293<span class="sd">    &quot;&quot;&quot;</span>
294    <span class="c">## external dict for models</span>
295    <span class="n">model_combobox</span> <span class="o">=</span> <span class="n">ModelList</span><span class="p">()</span>
296    <span class="c">## Dictionary of form factor models</span>
297    <span class="n">form_factor_dict</span> <span class="o">=</span> <span class="p">{}</span>
298    <span class="c">## dictionary of structure factor models</span>
299    <span class="n">struct_factor_dict</span> <span class="o">=</span> <span class="p">{}</span>
300    <span class="c">##list of shape models -- this is superseded by categories </span>
301<span class="c">#    shape_list = []</span>
302    <span class="c">## shape independent model list-- this is superseded by categories</span>
303<span class="c">#    shape_indep_list = []</span>
304    <span class="c">##list of structure factors</span>
305    <span class="n">struct_list</span> <span class="o">=</span> <span class="p">[]</span>
306    <span class="c">##list of model allowing multiplication by a structure factor</span>
307    <span class="n">multiplication_factor</span> <span class="o">=</span> <span class="p">[]</span>
308    <span class="c">##list of multifunctional shapes (i.e. that have user defined number of levels</span>
309    <span class="n">multi_func_list</span> <span class="o">=</span> <span class="p">[]</span>
310    <span class="c">## list of added models -- currently python models found in the plugin dir.</span>
311    <span class="n">plugins</span> <span class="o">=</span> <span class="p">[]</span>
312    <span class="c">## Event owner (guiframe)</span>
313    <span class="n">event_owner</span> <span class="o">=</span> <span class="bp">None</span>
314    <span class="n">last_time_dir_modified</span> <span class="o">=</span> <span class="mi">0</span>
315   
316    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
317        <span class="sd">&quot;&quot;&quot;</span>
318<span class="sd">        &quot;&quot;&quot;</span>
319        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span> <span class="o">=</span> <span class="p">{}</span>
320        <span class="bp">self</span><span class="o">.</span><span class="n">stored_plugins</span> <span class="o">=</span> <span class="p">{}</span>
321        <span class="bp">self</span><span class="o">.</span><span class="n">_getModelList</span><span class="p">()</span>
322       
323<div class="viewcode-block" id="ModelManagerBase.findModels"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManagerBase.findModels">[docs]</a>    <span class="k">def</span> <span class="nf">findModels</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
324        <span class="sd">&quot;&quot;&quot;</span>
325<span class="sd">        find  plugin model in directory of plugin .recompile all file</span>
326<span class="sd">        in the directory if file were modified</span>
327<span class="sd">        &quot;&quot;&quot;</span>
328        <span class="n">temp</span> <span class="o">=</span> <span class="p">{}</span>
329        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_changed</span><span class="p">():</span>
330            <span class="k">return</span>  <span class="n">_findModels</span><span class="p">(</span><span class="nb">dir</span><span class="p">)</span>
331        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&quot;pluging model : </span><span class="si">%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">temp</span><span class="p">))</span>
332        <span class="k">return</span> <span class="n">temp</span>
333        </div>
334    <span class="k">def</span> <span class="nf">_getModelList</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
335        <span class="sd">&quot;&quot;&quot;</span>
336<span class="sd">        List of models we want to make available by default</span>
337<span class="sd">        for this application</span>
338<span class="sd">    </span>
339<span class="sd">        :return: the next free event ID following the new menu events</span>
340<span class="sd">        </span>
341<span class="sd">        &quot;&quot;&quot;</span>
342
343        <span class="c">## NOTE: as of April 26, 2014, as part of first pass on fixing categories,</span>
344        <span class="c">## all the appends to shape_list or shape_independent_list are </span>
345        <span class="c">## commented out.  They should be possible to remove.  They are in </span>
346        <span class="c">## fact a &quot;category&quot; of model whereas the other list are actually </span>
347        <span class="c">## &quot;attributes&quot; of a model.  In other words is it a structure factor</span>
348        <span class="c">## that can be used against a form factor, is it a form factor that is</span>
349        <span class="c">## knows how to be multiplied by a structure factor, does it have user</span>
350        <span class="c">## defined number of parameters, etc.</span>
351        <span class="c">##</span>
352        <span class="c">## We hope this whole list will be superseded by the new C models</span>
353        <span class="c">## structure where each model will provide a method to interrogate it</span>
354        <span class="c">## about its &quot;attributes&quot; -- then this long list becomes a loop reading</span>
355        <span class="c">## each model in the category list to populate the &quot;attribute&quot;lists.  </span>
356        <span class="c">## We should also refactor the whole category vs attribute list </span>
357        <span class="c">## structure when doing this as now the attribute lists think they are</span>
358        <span class="c">## also category lists.</span>
359        <span class="c">##</span>
360        <span class="c">##   -PDB  April 26, 2014</span>
361
362        <span class="c"># regular model names only</span>
363        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span> <span class="o">=</span> <span class="p">[]</span>
364        <span class="kn">from</span> <span class="nn">sas.models.SphereModel</span> <span class="kn">import</span> <span class="n">SphereModel</span>
365        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">SphereModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">SphereModel</span>
366<span class="c">#        self.shape_list.append(SphereModel)</span>
367        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">SphereModel</span><span class="p">)</span>
368        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">SphereModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
369       
370        <span class="kn">from</span> <span class="nn">sas.models.BinaryHSModel</span> <span class="kn">import</span> <span class="n">BinaryHSModel</span>
371        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">BinaryHSModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">BinaryHSModel</span>
372<span class="c">#        self.shape_list.append(BinaryHSModel)</span>
373        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">BinaryHSModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
374                       
375        <span class="kn">from</span> <span class="nn">sas.models.FuzzySphereModel</span> <span class="kn">import</span> <span class="n">FuzzySphereModel</span>
376        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">FuzzySphereModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">FuzzySphereModel</span>
377<span class="c">#        self.shape_list.append(FuzzySphereModel)</span>
378        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">FuzzySphereModel</span><span class="p">)</span>
379        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">FuzzySphereModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
380                       
381        <span class="kn">from</span> <span class="nn">sas.models.RaspBerryModel</span> <span class="kn">import</span> <span class="n">RaspBerryModel</span>
382        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">RaspBerryModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">RaspBerryModel</span>
383<span class="c">#        self.shape_list.append(RaspBerryModel)</span>
384        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">RaspBerryModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
385               
386        <span class="kn">from</span> <span class="nn">sas.models.CoreShellModel</span> <span class="kn">import</span> <span class="n">CoreShellModel</span>
387        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">CoreShellModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">CoreShellModel</span>
388<span class="c">#        self.shape_list.append(CoreShellModel)</span>
389        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreShellModel</span><span class="p">)</span>
390        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreShellModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
391       
392        <span class="kn">from</span> <span class="nn">sas.models.Core2ndMomentModel</span> <span class="kn">import</span> <span class="n">Core2ndMomentModel</span>
393        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">Core2ndMomentModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">Core2ndMomentModel</span>
394<span class="c">#        self.shape_list.append(Core2ndMomentModel)</span>
395        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Core2ndMomentModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
396       
397        <span class="kn">from</span> <span class="nn">sas.models.CoreMultiShellModel</span> <span class="kn">import</span> <span class="n">CoreMultiShellModel</span>
398        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">CoreMultiShellModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">CoreMultiShellModel</span>
399<span class="c">#        self.shape_list.append(CoreMultiShellModel)</span>
400        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreMultiShellModel</span><span class="p">)</span>
401        <span class="bp">self</span><span class="o">.</span><span class="n">multi_func_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreMultiShellModel</span><span class="p">)</span>
402
403        <span class="kn">from</span> <span class="nn">sas.models.VesicleModel</span> <span class="kn">import</span> <span class="n">VesicleModel</span>
404        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">VesicleModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">VesicleModel</span>
405<span class="c">#        self.shape_list.append(VesicleModel)</span>
406        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">VesicleModel</span><span class="p">)</span>
407        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">VesicleModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
408       
409        <span class="kn">from</span> <span class="nn">sas.models.MultiShellModel</span> <span class="kn">import</span> <span class="n">MultiShellModel</span>
410        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">MultiShellModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">MultiShellModel</span>
411<span class="c">#        self.shape_list.append(MultiShellModel)</span>
412        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">MultiShellModel</span><span class="p">)</span>
413        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">MultiShellModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
414       
415        <span class="kn">from</span> <span class="nn">sas.models.OnionExpShellModel</span> <span class="kn">import</span> <span class="n">OnionExpShellModel</span>
416        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">OnionExpShellModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">OnionExpShellModel</span>
417<span class="c">#        self.shape_list.append(OnionExpShellModel)</span>
418        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">OnionExpShellModel</span><span class="p">)</span>
419        <span class="bp">self</span><span class="o">.</span><span class="n">multi_func_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">OnionExpShellModel</span><span class="p">)</span>
420                         
421        <span class="kn">from</span> <span class="nn">sas.models.SphericalSLDModel</span> <span class="kn">import</span> <span class="n">SphericalSLDModel</span>
422        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">SphericalSLDModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">SphericalSLDModel</span>
423<span class="c">#        self.shape_list.append(SphericalSLDModel)</span>
424        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">SphericalSLDModel</span><span class="p">)</span>
425        <span class="bp">self</span><span class="o">.</span><span class="n">multi_func_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">SphericalSLDModel</span><span class="p">)</span>
426
427       
428        <span class="kn">from</span> <span class="nn">sas.models.LinearPearlsModel</span> <span class="kn">import</span> <span class="n">LinearPearlsModel</span>
429        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">LinearPearlsModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">LinearPearlsModel</span>
430<span class="c">#        self.shape_list.append(LinearPearlsModel)</span>
431        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">LinearPearlsModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
432         
433        <span class="kn">from</span> <span class="nn">sas.models.PearlNecklaceModel</span> <span class="kn">import</span> <span class="n">PearlNecklaceModel</span>
434        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">PearlNecklaceModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">PearlNecklaceModel</span>
435<span class="c">#        self.shape_list.append(PearlNecklaceModel)</span>
436        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">PearlNecklaceModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
437        <span class="c">#self.multiplication_factor.append(PearlNecklaceModel)</span>
438       
439        <span class="kn">from</span> <span class="nn">sas.models.CylinderModel</span> <span class="kn">import</span> <span class="n">CylinderModel</span>
440        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">CylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">CylinderModel</span>
441<span class="c">#        self.shape_list.append(CylinderModel)</span>
442        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CylinderModel</span><span class="p">)</span>
443        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
444       
445        <span class="kn">from</span> <span class="nn">sas.models.CoreShellCylinderModel</span> <span class="kn">import</span> <span class="n">CoreShellCylinderModel</span>
446        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">CoreShellCylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">CoreShellCylinderModel</span>
447<span class="c">#        self.shape_list.append(CoreShellCylinderModel)</span>
448        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreShellCylinderModel</span><span class="p">)</span>
449        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreShellCylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
450       
451        <span class="kn">from</span> <span class="nn">sas.models.CoreShellBicelleModel</span> <span class="kn">import</span> <span class="n">CoreShellBicelleModel</span>
452        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">CoreShellBicelleModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">CoreShellBicelleModel</span>
453<span class="c">#        self.shape_list.append(CoreShellBicelleModel)</span>
454        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreShellBicelleModel</span><span class="p">)</span>
455        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreShellBicelleModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
456               
457        <span class="kn">from</span> <span class="nn">sas.models.HollowCylinderModel</span> <span class="kn">import</span> <span class="n">HollowCylinderModel</span>
458        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">HollowCylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">HollowCylinderModel</span>
459<span class="c">#        self.shape_list.append(HollowCylinderModel)</span>
460        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">HollowCylinderModel</span><span class="p">)</span>
461        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">HollowCylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
462             
463        <span class="kn">from</span> <span class="nn">sas.models.FlexibleCylinderModel</span> <span class="kn">import</span> <span class="n">FlexibleCylinderModel</span>
464        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">FlexibleCylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">FlexibleCylinderModel</span>
465<span class="c">#        self.shape_list.append(FlexibleCylinderModel)</span>
466        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">FlexibleCylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
467
468        <span class="kn">from</span> <span class="nn">sas.models.FlexCylEllipXModel</span> <span class="kn">import</span> <span class="n">FlexCylEllipXModel</span>
469        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">FlexCylEllipXModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">FlexCylEllipXModel</span>
470<span class="c">#        self.shape_list.append(FlexCylEllipXModel)</span>
471        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">FlexCylEllipXModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
472       
473        <span class="kn">from</span> <span class="nn">sas.models.StackedDisksModel</span> <span class="kn">import</span> <span class="n">StackedDisksModel</span>
474        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">StackedDisksModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">StackedDisksModel</span>
475<span class="c">#        self.shape_list.append(StackedDisksModel)</span>
476        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">StackedDisksModel</span><span class="p">)</span>
477        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">StackedDisksModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
478       
479        <span class="kn">from</span> <span class="nn">sas.models.ParallelepipedModel</span> <span class="kn">import</span> <span class="n">ParallelepipedModel</span>
480        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">ParallelepipedModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">ParallelepipedModel</span>
481<span class="c">#        self.shape_list.append(ParallelepipedModel)</span>
482        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ParallelepipedModel</span><span class="p">)</span>
483        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ParallelepipedModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
484       
485        <span class="kn">from</span> <span class="nn">sas.models.CSParallelepipedModel</span> <span class="kn">import</span> <span class="n">CSParallelepipedModel</span>
486        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">CSParallelepipedModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">CSParallelepipedModel</span>
487<span class="c">#        self.shape_list.append(CSParallelepipedModel)</span>
488        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CSParallelepipedModel</span><span class="p">)</span>
489        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CSParallelepipedModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
490       
491        <span class="kn">from</span> <span class="nn">sas.models.EllipticalCylinderModel</span> <span class="kn">import</span> <span class="n">EllipticalCylinderModel</span>
492        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">EllipticalCylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">EllipticalCylinderModel</span>
493<span class="c">#        self.shape_list.append(EllipticalCylinderModel)</span>
494        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">EllipticalCylinderModel</span><span class="p">)</span>
495        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">EllipticalCylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
496       
497        <span class="kn">from</span> <span class="nn">sas.models.BarBellModel</span> <span class="kn">import</span> <span class="n">BarBellModel</span>
498        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">BarBellModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">BarBellModel</span>
499<span class="c">#        self.shape_list.append(BarBellModel)</span>
500        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">BarBellModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
501        <span class="c"># not implemeted yet!</span>
502        <span class="c">#self.multiplication_factor.append(BarBellModel)</span>
503       
504        <span class="kn">from</span> <span class="nn">sas.models.CappedCylinderModel</span> <span class="kn">import</span> <span class="n">CappedCylinderModel</span>
505        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">CappedCylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">CappedCylinderModel</span>
506 <span class="c">#       self.shape_list.append(CappedCylinderModel)</span>
507        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CappedCylinderModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
508        <span class="c"># not implemeted yet!</span>
509        <span class="c">#self.multiplication_factor.append(CappedCylinderModel)</span>
510       
511        <span class="kn">from</span> <span class="nn">sas.models.EllipsoidModel</span> <span class="kn">import</span> <span class="n">EllipsoidModel</span>
512        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">EllipsoidModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">EllipsoidModel</span>
513<span class="c">#        self.shape_list.append(EllipsoidModel)</span>
514        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">EllipsoidModel</span><span class="p">)</span>
515        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">EllipsoidModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
516     
517        <span class="kn">from</span> <span class="nn">sas.models.CoreShellEllipsoidModel</span> <span class="kn">import</span> <span class="n">CoreShellEllipsoidModel</span>
518        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">CoreShellEllipsoidModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">CoreShellEllipsoidModel</span>
519<span class="c">#        self.shape_list.append(CoreShellEllipsoidModel)</span>
520        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreShellEllipsoidModel</span><span class="p">)</span>
521        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreShellEllipsoidModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
522
523        <span class="kn">from</span> <span class="nn">sas.models.CoreShellEllipsoidXTModel</span> <span class="kn">import</span> <span class="n">CoreShellEllipsoidXTModel</span>
524        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">CoreShellEllipsoidXTModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">CoreShellEllipsoidXTModel</span>
525<span class="c">#        self.shape_list.append(CoreShellEllipsoidXTModel)</span>
526        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreShellEllipsoidXTModel</span><span class="p">)</span>
527        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CoreShellEllipsoidXTModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
528         
529        <span class="kn">from</span> <span class="nn">sas.models.TriaxialEllipsoidModel</span> <span class="kn">import</span> <span class="n">TriaxialEllipsoidModel</span>
530        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">TriaxialEllipsoidModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">TriaxialEllipsoidModel</span>
531<span class="c">#        self.shape_list.append(TriaxialEllipsoidModel)</span>
532        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">TriaxialEllipsoidModel</span><span class="p">)</span>
533        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">TriaxialEllipsoidModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
534       
535        <span class="kn">from</span> <span class="nn">sas.models.LamellarModel</span> <span class="kn">import</span> <span class="n">LamellarModel</span>
536        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">LamellarModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">LamellarModel</span>
537<span class="c">#        self.shape_list.append(LamellarModel)</span>
538        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">LamellarModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
539       
540        <span class="kn">from</span> <span class="nn">sas.models.LamellarFFHGModel</span> <span class="kn">import</span> <span class="n">LamellarFFHGModel</span>
541        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">LamellarFFHGModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">LamellarFFHGModel</span>
542<span class="c">#        self.shape_list.append(LamellarFFHGModel)</span>
543        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">LamellarFFHGModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
544       
545        <span class="kn">from</span> <span class="nn">sas.models.LamellarPSModel</span> <span class="kn">import</span> <span class="n">LamellarPSModel</span>
546        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">LamellarPSModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">LamellarPSModel</span>
547<span class="c">#        self.shape_list.append(LamellarPSModel)</span>
548        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">LamellarPSModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
549     
550        <span class="kn">from</span> <span class="nn">sas.models.LamellarPSHGModel</span> <span class="kn">import</span> <span class="n">LamellarPSHGModel</span>
551        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">LamellarPSHGModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">LamellarPSHGModel</span>
552<span class="c">#        self.shape_list.append(LamellarPSHGModel)</span>
553        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">LamellarPSHGModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
554       
555        <span class="kn">from</span> <span class="nn">sas.models.LamellarPCrystalModel</span> <span class="kn">import</span> <span class="n">LamellarPCrystalModel</span>
556        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">LamellarPCrystalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">LamellarPCrystalModel</span>
557<span class="c">#        self.shape_list.append(LamellarPCrystalModel)</span>
558        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">LamellarPCrystalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
559       
560        <span class="kn">from</span> <span class="nn">sas.models.SCCrystalModel</span> <span class="kn">import</span> <span class="n">SCCrystalModel</span>
561        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">SCCrystalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">SCCrystalModel</span>
562<span class="c">#        self.shape_list.append(SCCrystalModel)</span>
563        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">SCCrystalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
564       
565        <span class="kn">from</span> <span class="nn">sas.models.FCCrystalModel</span> <span class="kn">import</span> <span class="n">FCCrystalModel</span>
566        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">FCCrystalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">FCCrystalModel</span>
567<span class="c">#        self.shape_list.append(FCCrystalModel)</span>
568        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">FCCrystalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
569       
570        <span class="kn">from</span> <span class="nn">sas.models.BCCrystalModel</span> <span class="kn">import</span> <span class="n">BCCrystalModel</span>
571        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">BCCrystalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">BCCrystalModel</span>
572<span class="c">#        self.shape_list.append(BCCrystalModel)</span>
573        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">BCCrystalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
574     
575        <span class="c">## Structure factor</span>
576        <span class="kn">from</span> <span class="nn">sas.models.SquareWellStructure</span> <span class="kn">import</span> <span class="n">SquareWellStructure</span>
577        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">SquareWellStructure</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">SquareWellStructure</span>
578        <span class="bp">self</span><span class="o">.</span><span class="n">struct_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">SquareWellStructure</span><span class="p">)</span>
579        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">SquareWellStructure</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
580       
581        <span class="kn">from</span> <span class="nn">sas.models.HardsphereStructure</span> <span class="kn">import</span> <span class="n">HardsphereStructure</span>
582        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">HardsphereStructure</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">HardsphereStructure</span>
583        <span class="bp">self</span><span class="o">.</span><span class="n">struct_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">HardsphereStructure</span><span class="p">)</span>
584        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">HardsphereStructure</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
585         
586        <span class="kn">from</span> <span class="nn">sas.models.StickyHSStructure</span> <span class="kn">import</span> <span class="n">StickyHSStructure</span>
587        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">StickyHSStructure</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">StickyHSStructure</span>
588        <span class="bp">self</span><span class="o">.</span><span class="n">struct_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">StickyHSStructure</span><span class="p">)</span>
589        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">StickyHSStructure</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
590       
591        <span class="kn">from</span> <span class="nn">sas.models.HayterMSAStructure</span> <span class="kn">import</span> <span class="n">HayterMSAStructure</span>
592        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">HayterMSAStructure</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">HayterMSAStructure</span>
593        <span class="bp">self</span><span class="o">.</span><span class="n">struct_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">HayterMSAStructure</span><span class="p">)</span>
594        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">HayterMSAStructure</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
595
596
597        <span class="c">##shape-independent models</span>
598        <span class="kn">from</span> <span class="nn">sas.models.PowerLawAbsModel</span> <span class="kn">import</span> <span class="n">PowerLawAbsModel</span>
599        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">PowerLawAbsModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">PowerLawAbsModel</span>
600<span class="c">#        self.shape_indep_list.append(PowerLawAbsModel)</span>
601        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">PowerLawAbsModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
602       
603        <span class="kn">from</span> <span class="nn">sas.models.BEPolyelectrolyte</span> <span class="kn">import</span> <span class="n">BEPolyelectrolyte</span>
604        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">BEPolyelectrolyte</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">BEPolyelectrolyte</span>
605<span class="c">#        self.shape_indep_list.append(BEPolyelectrolyte)</span>
606        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">BEPolyelectrolyte</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
607        <span class="bp">self</span><span class="o">.</span><span class="n">form_factor_dict</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">())]</span> <span class="o">=</span>  <span class="p">[</span><span class="n">SphereModel</span><span class="p">]</span>
608       
609        <span class="kn">from</span> <span class="nn">sas.models.BroadPeakModel</span> <span class="kn">import</span> <span class="n">BroadPeakModel</span>
610        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">BroadPeakModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">BroadPeakModel</span>
611<span class="c">#        self.shape_indep_list.append(BroadPeakModel)</span>
612        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">BroadPeakModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
613       
614        <span class="kn">from</span> <span class="nn">sas.models.CorrLengthModel</span> <span class="kn">import</span> <span class="n">CorrLengthModel</span>
615        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">CorrLengthModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">CorrLengthModel</span>
616<span class="c">#        self.shape_indep_list.append(CorrLengthModel)</span>
617        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CorrLengthModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
618       
619        <span class="kn">from</span> <span class="nn">sas.models.DABModel</span> <span class="kn">import</span> <span class="n">DABModel</span>
620        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">DABModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">DABModel</span>
621<span class="c">#        self.shape_indep_list.append(DABModel)</span>
622        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">DABModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
623       
624        <span class="kn">from</span> <span class="nn">sas.models.DebyeModel</span> <span class="kn">import</span> <span class="n">DebyeModel</span>
625        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">DebyeModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">DebyeModel</span>
626<span class="c">#        self.shape_indep_list.append(DebyeModel)</span>
627        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">DebyeModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
628       
629        <span class="kn">from</span> <span class="nn">sas.models.FractalModel</span> <span class="kn">import</span> <span class="n">FractalModel</span>
630        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">FractalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">FractalModel</span>
631<span class="c">#        self.shape_indep_list.append(FractalModel)</span>
632        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">FractalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
633       
634        <span class="kn">from</span> <span class="nn">sas.models.FractalCoreShellModel</span> <span class="kn">import</span> <span class="n">FractalCoreShellModel</span>
635        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">FractalCoreShellModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">FractalCoreShellModel</span>
636<span class="c">#        self.shape_indep_list.append(FractalCoreShellModel)</span>
637        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">FractalCoreShellModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
638       
639        <span class="kn">from</span> <span class="nn">sas.models.GaussLorentzGelModel</span> <span class="kn">import</span> <span class="n">GaussLorentzGelModel</span>
640        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">GaussLorentzGelModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">GaussLorentzGelModel</span>
641<span class="c">#        self.shape_indep_list.append(GaussLorentzGelModel)</span>
642        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">GaussLorentzGelModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
643               
644        <span class="kn">from</span> <span class="nn">sas.models.GuinierModel</span> <span class="kn">import</span> <span class="n">GuinierModel</span>
645        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">GuinierModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">GuinierModel</span>
646<span class="c">#        self.shape_indep_list.append(GuinierModel)</span>
647        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">GuinierModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
648       
649        <span class="kn">from</span> <span class="nn">sas.models.GuinierPorodModel</span> <span class="kn">import</span> <span class="n">GuinierPorodModel</span>
650        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">GuinierPorodModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">GuinierPorodModel</span>
651<span class="c">#        self.shape_indep_list.append(GuinierPorodModel)</span>
652        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">GuinierPorodModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
653
654        <span class="kn">from</span> <span class="nn">sas.models.LorentzModel</span> <span class="kn">import</span> <span class="n">LorentzModel</span>
655        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">LorentzModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">LorentzModel</span>
656<span class="c">#        self.shape_indep_list.append(LorentzModel)</span>
657        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">LorentzModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
658
659        <span class="kn">from</span> <span class="nn">sas.models.MassFractalModel</span> <span class="kn">import</span> <span class="n">MassFractalModel</span>
660        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">MassFractalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">MassFractalModel</span>
661<span class="c">#        self.shape_indep_list.append(MassFractalModel)</span>
662        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">MassFractalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
663       
664        <span class="kn">from</span> <span class="nn">sas.models.MassSurfaceFractal</span> <span class="kn">import</span> <span class="n">MassSurfaceFractal</span>
665        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">MassSurfaceFractal</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">MassSurfaceFractal</span>
666<span class="c">#        self.shape_indep_list.append(MassSurfaceFractal)</span>
667        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">MassSurfaceFractal</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
668       
669        <span class="kn">from</span> <span class="nn">sas.models.PeakGaussModel</span> <span class="kn">import</span> <span class="n">PeakGaussModel</span>
670        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">PeakGaussModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">PeakGaussModel</span>
671<span class="c">#        self.shape_indep_list.append(PeakGaussModel)</span>
672        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">PeakGaussModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
673       
674        <span class="kn">from</span> <span class="nn">sas.models.PeakLorentzModel</span> <span class="kn">import</span> <span class="n">PeakLorentzModel</span>
675        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">PeakLorentzModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">PeakLorentzModel</span>
676<span class="c">#        self.shape_indep_list.append(PeakLorentzModel)</span>
677        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">PeakLorentzModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
678       
679        <span class="kn">from</span> <span class="nn">sas.models.Poly_GaussCoil</span> <span class="kn">import</span> <span class="n">Poly_GaussCoil</span>
680        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">Poly_GaussCoil</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">Poly_GaussCoil</span>
681<span class="c">#        self.shape_indep_list.append(Poly_GaussCoil)</span>
682        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Poly_GaussCoil</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
683       
684        <span class="kn">from</span> <span class="nn">sas.models.PolymerExclVolume</span> <span class="kn">import</span> <span class="n">PolymerExclVolume</span>
685        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">PolymerExclVolume</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">PolymerExclVolume</span>
686<span class="c">#        self.shape_indep_list.append(PolymerExclVolume)</span>
687        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">PolymerExclVolume</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
688       
689        <span class="kn">from</span> <span class="nn">sas.models.PorodModel</span> <span class="kn">import</span> <span class="n">PorodModel</span>
690        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">PorodModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">PorodModel</span>
691<span class="c">#        self.shape_indep_list.append(PorodModel)</span>
692        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">PorodModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
693       
694        <span class="kn">from</span> <span class="nn">sas.models.RPA10Model</span> <span class="kn">import</span> <span class="n">RPA10Model</span>
695        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">RPA10Model</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">RPA10Model</span>
696<span class="c">#        self.shape_indep_list.append(RPA10Model)</span>
697        <span class="bp">self</span><span class="o">.</span><span class="n">multi_func_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">RPA10Model</span><span class="p">)</span>
698
699        <span class="kn">from</span> <span class="nn">sas.models.StarPolymer</span> <span class="kn">import</span> <span class="n">StarPolymer</span>
700        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">StarPolymer</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">StarPolymer</span>
701<span class="c">#        self.shape_indep_list.append(StarPolymer)</span>
702        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">StarPolymer</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
703
704        <span class="kn">from</span> <span class="nn">sas.models.SurfaceFractalModel</span> <span class="kn">import</span> <span class="n">SurfaceFractalModel</span>
705        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">SurfaceFractalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">SurfaceFractalModel</span>
706<span class="c">#        self.shape_indep_list.append(SurfaceFractalModel)</span>
707        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">SurfaceFractalModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
708       
709        <span class="kn">from</span> <span class="nn">sas.models.TeubnerStreyModel</span> <span class="kn">import</span> <span class="n">TeubnerStreyModel</span>
710        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">TeubnerStreyModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">TeubnerStreyModel</span>
711<span class="c">#        self.shape_indep_list.append(TeubnerStreyModel)</span>
712        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">TeubnerStreyModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
713
714        <span class="kn">from</span> <span class="nn">sas.models.TwoLorentzianModel</span> <span class="kn">import</span> <span class="n">TwoLorentzianModel</span>
715        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">TwoLorentzianModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">TwoLorentzianModel</span>
716<span class="c">#        self.shape_indep_list.append(TwoLorentzianModel)</span>
717        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">TwoLorentzianModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
718       
719        <span class="kn">from</span> <span class="nn">sas.models.TwoPowerLawModel</span> <span class="kn">import</span> <span class="n">TwoPowerLawModel</span>
720        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">TwoPowerLawModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">TwoPowerLawModel</span>
721<span class="c">#        self.shape_indep_list.append(TwoPowerLawModel)</span>
722        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">TwoPowerLawModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
723       
724        <span class="kn">from</span> <span class="nn">sas.models.UnifiedPowerRgModel</span> <span class="kn">import</span> <span class="n">UnifiedPowerRgModel</span>
725        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">UnifiedPowerRgModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">UnifiedPowerRgModel</span>
726<span class="c">#        self.shape_indep_list.append(UnifiedPowerRgModel)</span>
727        <span class="bp">self</span><span class="o">.</span><span class="n">multi_func_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">UnifiedPowerRgModel</span><span class="p">)</span>
728
729        <span class="kn">from</span> <span class="nn">sas.models.LineModel</span> <span class="kn">import</span> <span class="n">LineModel</span>
730        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">LineModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">LineModel</span>
731<span class="c">#        self.shape_indep_list.append(LineModel)</span>
732        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">LineModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
733       
734        <span class="kn">from</span> <span class="nn">sas.models.ReflectivityModel</span> <span class="kn">import</span> <span class="n">ReflectivityModel</span>
735        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">ReflectivityModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">ReflectivityModel</span>
736<span class="c">#        self.shape_indep_list.append(ReflectivityModel)</span>
737        <span class="bp">self</span><span class="o">.</span><span class="n">multi_func_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ReflectivityModel</span><span class="p">)</span>
738       
739        <span class="kn">from</span> <span class="nn">sas.models.ReflectivityIIModel</span> <span class="kn">import</span> <span class="n">ReflectivityIIModel</span>
740        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">ReflectivityIIModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">ReflectivityIIModel</span>
741<span class="c">#        self.shape_indep_list.append(ReflectivityIIModel)</span>
742        <span class="bp">self</span><span class="o">.</span><span class="n">multi_func_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ReflectivityIIModel</span><span class="p">)</span>
743       
744        <span class="kn">from</span> <span class="nn">sas.models.GelFitModel</span> <span class="kn">import</span> <span class="n">GelFitModel</span>
745        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">GelFitModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">GelFitModel</span>
746<span class="c">#        self.shape_indep_list.append(GelFitModel)</span>
747        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">GelFitModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
748
749        <span class="kn">from</span> <span class="nn">sas.models.PringlesModel</span> <span class="kn">import</span> <span class="n">PringlesModel</span>
750        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">PringlesModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">PringlesModel</span>
751<span class="c">#        self.shape_indep_list.append(PringlesModel)</span>
752        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">PringlesModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
753
754        <span class="kn">from</span> <span class="nn">sas.models.RectangularPrismModel</span> <span class="kn">import</span> <span class="n">RectangularPrismModel</span>
755        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">RectangularPrismModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">RectangularPrismModel</span>
756<span class="c">#        self.shape_list.append(RectangularPrismModel)</span>
757        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">RectangularPrismModel</span><span class="p">)</span>
758        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">RectangularPrismModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
759
760        <span class="kn">from</span> <span class="nn">sas.models.RectangularHollowPrismInfThinWallsModel</span> <span class="kn">import</span> <span class="n">RectangularHollowPrismInfThinWallsModel</span>
761        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">RectangularHollowPrismInfThinWallsModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">RectangularHollowPrismInfThinWallsModel</span>
762<span class="c">#        self.shape_list.append(RectangularHollowPrismInfThinWallsModel)</span>
763        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">RectangularHollowPrismInfThinWallsModel</span><span class="p">)</span>
764        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">RectangularHollowPrismInfThinWallsModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
765
766        <span class="kn">from</span> <span class="nn">sas.models.RectangularHollowPrismModel</span> <span class="kn">import</span> <span class="n">RectangularHollowPrismModel</span>
767        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">RectangularHollowPrismModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">RectangularHollowPrismModel</span>
768<span class="c">#        self.shape_list.append(RectangularHollowPrismModel)</span>
769        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">RectangularHollowPrismModel</span><span class="p">)</span>
770        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">RectangularHollowPrismModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
771
772        <span class="kn">from</span> <span class="nn">sas.models.MicelleSphCoreModel</span> <span class="kn">import</span> <span class="n">MicelleSphCoreModel</span>
773        <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">MicelleSphCoreModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">MicelleSphCoreModel</span>
774<span class="c">#        self.shape_list.append(MicelleSphCoreModel)</span>
775        <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">MicelleSphCoreModel</span><span class="p">)</span>
776        <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">MicelleSphCoreModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span>
777
778
779        <span class="c">#from sas.models.FractalO_Z import FractalO_Z</span>
780        <span class="c">#self.model_dictionary[FractalO_Z.__name__] = FractalO_Z</span>
781        <span class="c">#self.shape_indep_list.append(FractalO_Z)</span>
782        <span class="c">#self.model_name_list.append(FractalO_Z.__name__)</span>
783   
784        <span class="c">#Looking for plugins</span>
785        <span class="bp">self</span><span class="o">.</span><span class="n">stored_plugins</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">findModels</span><span class="p">()</span>
786        <span class="bp">self</span><span class="o">.</span><span class="n">plugins</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_plugins</span><span class="o">.</span><span class="n">values</span><span class="p">()</span>
787        <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">plug</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_plugins</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
788            <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">plug</span>
789           
790        <span class="bp">self</span><span class="o">.</span><span class="n">_get_multifunc_models</span><span class="p">()</span>
791       
792        <span class="k">return</span> <span class="mi">0</span>
793
794<div class="viewcode-block" id="ModelManagerBase.is_changed"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManagerBase.is_changed">[docs]</a>    <span class="k">def</span> <span class="nf">is_changed</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
795        <span class="sd">&quot;&quot;&quot;</span>
796<span class="sd">        check the last time the plugin dir has changed and return true</span>
797<span class="sd">         is the directory was modified else return false</span>
798<span class="sd">        &quot;&quot;&quot;</span>
799        <span class="n">is_modified</span> <span class="o">=</span> <span class="bp">False</span>
800        <span class="n">plugin_dir</span> <span class="o">=</span> <span class="n">find_plugins_dir</span><span class="p">()</span>
801        <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">isdir</span><span class="p">(</span><span class="n">plugin_dir</span><span class="p">):</span>
802            <span class="n">temp</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">getmtime</span><span class="p">(</span><span class="n">plugin_dir</span><span class="p">)</span>
803            <span class="k">if</span>  <span class="bp">self</span><span class="o">.</span><span class="n">last_time_dir_modified</span> <span class="o">!=</span> <span class="n">temp</span><span class="p">:</span>
804                <span class="n">is_modified</span> <span class="o">=</span> <span class="bp">True</span>
805                <span class="bp">self</span><span class="o">.</span><span class="n">last_time_dir_modified</span> <span class="o">=</span> <span class="n">temp</span>
806       
807        <span class="k">return</span> <span class="n">is_modified</span>
808    </div>
809<div class="viewcode-block" id="ModelManagerBase.update"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManagerBase.update">[docs]</a>    <span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
810        <span class="sd">&quot;&quot;&quot;</span>
811<span class="sd">        return a dictionary of model if</span>
812<span class="sd">        new models were added else return empty dictionary</span>
813<span class="sd">        &quot;&quot;&quot;</span>
814        <span class="n">new_plugins</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">findModels</span><span class="p">()</span>
815        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">new_plugins</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
816            <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">plug</span> <span class="ow">in</span>  <span class="n">new_plugins</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
817                <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">stored_plugins</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
818                    <span class="bp">self</span><span class="o">.</span><span class="n">stored_plugins</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">plug</span>
819                    <span class="bp">self</span><span class="o">.</span><span class="n">plugins</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">plug</span><span class="p">)</span>
820                    <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">plug</span>
821            <span class="bp">self</span><span class="o">.</span><span class="n">model_combobox</span><span class="o">.</span><span class="n">set_list</span><span class="p">(</span><span class="s">&quot;Customized Models&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">plugins</span><span class="p">)</span>
822            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_combobox</span><span class="o">.</span><span class="n">get_list</span><span class="p">()</span>
823        <span class="k">else</span><span class="p">:</span>
824            <span class="k">return</span> <span class="p">{}</span>
825    </div>
826<div class="viewcode-block" id="ModelManagerBase.pulgins_reset"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManagerBase.pulgins_reset">[docs]</a>    <span class="k">def</span> <span class="nf">pulgins_reset</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
827        <span class="sd">&quot;&quot;&quot;</span>
828<span class="sd">        return a dictionary of model</span>
829<span class="sd">        &quot;&quot;&quot;</span>
830        <span class="bp">self</span><span class="o">.</span><span class="n">plugins</span> <span class="o">=</span> <span class="p">[]</span>
831        <span class="n">new_plugins</span> <span class="o">=</span> <span class="n">_findModels</span><span class="p">(</span><span class="nb">dir</span><span class="p">)</span>
832        <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">plug</span> <span class="ow">in</span>  <span class="n">new_plugins</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
833            <span class="k">for</span> <span class="n">stored_name</span><span class="p">,</span> <span class="n">stored_plug</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_plugins</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
834                <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="n">stored_name</span><span class="p">:</span>
835                    <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">stored_plugins</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
836                    <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
837                    <span class="k">break</span>
838            <span class="bp">self</span><span class="o">.</span><span class="n">stored_plugins</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">plug</span>
839            <span class="bp">self</span><span class="o">.</span><span class="n">plugins</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">plug</span><span class="p">)</span>
840            <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">plug</span>
841
842        <span class="bp">self</span><span class="o">.</span><span class="n">model_combobox</span><span class="o">.</span><span class="n">reset_list</span><span class="p">(</span><span class="s">&quot;Customized Models&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">plugins</span><span class="p">)</span>
843        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_combobox</span><span class="o">.</span><span class="n">get_list</span><span class="p">()</span>
844       
845<span class="c">##   I believe the next four methods are for the old form factor GUI</span>
846<span class="c">##   where the dropdown showed a list of categories which then rolled out</span>
847<span class="c">##   in a second dropdown to the side. Some testing shows they indeed no longer</span>
848<span class="c">##   seem to be called.  If no problems are found during testing of release we</span>
849<span class="c">##   can remove this huge chunck of stuff.</span>
850<span class="c">##</span>
851<span class="c">##   -PDB  April 26, 2014</span>
852
853<span class="c">#   def populate_menu(self, modelmenu, event_owner):</span>
854<span class="c">#       &quot;&quot;&quot;</span>
855<span class="c">#       Populate a menu with our models</span>
856<span class="c">#       </span>
857<span class="c">#       :param id: first menu event ID to use when binding the menu events</span>
858<span class="c">#       :param modelmenu: wx.Menu object to populate</span>
859<span class="c">#       :param event_owner: wx object to bind the menu events to</span>
860<span class="c">#       </span>
861<span class="c">#       :return: the next free event ID following the new menu events</span>
862<span class="c">#       </span>
863<span class="c">#       &quot;&quot;&quot;</span>
864<span class="c"># </span>
865        <span class="c">## Fill model lists</span>
866<span class="c">#        self._getModelList()</span>
867        <span class="c">## store reference to model menu of guiframe</span>
868<span class="c">#        self.modelmenu = modelmenu</span>
869        <span class="c">## guiframe reference</span>
870<span class="c">#        self.event_owner = event_owner</span>
871       
872<span class="c">#        shape_submenu = wx.Menu()</span>
873<span class="c">#        shape_indep_submenu = wx.Menu()</span>
874<span class="c">#        structure_factor = wx.Menu()</span>
875<span class="c">#        added_models = wx.Menu()</span>
876<span class="c">#        multip_models = wx.Menu()</span>
877        <span class="c">## create menu with shape</span>
878<span class="c">#        self._fill_simple_menu(menuinfo=[&quot;Shapes&quot;,</span>
879<span class="c">#                                         shape_submenu,</span>
880<span class="c">#                                         &quot; simple shape&quot;],</span>
881<span class="c">#                         list1=self.shape_list)</span>
882       
883<span class="c">#        self._fill_simple_menu(menuinfo=[&quot;Shape-Independent&quot;,</span>
884<span class="c">#                                         shape_indep_submenu,</span>
885<span class="c">#                                         &quot;List of shape-independent models&quot;],</span>
886<span class="c">#                         list1=self.shape_indep_list)</span>
887       
888<span class="c">#        self._fill_simple_menu(menuinfo=[&quot;Structure Factors&quot;,</span>
889<span class="c">#                                         structure_factor,</span>
890<span class="c">#                                         &quot;List of Structure factors models&quot;],</span>
891<span class="c">#                                list1=self.struct_list)</span>
892       
893<span class="c">#        self._fill_plugin_menu(menuinfo=[&quot;Customized Models&quot;, added_models,</span>
894<span class="c">#                                            &quot;List of additional models&quot;],</span>
895<span class="c">#                                 list1=self.plugins)</span>
896       
897<span class="c">#        self._fill_menu(menuinfo=[&quot;P(Q)*S(Q)&quot;, multip_models,</span>
898<span class="c">#                                  &quot;mulplication of 2 models&quot;],</span>
899<span class="c">#                                   list1=self.multiplication_factor,</span>
900<span class="c">#                                   list2=self.struct_list)</span>
901<span class="c">#        return 0</span>
902   
903<span class="c">#    def _fill_plugin_menu(self, menuinfo, list1):</span>
904<span class="c">#        &quot;&quot;&quot;</span>
905<span class="c">#        fill the plugin menu with costumized models</span>
906<span class="c">#        &quot;&quot;&quot;</span>
907<span class="c">#        print (&quot;got to fill plugin menu&quot;)</span>
908<span class="c">#        if len(list1) == 0:</span>
909<span class="c">#            id = wx.NewId()</span>
910<span class="c">#            msg = &quot;No model available check plugins.log for errors to fix problem&quot;</span>
911<span class="c">#            menuinfo[1].Append(int(id), &quot;Empty&quot;, msg)</span>
912<span class="c">#        self._fill_simple_menu(menuinfo, list1)</span>
913       
914<span class="c">#   def _fill_simple_menu(self, menuinfo, list1):</span>
915<span class="c">#       &quot;&quot;&quot;</span>
916<span class="c">#       Fill the menu with list item</span>
917<span class="c">#       </span>
918<span class="c">#       :param modelmenu: the menu to fill</span>
919<span class="c">#       :param menuinfo: submenu item for the first column of this modelmenu</span>
920<span class="c">#                        with info.Should be a list :</span>
921<span class="c">#                        [name(string) , menu(wx.menu), help(string)]</span>
922<span class="c">#       :param list1: contains item (form factor )to fill modelmenu second column</span>
923<span class="c">#       </span>
924<span class="c">#       &quot;&quot;&quot;</span>
925<span class="c">#       if len(list1) &gt; 0:</span>
926<span class="c">#           self.model_combobox.set_list(menuinfo[0], list1)</span>
927           
928<span class="c">#            for item in list1:</span>
929<span class="c">#                try:</span>
930<span class="c">#                    id = wx.NewId()</span>
931<span class="c">#                    struct_factor = item()</span>
932<span class="c">#                    struct_name = struct_factor.__class__.__name__</span>
933<span class="c">#                    if hasattr(struct_factor, &quot;name&quot;):</span>
934<span class="c">#                        struct_name = struct_factor.name</span>
935<span class="c">#                        </span>
936<span class="c">#                    menuinfo[1].Append(int(id), struct_name, struct_name)</span>
937<span class="c">#                    if not  item in self.struct_factor_dict.itervalues():</span>
938<span class="c">#                        self.struct_factor_dict[str(id)] = item</span>
939<span class="c">#                    wx.EVT_MENU(self.event_owner, int(id), self._on_model)</span>
940<span class="c">#                except:</span>
941<span class="c">#                    msg = &quot;Error Occured: %s&quot; % sys.exc_value</span>
942<span class="c">#                    wx.PostEvent(self.event_owner, StatusEvent(status=msg))</span>
943<span class="c">#                </span>
944<span class="c">#        id = wx.NewId()</span>
945<span class="c">#        self.modelmenu.AppendMenu(id, menuinfo[0], menuinfo[1], menuinfo[2])</span>
946<span class="c">#        </span>
947<span class="c">#    def _fill_menu(self, menuinfo, list1, list2):</span>
948<span class="c">#        &quot;&quot;&quot;</span>
949<span class="c">#        Fill the menu with list item</span>
950<span class="c">#        </span>
951<span class="c">#        :param menuinfo: submenu item for the first column of this modelmenu</span>
952<span class="c">#                         with info.Should be a list :</span>
953<span class="c">#                         [name(string) , menu(wx.menu), help(string)]</span>
954<span class="c">#        :param list1: contains item (form factor )to fill modelmenu second column</span>
955<span class="c">#        :param list2: contains item (Structure factor )to fill modelmenu</span>
956<span class="c">#                third column</span>
957<span class="c">#                </span>
958<span class="c">#        &quot;&quot;&quot;</span>
959<span class="c">#        if len(list1) &gt; 0:</span>
960<span class="c">#            self.model_combobox.set_list(menuinfo[0], list1)</span>
961<span class="c">#            </span>
962<span class="c">#            for item in list1:</span>
963<span class="c">#                form_factor = item()</span>
964<span class="c">#                form_name = form_factor.__class__.__name__</span>
965<span class="c">#                if hasattr(form_factor, &quot;name&quot;):</span>
966<span class="c">#                    form_name = form_factor.name</span>
967<span class="c">#                ### store form factor to return to other users</span>
968<span class="c">#                newmenu = wx.Menu()</span>
969<span class="c">#                if len(list2) &gt; 0:</span>
970<span class="c">#                    for model  in list2:</span>
971<span class="c">#                        id = wx.NewId()</span>
972<span class="c">#                        struct_factor = model()</span>
973<span class="c">#                        name = struct_factor.__class__.__name__</span>
974<span class="c">#                        if hasattr(struct_factor, &quot;name&quot;):</span>
975<span class="c">#                            name = struct_factor.name</span>
976<span class="c">#                        newmenu.Append(id, name, name)</span>
977<span class="c">#                        wx.EVT_MENU(self.event_owner, int(id), self._on_model)</span>
978<span class="c">#                        ## save form_fact and struct_fact</span>
979<span class="c">#                        self.form_factor_dict[int(id)] = [form_factor,</span>
980<span class="c">#                                                          struct_factor]</span>
981<span class="c">#                        </span>
982<span class="c">#                form_id = wx.NewId()</span>
983<span class="c">#                menuinfo[1].AppendMenu(int(form_id), form_name,</span>
984<span class="c">#                                       newmenu, menuinfo[2])</span>
985<span class="c">#        id = wx.NewId()</span>
986<span class="c">#        self.modelmenu.AppendMenu(id, menuinfo[0], menuinfo[1], menuinfo[2])</span>
987        </div>
988    <span class="k">def</span> <span class="nf">_on_model</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span>
989        <span class="sd">&quot;&quot;&quot;</span>
990<span class="sd">        React to a model menu event</span>
991<span class="sd">        </span>
992<span class="sd">        :param event: wx menu event</span>
993<span class="sd">        </span>
994<span class="sd">        &quot;&quot;&quot;</span>
995        <span class="k">if</span> <span class="nb">int</span><span class="p">(</span><span class="n">evt</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">form_factor_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
996            <span class="kn">from</span> <span class="nn">sas.models.MultiplicationModel</span> <span class="kn">import</span> <span class="n">MultiplicationModel</span>
997            <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span><span class="p">[</span><span class="n">MultiplicationModel</span><span class="o">.</span><span class="n">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">MultiplicationModel</span>
998            <span class="n">model1</span><span class="p">,</span> <span class="n">model2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">form_factor_dict</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">evt</span><span class="o">.</span><span class="n">GetId</span><span class="p">())]</span>
999            <span class="n">model</span> <span class="o">=</span> <span class="n">MultiplicationModel</span><span class="p">(</span><span class="n">model1</span><span class="p">,</span> <span class="n">model2</span><span class="p">)</span>
1000        <span class="k">else</span><span class="p">:</span>
1001            <span class="n">model</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">struct_factor_dict</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">evt</span><span class="o">.</span><span class="n">GetId</span><span class="p">())]()</span>
1002       
1003        <span class="c">#TODO: investigate why the following two lines were left in the code</span>
1004        <span class="c">#      even though the ModelEvent class doesn&#39;t exist</span>
1005        <span class="c">#evt = ModelEvent(model=model)</span>
1006        <span class="c">#wx.PostEvent(self.event_owner, evt)</span>
1007       
1008    <span class="k">def</span> <span class="nf">_get_multifunc_models</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1009        <span class="sd">&quot;&quot;&quot;</span>
1010<span class="sd">        Get the multifunctional models</span>
1011<span class="sd">        &quot;&quot;&quot;</span>
1012        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">plugins</span><span class="p">:</span>
1013            <span class="k">try</span><span class="p">:</span>
1014                <span class="c"># check the multiplicity if any</span>
1015                <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">multiplicity_info</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
1016                    <span class="bp">self</span><span class="o">.</span><span class="n">multi_func_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
1017            <span class="k">except</span><span class="p">:</span>
1018                <span class="c"># pass to other items</span>
1019                <span class="k">pass</span>
1020                   
1021<div class="viewcode-block" id="ModelManagerBase.get_model_list"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManagerBase.get_model_list">[docs]</a>    <span class="k">def</span> <span class="nf">get_model_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1022        <span class="sd">&quot;&quot;&quot;</span>
1023<span class="sd">        return dictionary of models for fitpanel use</span>
1024<span class="sd">        </span>
1025<span class="sd">        &quot;&quot;&quot;</span>
1026        <span class="c">## Model_list now only contains attribute lists not category list.</span>
1027        <span class="c">## Eventually this should be in one master list -- read in category</span>
1028        <span class="c">## list then pull those models that exist and get attributes then add</span>
1029        <span class="c">## to list ..and if model does not exist remove from list as now</span>
1030        <span class="c">## and update json file.</span>
1031        <span class="c">##</span>
1032        <span class="c">## -PDB   April 26, 2014</span>
1033       
1034<span class="c">#        self.model_combobox.set_list(&quot;Shapes&quot;, self.shape_list)</span>
1035<span class="c">#        self.model_combobox.set_list(&quot;Shape-Independent&quot;,</span>
1036<span class="c">#                                     self.shape_indep_list)</span>
1037        <span class="bp">self</span><span class="o">.</span><span class="n">model_combobox</span><span class="o">.</span><span class="n">set_list</span><span class="p">(</span><span class="s">&quot;Structure Factors&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">struct_list</span><span class="p">)</span>
1038        <span class="bp">self</span><span class="o">.</span><span class="n">model_combobox</span><span class="o">.</span><span class="n">set_list</span><span class="p">(</span><span class="s">&quot;Customized Models&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">plugins</span><span class="p">)</span>
1039        <span class="bp">self</span><span class="o">.</span><span class="n">model_combobox</span><span class="o">.</span><span class="n">set_list</span><span class="p">(</span><span class="s">&quot;P(Q)*S(Q)&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="p">)</span>
1040        <span class="bp">self</span><span class="o">.</span><span class="n">model_combobox</span><span class="o">.</span><span class="n">set_list</span><span class="p">(</span><span class="s">&quot;multiplication&quot;</span><span class="p">,</span>
1041                                     <span class="bp">self</span><span class="o">.</span><span class="n">multiplication_factor</span><span class="p">)</span>
1042        <span class="bp">self</span><span class="o">.</span><span class="n">model_combobox</span><span class="o">.</span><span class="n">set_list</span><span class="p">(</span><span class="s">&quot;Multi-Functions&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">multi_func_list</span><span class="p">)</span>
1043        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_combobox</span><span class="o">.</span><span class="n">get_list</span><span class="p">()</span>
1044    </div>
1045<div class="viewcode-block" id="ModelManagerBase.get_model_name_list"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManagerBase.get_model_name_list">[docs]</a>    <span class="k">def</span> <span class="nf">get_model_name_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1046        <span class="sd">&quot;&quot;&quot;</span>
1047<span class="sd">        return regular model name list</span>
1048<span class="sd">        &quot;&quot;&quot;</span>
1049        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_name_list</span>
1050</div>
1051<div class="viewcode-block" id="ModelManagerBase.get_model_dictionary"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManagerBase.get_model_dictionary">[docs]</a>    <span class="k">def</span> <span class="nf">get_model_dictionary</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1052        <span class="sd">&quot;&quot;&quot;</span>
1053<span class="sd">        return dictionary linking model names to objects</span>
1054<span class="sd">        &quot;&quot;&quot;</span>
1055        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_dictionary</span>
1056 
1057        </div></div>
1058<div class="viewcode-block" id="ModelManager"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManager">[docs]</a><span class="k">class</span> <span class="nc">ModelManager</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
1059    <span class="sd">&quot;&quot;&quot;</span>
1060<span class="sd">    implement model</span>
1061<span class="sd">    &quot;&quot;&quot;</span>
1062    <span class="n">__modelmanager</span> <span class="o">=</span> <span class="n">ModelManagerBase</span><span class="p">()</span>
1063    <span class="n">cat_model_list</span> <span class="o">=</span> <span class="p">[</span><span class="n">model_name</span> <span class="k">for</span> <span class="n">model_name</span> \
1064                      <span class="ow">in</span> <span class="n">__modelmanager</span><span class="o">.</span><span class="n">model_dictionary</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> \
1065                      <span class="k">if</span> <span class="n">model_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">__modelmanager</span><span class="o">.</span><span class="n">stored_plugins</span><span class="o">.</span><span class="n">keys</span><span class="p">()]</span>
1066
1067    <span class="n">CategoryInstaller</span><span class="o">.</span><span class="n">check_install</span><span class="p">(</span><span class="n">model_list</span><span class="o">=</span><span class="n">cat_model_list</span><span class="p">)</span>
1068<div class="viewcode-block" id="ModelManager.findModels"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManager.findModels">[docs]</a>    <span class="k">def</span> <span class="nf">findModels</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1069        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">findModels</span><span class="p">()</span>
1070    </div>
1071    <span class="k">def</span> <span class="nf">_getModelList</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1072        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">_getModelList</span><span class="p">()</span>
1073   
1074<div class="viewcode-block" id="ModelManager.is_changed"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManager.is_changed">[docs]</a>    <span class="k">def</span> <span class="nf">is_changed</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1075        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">is_changed</span><span class="p">()</span>
1076    </div>
1077<div class="viewcode-block" id="ModelManager.update"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManager.update">[docs]</a>    <span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1078        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
1079    </div>
1080<div class="viewcode-block" id="ModelManager.pulgins_reset"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManager.pulgins_reset">[docs]</a>    <span class="k">def</span> <span class="nf">pulgins_reset</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1081        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">pulgins_reset</span><span class="p">()</span>
1082    </div>
1083<div class="viewcode-block" id="ModelManager.populate_menu"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManager.populate_menu">[docs]</a>    <span class="k">def</span> <span class="nf">populate_menu</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">modelmenu</span><span class="p">,</span> <span class="n">event_owner</span><span class="p">):</span>
1084        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">populate_menu</span><span class="p">(</span><span class="n">modelmenu</span><span class="p">,</span> <span class="n">event_owner</span><span class="p">)</span>
1085    </div>
1086    <span class="k">def</span> <span class="nf">_on_model</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span>
1087        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">_on_model</span><span class="p">(</span><span class="n">evt</span><span class="p">)</span>
1088   
1089    <span class="k">def</span> <span class="nf">_get_multifunc_models</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1090        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">_get_multifunc_models</span><span class="p">()</span>
1091   
1092<div class="viewcode-block" id="ModelManager.get_model_list"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManager.get_model_list">[docs]</a>    <span class="k">def</span> <span class="nf">get_model_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1093        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">get_model_list</span><span class="p">()</span>
1094    </div>
1095<div class="viewcode-block" id="ModelManager.get_model_name_list"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManager.get_model_name_list">[docs]</a>    <span class="k">def</span> <span class="nf">get_model_name_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1096        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">get_model_name_list</span><span class="p">()</span>
1097</div>
1098<div class="viewcode-block" id="ModelManager.get_model_dictionary"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.models.ModelManager.get_model_dictionary">[docs]</a>    <span class="k">def</span> <span class="nf">get_model_dictionary</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1099        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__modelmanager</span><span class="o">.</span><span class="n">get_model_dictionary</span><span class="p">()</span></div></div>
1100</pre></div>
1101
1102          </div>
1103        </div>
1104      </div>
1105      <div class="sphinxsidebar">
1106        <div class="sphinxsidebarwrapper">
1107<div id="searchbox" style="display: none">
1108  <h3>Quick search</h3>
1109    <form class="search" action="../../../../search.html" method="get">
1110      <input type="text" name="q" />
1111      <input type="submit" value="Go" />
1112      <input type="hidden" name="check_keywords" value="yes" />
1113      <input type="hidden" name="area" value="default" />
1114    </form>
1115    <p class="searchtip" style="font-size: 90%">
1116    Enter search terms or a module, class or function name.
1117    </p>
1118</div>
1119<script type="text/javascript">$('#searchbox').show(0);</script>
1120        </div>
1121      </div>
1122      <div class="clearer"></div>
1123    </div>
1124    <div class="related">
1125      <h3>Navigation</h3>
1126      <ul>
1127        <li class="right" style="margin-right: 10px">
1128          <a href="../../../../genindex.html" title="General Index"
1129             >index</a></li>
1130        <li class="right" >
1131          <a href="../../../../py-modindex.html" title="Python Module Index"
1132             >modules</a> |</li>
1133        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
1134          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
1135          <li><a href="../fitting.html" >sas.perspectives.fitting</a> &raquo;</li> 
1136      </ul>
1137    </div>
1138    <div class="footer">
1139        &copy; Copyright 2013, The SasView Project.
1140      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
1141    </div>
1142  </body>
1143</html>
Note: See TracBrowser for help on using the repository browser.