|
@@ -8,7 +8,7 @@
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
|
- <title>macop.operators.crossovers.SimpleCrossover — macop v0.3.1 documentation</title>
|
|
|
+ <title>macop.operators.crossovers.SimpleCrossover — macop v0.3.3 documentation</title>
|
|
|
|
|
|
|
|
|
|
|
@@ -58,7 +58,7 @@
|
|
|
|
|
|
|
|
|
<div class="version">
|
|
|
- 0.3.1
|
|
|
+ 0.3.3
|
|
|
</div>
|
|
|
|
|
|
|
|
@@ -160,12 +160,16 @@
|
|
|
|
|
|
<span class="c1"># module imports</span>
|
|
|
<span class="kn">from</span> <span class="nn">.Crossover</span> <span class="kn">import</span> <span class="n">Crossover</span>
|
|
|
+<span class="kn">from</span> <span class="nn">...utils.modules</span> <span class="kn">import</span> <span class="n">load_class</span>
|
|
|
|
|
|
<span class="c1"># import all available solutions</span>
|
|
|
-<span class="k">for</span> <span class="n">loader</span><span class="p">,</span> <span class="n">module_name</span><span class="p">,</span> <span class="n">is_pkg</span> <span class="ow">in</span> <span class="n">pkgutil</span><span class="o">.</span><span class="n">walk_packages</span><span class="p">(</span>
|
|
|
- <span class="n">path</span><span class="o">=</span><span class="p">[</span><span class="s1">'macop/solutions'</span><span class="p">],</span> <span class="n">prefix</span><span class="o">=</span><span class="s1">'macop.solutions.'</span><span class="p">):</span>
|
|
|
- <span class="n">_module</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">find_module</span><span class="p">(</span><span class="n">module_name</span><span class="p">)</span><span class="o">.</span><span class="n">load_module</span><span class="p">(</span><span class="n">module_name</span><span class="p">)</span>
|
|
|
- <span class="nb">globals</span><span class="p">()[</span><span class="n">module_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_module</span>
|
|
|
+<span class="c1"># for loader, module_name, is_pkg in pkgutil.walk_packages(</span>
|
|
|
+<span class="c1"># path=[</span>
|
|
|
+<span class="c1"># str(pathlib.Path(__file__).parent.absolute()) + '/../../solutions'</span>
|
|
|
+<span class="c1"># ],</span>
|
|
|
+<span class="c1"># prefix='macop.solutions.'):</span>
|
|
|
+<span class="c1"># _module = loader.find_module(module_name).load_module(module_name)</span>
|
|
|
+<span class="c1"># globals()[module_name] = _module</span>
|
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="SimpleCrossover"><a class="viewcode-back" href="../../../../macop/macop.operators.crossovers.SimpleCrossover.html#macop.operators.crossovers.SimpleCrossover.SimpleCrossover">[docs]</a><span class="k">class</span> <span class="nc">SimpleCrossover</span><span class="p">(</span><span class="n">Crossover</span><span class="p">):</span>
|
|
@@ -203,6 +207,11 @@
|
|
|
|
|
|
<span class="c1"># create solution of same kind with new data</span>
|
|
|
<span class="n">class_name</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">_solution</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span>
|
|
|
+
|
|
|
+ <span class="c1"># dynamically load solution class if unknown</span>
|
|
|
+ <span class="k">if</span> <span class="n">class_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">modules</span><span class="p">:</span>
|
|
|
+ <span class="n">load_class</span><span class="p">(</span><span class="n">class_name</span><span class="p">,</span> <span class="nb">globals</span><span class="p">())</span>
|
|
|
+
|
|
|
<span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="nb">globals</span><span class="p">()[</span><span class="s1">'macop.solutions.'</span> <span class="o">+</span> <span class="n">class_name</span><span class="p">],</span>
|
|
|
<span class="n">class_name</span><span class="p">)(</span><span class="n">currentData</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div></div>
|
|
|
</pre></div>
|