Update Docs
All checks were successful
Build and push Docker image at git tag / build (push) Successful in 38m31s

This commit is contained in:
Magnus Bender 2024-10-29 23:58:46 +01:00
parent 533b9fed6d
commit 63784119d2
Signed by: bender
GPG Key ID: 5149A211831F2BD7
14 changed files with 3866 additions and 295 deletions

File diff suppressed because one or more lines are too long

View File

@ -27,6 +27,7 @@
<h2>Submodules</h2>
<ul>
<li><a href="ums/agent.html">agent</a></li>
<li><a href="ums/example.html">example</a></li>
<li><a href="ums/management.html">management</a></li>
<li><a href="ums/utils.html">utils</a></li>
</ul>

View File

@ -29,6 +29,12 @@
pattern=".+" required>
<h2>Submodules</h2>
<ul>
<li><a href="agent/agent.html">agent</a></li>
<li><a href="agent/main.html">main</a></li>
<li><a href="agent/process.html">process</a></li>
</ul>
@ -49,15 +55,24 @@
<label class="view-source-button" for="mod-agent-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos">1</span></a><span class="c1"># Agenten Plattform</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos">2</span></a><span class="c1">#</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos">3</span></a><span class="c1"># (c) 2024 Magnus Bender</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos">4</span></a><span class="c1"># Institute of Humanities-Centered Artificial Intelligence (CHAI)</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos">5</span></a><span class="c1"># Universitaet Hamburg</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos">6</span></a><span class="c1"># https://www.chai.uni-hamburg.de/~bender</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos">7</span></a><span class="c1"># </span>
</span><span id="L-8"><a href="#L-8"><span class="linenos">8</span></a><span class="c1"># source code released under the terms of GNU Public License Version 3</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos">9</span></a><span class="c1"># https://www.gnu.org/licenses/gpl-3.0.txt</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="c1"># Agenten Plattform</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="c1">#</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="c1"># (c) 2024 Magnus Bender</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="c1"># Institute of Humanities-Centered Artificial Intelligence (CHAI)</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="c1"># Universitaet Hamburg</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="c1"># https://www.chai.uni-hamburg.de/~bender</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="c1"># </span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="c1"># source code released under the terms of GNU Public License Version 3</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="c1"># https://www.gnu.org/licenses/gpl-3.0.txt</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a><span class="kn">from</span> <span class="nn">ums.agent.agent</span> <span class="kn">import</span> <span class="p">(</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a> <span class="n">AgentCapability</span><span class="p">,</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a> <span class="n">BasicAgent</span><span class="p">,</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a> <span class="n">ExtractAgent</span><span class="p">,</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a> <span class="n">ExtractAudioAgent</span><span class="p">,</span> <span class="n">ExtractImageAgent</span><span class="p">,</span> <span class="n">ExtractTextAgent</span><span class="p">,</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a> <span class="n">SolveAgent</span><span class="p">,</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a> <span class="n">GatekeeperAgent</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a><span class="p">)</span>
</span></pre></div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -103,7 +103,7 @@
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="kn">from</span> <span class="nn">fastapi</span> <span class="kn">import</span> <span class="n">BackgroundTasks</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="kn">from</span> <span class="nn">ums.management.db</span> <span class="kn">import</span> <span class="n">DB</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="kn">from</span> <span class="nn">ums.utils</span> <span class="kn">import</span> <span class="n">AgentMessage</span><span class="p">,</span> <span class="n">AgentResponse</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="kn">from</span> <span class="nn">ums.utils</span> <span class="kn">import</span> <span class="n">AgentMessage</span><span class="p">,</span> <span class="n">AgentResponse</span><span class="p">,</span> <span class="n">logger</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="k">class</span> <span class="nc">MessageProcessor</span><span class="p">():</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a>
@ -129,11 +129,11 @@
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">management_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_name</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">MANAGEMENT_URL</span><span class="p">)</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_PROCESS</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Not Process Agent (AGENTS_PROCESS) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Not Process Agent (AGENTS_PROCESS) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_SOLVE</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Not Solve Agent (AGENTS_SOLVE) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Not Solve Agent (AGENTS_SOLVE) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_GATEKEEPER</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Not Gatekeeper Agent (AGENTS_GATEKEEPER) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Not Gatekeeper Agent (AGENTS_GATEKEEPER) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a>
</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="k">def</span> <span class="nf">_get_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">:</span><span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="n">m</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;^https?://([^:]*)(?::(\d+))?$&#39;</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
@ -168,90 +168,89 @@
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a>
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="c1"># check which step/ state the message requires the management to do</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">if</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">finished</span><span class="p">:</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_do_extract</span><span class="p">(</span><span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="k">elif</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">required</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">finished</span><span class="p">:</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_do_solve</span><span class="p">(</span><span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">elif</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">required</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">finished</span><span class="p">:</span>
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_do_validate</span><span class="p">(</span><span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">else</span><span class="p">:</span> <span class="c1"># all steps &quot;done&quot;</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="k">if</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solved</span><span class="p">:</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="c1"># yay, message is solved</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_solution</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">solution</span><span class="o">=</span><span class="kc">True</span><span class="p">);</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="c1"># not solved, but all steps done</span>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_solution</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">solution</span><span class="o">=</span><span class="kc">False</span><span class="p">);</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a>
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="c1"># try again</span>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_do_again</span><span class="p">(</span><span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="c1"># now message processed!</span>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_processed</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">processed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="k">def</span> <span class="nf">_do_extract</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">):</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="c1"># TODO</span>
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="k">pass</span>
</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a>
</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="k">def</span> <span class="nf">_do_solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">):</span>
</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="c1"># TODO</span>
</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="k">pass</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="c1"># send to extract agents</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_send_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_PROCESS</span><span class="p">,</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">elif</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">required</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">finished</span><span class="p">:</span>
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="c1"># send to solve agents</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_send_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_SOLVE</span><span class="p">,</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">elif</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">required</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">finished</span><span class="p">:</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="c1"># send to solve agents</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_send_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_GATEKEEPER</span><span class="p">,</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="k">else</span><span class="p">:</span> <span class="c1"># all steps &quot;done&quot;</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a>
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="c1"># validate not required? (then solved will never be set to true, thus set it here)</span>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solved</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="k">if</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solved</span><span class="p">:</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="c1"># yay, message is solved</span>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_solution</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">solution</span><span class="o">=</span><span class="kc">True</span><span class="p">);</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="c1"># not solved, but all steps done</span>
</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_solution</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">solution</span><span class="o">=</span><span class="kc">False</span><span class="p">);</span>
</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a>
</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="c1"># try again</span>
</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_do_again</span><span class="p">(</span><span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a>
</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="k">def</span> <span class="nf">_do_validate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">):</span>
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="c1"># TODO</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="k">pass</span>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="k">def</span> <span class="nf">_do_again</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">):</span>
</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">trial</span> <span class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">SOLUTION_MAX_TRIALS</span><span class="p">:</span>
</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="c1"># try again, recycle message</span>
</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a>
</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="c1"># require steps again</span>
</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a>
</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="c1"># increment trial</span>
</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">trial</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a>
</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="c1"># append current solution als old one</span>
</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">message</span><span class="o">.</span><span class="n">solution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="n">message</span><span class="o">.</span><span class="n">riddle</span><span class="o">.</span><span class="n">solutions_before</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="n">message</span><span class="o">.</span><span class="n">solution</span>
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="p">)</span>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="c1"># reset current solution</span>
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">message</span><span class="o">.</span><span class="n">solution</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a>
</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="c1"># add the riddle as new to management</span>
</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_send_message</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">MANAGEMENT_URL</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span>
</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a>
</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="k">def</span> <span class="nf">_send_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">recipients</span><span class="p">:</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="n">ok</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">recipients</span><span class="p">:</span>
</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="n">ok</span> <span class="o">=</span> <span class="n">ok</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_send_message</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span>
</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="k">return</span> <span class="n">ok</span>
</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a>
</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="k">def</span> <span class="nf">_send_message</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">recipient</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="n">db_count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">add_message</span><span class="p">(</span>
</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="n">sender</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">management_name</span><span class="p">,</span>
</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="n">recipient</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_name</span><span class="p">(</span><span class="n">recipient</span><span class="p">),</span>
</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="n">message</span><span class="o">=</span><span class="n">message</span><span class="p">,</span>
</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="n">processed</span><span class="o">=</span><span class="kc">False</span>
</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="p">)</span>
</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a>
</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="n">r</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span>
</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="s2">&quot;</span><span class="si">{}</span><span class="s2">/message&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">recipient</span><span class="p">),</span>
</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="n">data</span><span class="o">=</span><span class="n">message</span><span class="o">.</span><span class="n">model_dump_json</span><span class="p">(),</span>
</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;accept&quot;</span> <span class="p">:</span> <span class="s2">&quot;application/json&quot;</span><span class="p">,</span> <span class="s2">&quot;content-type&quot;</span> <span class="p">:</span> <span class="s2">&quot;application/json&quot;</span><span class="p">}</span>
</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="p">)</span>
</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a>
</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="k">if</span> <span class="n">r</span><span class="o">.</span><span class="n">status_code</span> <span class="o">==</span> <span class="mi">200</span><span class="p">:</span>
</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_processed</span><span class="p">(</span><span class="n">db_count</span><span class="p">,</span> <span class="n">processed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Error sending message to:&quot;</span><span class="p">,</span> <span class="n">recipient</span><span class="p">,</span> <span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">r</span><span class="o">.</span><span class="n">headers</span><span class="p">))</span>
</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="k">return</span> <span class="kc">False</span>
</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a>
</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="c1"># now message processed!</span>
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_processed</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">processed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="k">def</span> <span class="nf">_do_again</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">):</span>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">trial</span> <span class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">SOLUTION_MAX_TRIALS</span><span class="p">:</span>
</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="c1"># try again, recycle message</span>
</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a>
</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="c1"># require steps again</span>
</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a>
</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="c1"># increment trial</span>
</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">trial</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a>
</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="c1"># append current solution als old one</span>
</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">message</span><span class="o">.</span><span class="n">solution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="n">message</span><span class="o">.</span><span class="n">riddle</span><span class="o">.</span><span class="n">solutions_before</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="n">message</span><span class="o">.</span><span class="n">solution</span>
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="p">)</span>
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="c1"># reset current solution</span>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">message</span><span class="o">.</span><span class="n">solution</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a>
</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="c1"># add the riddle as new to management</span>
</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_send_message</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">MANAGEMENT_URL</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span>
</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a>
</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="k">def</span> <span class="nf">_send_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">recipients</span><span class="p">:</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="n">ok</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">recipients</span><span class="p">:</span>
</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="n">ok</span> <span class="o">=</span> <span class="n">ok</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_send_message</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span>
</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="k">return</span> <span class="n">ok</span>
</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a>
</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="k">def</span> <span class="nf">_send_message</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">recipient</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="n">db_count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">add_message</span><span class="p">(</span>
</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="n">sender</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">management_name</span><span class="p">,</span>
</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="n">recipient</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_name</span><span class="p">(</span><span class="n">recipient</span><span class="p">),</span>
</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="n">message</span><span class="o">=</span><span class="n">message</span><span class="p">,</span>
</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="n">processed</span><span class="o">=</span><span class="kc">False</span>
</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="p">)</span>
</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a>
</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="n">r</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span>
</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="s2">&quot;</span><span class="si">{}</span><span class="s2">/message&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">recipient</span><span class="p">),</span>
</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="n">data</span><span class="o">=</span><span class="n">message</span><span class="o">.</span><span class="n">model_dump_json</span><span class="p">(),</span>
</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;accept&quot;</span> <span class="p">:</span> <span class="s2">&quot;application/json&quot;</span><span class="p">,</span> <span class="s2">&quot;content-type&quot;</span> <span class="p">:</span> <span class="s2">&quot;application/json&quot;</span><span class="p">}</span>
</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="p">)</span>
</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a>
</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="k">if</span> <span class="n">r</span><span class="o">.</span><span class="n">status_code</span> <span class="o">==</span> <span class="mi">200</span><span class="p">:</span>
</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_processed</span><span class="p">(</span><span class="n">db_count</span><span class="p">,</span> <span class="n">processed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Error sending message to: </span><span class="si">{</span><span class="n">recipient</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="o">.</span><span class="n">headers</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="k">return</span> <span class="kc">False</span>
</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a>
</span></pre></div>
@ -291,11 +290,11 @@
</span><span id="MessageProcessor-42"><a href="#MessageProcessor-42"><span class="linenos"> 42</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">management_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_name</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">MANAGEMENT_URL</span><span class="p">)</span>
</span><span id="MessageProcessor-43"><a href="#MessageProcessor-43"><span class="linenos"> 43</span></a>
</span><span id="MessageProcessor-44"><a href="#MessageProcessor-44"><span class="linenos"> 44</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_PROCESS</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="MessageProcessor-45"><a href="#MessageProcessor-45"><span class="linenos"> 45</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Not Process Agent (AGENTS_PROCESS) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor-45"><a href="#MessageProcessor-45"><span class="linenos"> 45</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Not Process Agent (AGENTS_PROCESS) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor-46"><a href="#MessageProcessor-46"><span class="linenos"> 46</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_SOLVE</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="MessageProcessor-47"><a href="#MessageProcessor-47"><span class="linenos"> 47</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Not Solve Agent (AGENTS_SOLVE) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor-47"><a href="#MessageProcessor-47"><span class="linenos"> 47</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Not Solve Agent (AGENTS_SOLVE) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor-48"><a href="#MessageProcessor-48"><span class="linenos"> 48</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_GATEKEEPER</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="MessageProcessor-49"><a href="#MessageProcessor-49"><span class="linenos"> 49</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Not Gatekeeper Agent (AGENTS_GATEKEEPER) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor-49"><a href="#MessageProcessor-49"><span class="linenos"> 49</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Not Gatekeeper Agent (AGENTS_GATEKEEPER) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor-50"><a href="#MessageProcessor-50"><span class="linenos"> 50</span></a>
</span><span id="MessageProcessor-51"><a href="#MessageProcessor-51"><span class="linenos"> 51</span></a> <span class="k">def</span> <span class="nf">_get_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">:</span><span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="MessageProcessor-52"><a href="#MessageProcessor-52"><span class="linenos"> 52</span></a> <span class="n">m</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;^https?://([^:]*)(?::(\d+))?$&#39;</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
@ -330,89 +329,88 @@
</span><span id="MessageProcessor-81"><a href="#MessageProcessor-81"><span class="linenos"> 81</span></a>
</span><span id="MessageProcessor-82"><a href="#MessageProcessor-82"><span class="linenos"> 82</span></a> <span class="c1"># check which step/ state the message requires the management to do</span>
</span><span id="MessageProcessor-83"><a href="#MessageProcessor-83"><span class="linenos"> 83</span></a> <span class="k">if</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">finished</span><span class="p">:</span>
</span><span id="MessageProcessor-84"><a href="#MessageProcessor-84"><span class="linenos"> 84</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_do_extract</span><span class="p">(</span><span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-85"><a href="#MessageProcessor-85"><span class="linenos"> 85</span></a> <span class="k">elif</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">required</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">finished</span><span class="p">:</span>
</span><span id="MessageProcessor-86"><a href="#MessageProcessor-86"><span class="linenos"> 86</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_do_solve</span><span class="p">(</span><span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-87"><a href="#MessageProcessor-87"><span class="linenos"> 87</span></a> <span class="k">elif</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">required</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">finished</span><span class="p">:</span>
</span><span id="MessageProcessor-88"><a href="#MessageProcessor-88"><span class="linenos"> 88</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_do_validate</span><span class="p">(</span><span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-89"><a href="#MessageProcessor-89"><span class="linenos"> 89</span></a> <span class="k">else</span><span class="p">:</span> <span class="c1"># all steps &quot;done&quot;</span>
</span><span id="MessageProcessor-90"><a href="#MessageProcessor-90"><span class="linenos"> 90</span></a> <span class="k">if</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solved</span><span class="p">:</span>
</span><span id="MessageProcessor-91"><a href="#MessageProcessor-91"><span class="linenos"> 91</span></a> <span class="c1"># yay, message is solved</span>
</span><span id="MessageProcessor-92"><a href="#MessageProcessor-92"><span class="linenos"> 92</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_solution</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">solution</span><span class="o">=</span><span class="kc">True</span><span class="p">);</span>
</span><span id="MessageProcessor-93"><a href="#MessageProcessor-93"><span class="linenos"> 93</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="MessageProcessor-94"><a href="#MessageProcessor-94"><span class="linenos"> 94</span></a> <span class="c1"># not solved, but all steps done</span>
</span><span id="MessageProcessor-95"><a href="#MessageProcessor-95"><span class="linenos"> 95</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_solution</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">solution</span><span class="o">=</span><span class="kc">False</span><span class="p">);</span>
</span><span id="MessageProcessor-96"><a href="#MessageProcessor-96"><span class="linenos"> 96</span></a>
</span><span id="MessageProcessor-97"><a href="#MessageProcessor-97"><span class="linenos"> 97</span></a> <span class="c1"># try again</span>
</span><span id="MessageProcessor-98"><a href="#MessageProcessor-98"><span class="linenos"> 98</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_do_again</span><span class="p">(</span><span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-99"><a href="#MessageProcessor-99"><span class="linenos"> 99</span></a>
</span><span id="MessageProcessor-100"><a href="#MessageProcessor-100"><span class="linenos">100</span></a> <span class="c1"># now message processed!</span>
</span><span id="MessageProcessor-101"><a href="#MessageProcessor-101"><span class="linenos">101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_processed</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">processed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="MessageProcessor-102"><a href="#MessageProcessor-102"><span class="linenos">102</span></a>
</span><span id="MessageProcessor-103"><a href="#MessageProcessor-103"><span class="linenos">103</span></a> <span class="k">def</span> <span class="nf">_do_extract</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">):</span>
</span><span id="MessageProcessor-104"><a href="#MessageProcessor-104"><span class="linenos">104</span></a> <span class="c1"># TODO</span>
</span><span id="MessageProcessor-105"><a href="#MessageProcessor-105"><span class="linenos">105</span></a> <span class="k">pass</span>
</span><span id="MessageProcessor-106"><a href="#MessageProcessor-106"><span class="linenos">106</span></a>
</span><span id="MessageProcessor-107"><a href="#MessageProcessor-107"><span class="linenos">107</span></a> <span class="k">def</span> <span class="nf">_do_solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">):</span>
</span><span id="MessageProcessor-108"><a href="#MessageProcessor-108"><span class="linenos">108</span></a> <span class="c1"># TODO</span>
</span><span id="MessageProcessor-109"><a href="#MessageProcessor-109"><span class="linenos">109</span></a> <span class="k">pass</span>
</span><span id="MessageProcessor-84"><a href="#MessageProcessor-84"><span class="linenos"> 84</span></a> <span class="c1"># send to extract agents</span>
</span><span id="MessageProcessor-85"><a href="#MessageProcessor-85"><span class="linenos"> 85</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_send_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_PROCESS</span><span class="p">,</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-86"><a href="#MessageProcessor-86"><span class="linenos"> 86</span></a>
</span><span id="MessageProcessor-87"><a href="#MessageProcessor-87"><span class="linenos"> 87</span></a> <span class="k">elif</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">required</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">finished</span><span class="p">:</span>
</span><span id="MessageProcessor-88"><a href="#MessageProcessor-88"><span class="linenos"> 88</span></a> <span class="c1"># send to solve agents</span>
</span><span id="MessageProcessor-89"><a href="#MessageProcessor-89"><span class="linenos"> 89</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_send_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_SOLVE</span><span class="p">,</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-90"><a href="#MessageProcessor-90"><span class="linenos"> 90</span></a>
</span><span id="MessageProcessor-91"><a href="#MessageProcessor-91"><span class="linenos"> 91</span></a> <span class="k">elif</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">required</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">finished</span><span class="p">:</span>
</span><span id="MessageProcessor-92"><a href="#MessageProcessor-92"><span class="linenos"> 92</span></a> <span class="c1"># send to solve agents</span>
</span><span id="MessageProcessor-93"><a href="#MessageProcessor-93"><span class="linenos"> 93</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_send_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_GATEKEEPER</span><span class="p">,</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-94"><a href="#MessageProcessor-94"><span class="linenos"> 94</span></a>
</span><span id="MessageProcessor-95"><a href="#MessageProcessor-95"><span class="linenos"> 95</span></a> <span class="k">else</span><span class="p">:</span> <span class="c1"># all steps &quot;done&quot;</span>
</span><span id="MessageProcessor-96"><a href="#MessageProcessor-96"><span class="linenos"> 96</span></a>
</span><span id="MessageProcessor-97"><a href="#MessageProcessor-97"><span class="linenos"> 97</span></a> <span class="c1"># validate not required? (then solved will never be set to true, thus set it here)</span>
</span><span id="MessageProcessor-98"><a href="#MessageProcessor-98"><span class="linenos"> 98</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="MessageProcessor-99"><a href="#MessageProcessor-99"><span class="linenos"> 99</span></a> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solved</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="MessageProcessor-100"><a href="#MessageProcessor-100"><span class="linenos">100</span></a>
</span><span id="MessageProcessor-101"><a href="#MessageProcessor-101"><span class="linenos">101</span></a> <span class="k">if</span> <span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solved</span><span class="p">:</span>
</span><span id="MessageProcessor-102"><a href="#MessageProcessor-102"><span class="linenos">102</span></a> <span class="c1"># yay, message is solved</span>
</span><span id="MessageProcessor-103"><a href="#MessageProcessor-103"><span class="linenos">103</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_solution</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">solution</span><span class="o">=</span><span class="kc">True</span><span class="p">);</span>
</span><span id="MessageProcessor-104"><a href="#MessageProcessor-104"><span class="linenos">104</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="MessageProcessor-105"><a href="#MessageProcessor-105"><span class="linenos">105</span></a> <span class="c1"># not solved, but all steps done</span>
</span><span id="MessageProcessor-106"><a href="#MessageProcessor-106"><span class="linenos">106</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_solution</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">solution</span><span class="o">=</span><span class="kc">False</span><span class="p">);</span>
</span><span id="MessageProcessor-107"><a href="#MessageProcessor-107"><span class="linenos">107</span></a>
</span><span id="MessageProcessor-108"><a href="#MessageProcessor-108"><span class="linenos">108</span></a> <span class="c1"># try again</span>
</span><span id="MessageProcessor-109"><a href="#MessageProcessor-109"><span class="linenos">109</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_do_again</span><span class="p">(</span><span class="n">db_message</span><span class="o">.</span><span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-110"><a href="#MessageProcessor-110"><span class="linenos">110</span></a>
</span><span id="MessageProcessor-111"><a href="#MessageProcessor-111"><span class="linenos">111</span></a> <span class="k">def</span> <span class="nf">_do_validate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">):</span>
</span><span id="MessageProcessor-112"><a href="#MessageProcessor-112"><span class="linenos">112</span></a> <span class="c1"># TODO</span>
</span><span id="MessageProcessor-113"><a href="#MessageProcessor-113"><span class="linenos">113</span></a> <span class="k">pass</span>
</span><span id="MessageProcessor-114"><a href="#MessageProcessor-114"><span class="linenos">114</span></a>
</span><span id="MessageProcessor-115"><a href="#MessageProcessor-115"><span class="linenos">115</span></a> <span class="k">def</span> <span class="nf">_do_again</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">):</span>
</span><span id="MessageProcessor-116"><a href="#MessageProcessor-116"><span class="linenos">116</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">trial</span> <span class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">SOLUTION_MAX_TRIALS</span><span class="p">:</span>
</span><span id="MessageProcessor-117"><a href="#MessageProcessor-117"><span class="linenos">117</span></a> <span class="c1"># try again, recycle message</span>
</span><span id="MessageProcessor-118"><a href="#MessageProcessor-118"><span class="linenos">118</span></a>
</span><span id="MessageProcessor-119"><a href="#MessageProcessor-119"><span class="linenos">119</span></a> <span class="c1"># require steps again</span>
</span><span id="MessageProcessor-120"><a href="#MessageProcessor-120"><span class="linenos">120</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="MessageProcessor-121"><a href="#MessageProcessor-121"><span class="linenos">121</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="MessageProcessor-122"><a href="#MessageProcessor-122"><span class="linenos">122</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="MessageProcessor-123"><a href="#MessageProcessor-123"><span class="linenos">123</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="MessageProcessor-124"><a href="#MessageProcessor-124"><span class="linenos">124</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="MessageProcessor-125"><a href="#MessageProcessor-125"><span class="linenos">125</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="MessageProcessor-126"><a href="#MessageProcessor-126"><span class="linenos">126</span></a>
</span><span id="MessageProcessor-127"><a href="#MessageProcessor-127"><span class="linenos">127</span></a> <span class="c1"># increment trial</span>
</span><span id="MessageProcessor-128"><a href="#MessageProcessor-128"><span class="linenos">128</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">trial</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="MessageProcessor-129"><a href="#MessageProcessor-129"><span class="linenos">129</span></a>
</span><span id="MessageProcessor-130"><a href="#MessageProcessor-130"><span class="linenos">130</span></a> <span class="c1"># append current solution als old one</span>
</span><span id="MessageProcessor-131"><a href="#MessageProcessor-131"><span class="linenos">131</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">message</span><span class="o">.</span><span class="n">solution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="MessageProcessor-132"><a href="#MessageProcessor-132"><span class="linenos">132</span></a> <span class="n">message</span><span class="o">.</span><span class="n">riddle</span><span class="o">.</span><span class="n">solutions_before</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
</span><span id="MessageProcessor-133"><a href="#MessageProcessor-133"><span class="linenos">133</span></a> <span class="n">message</span><span class="o">.</span><span class="n">solution</span>
</span><span id="MessageProcessor-134"><a href="#MessageProcessor-134"><span class="linenos">134</span></a> <span class="p">)</span>
</span><span id="MessageProcessor-135"><a href="#MessageProcessor-135"><span class="linenos">135</span></a> <span class="c1"># reset current solution</span>
</span><span id="MessageProcessor-136"><a href="#MessageProcessor-136"><span class="linenos">136</span></a> <span class="n">message</span><span class="o">.</span><span class="n">solution</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="MessageProcessor-137"><a href="#MessageProcessor-137"><span class="linenos">137</span></a>
</span><span id="MessageProcessor-138"><a href="#MessageProcessor-138"><span class="linenos">138</span></a> <span class="c1"># add the riddle as new to management</span>
</span><span id="MessageProcessor-139"><a href="#MessageProcessor-139"><span class="linenos">139</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_send_message</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">MANAGEMENT_URL</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-140"><a href="#MessageProcessor-140"><span class="linenos">140</span></a>
</span><span id="MessageProcessor-141"><a href="#MessageProcessor-141"><span class="linenos">141</span></a> <span class="k">def</span> <span class="nf">_send_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">recipients</span><span class="p">:</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="MessageProcessor-142"><a href="#MessageProcessor-142"><span class="linenos">142</span></a> <span class="n">ok</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="MessageProcessor-143"><a href="#MessageProcessor-143"><span class="linenos">143</span></a> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">recipients</span><span class="p">:</span>
</span><span id="MessageProcessor-144"><a href="#MessageProcessor-144"><span class="linenos">144</span></a> <span class="n">ok</span> <span class="o">=</span> <span class="n">ok</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_send_message</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-145"><a href="#MessageProcessor-145"><span class="linenos">145</span></a> <span class="k">return</span> <span class="n">ok</span>
</span><span id="MessageProcessor-146"><a href="#MessageProcessor-146"><span class="linenos">146</span></a>
</span><span id="MessageProcessor-147"><a href="#MessageProcessor-147"><span class="linenos">147</span></a> <span class="k">def</span> <span class="nf">_send_message</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">recipient</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="MessageProcessor-148"><a href="#MessageProcessor-148"><span class="linenos">148</span></a> <span class="n">db_count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">add_message</span><span class="p">(</span>
</span><span id="MessageProcessor-149"><a href="#MessageProcessor-149"><span class="linenos">149</span></a> <span class="n">sender</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">management_name</span><span class="p">,</span>
</span><span id="MessageProcessor-150"><a href="#MessageProcessor-150"><span class="linenos">150</span></a> <span class="n">recipient</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_name</span><span class="p">(</span><span class="n">recipient</span><span class="p">),</span>
</span><span id="MessageProcessor-151"><a href="#MessageProcessor-151"><span class="linenos">151</span></a> <span class="n">message</span><span class="o">=</span><span class="n">message</span><span class="p">,</span>
</span><span id="MessageProcessor-152"><a href="#MessageProcessor-152"><span class="linenos">152</span></a> <span class="n">processed</span><span class="o">=</span><span class="kc">False</span>
</span><span id="MessageProcessor-153"><a href="#MessageProcessor-153"><span class="linenos">153</span></a> <span class="p">)</span>
</span><span id="MessageProcessor-154"><a href="#MessageProcessor-154"><span class="linenos">154</span></a>
</span><span id="MessageProcessor-155"><a href="#MessageProcessor-155"><span class="linenos">155</span></a> <span class="n">r</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span>
</span><span id="MessageProcessor-156"><a href="#MessageProcessor-156"><span class="linenos">156</span></a> <span class="s2">&quot;</span><span class="si">{}</span><span class="s2">/message&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">recipient</span><span class="p">),</span>
</span><span id="MessageProcessor-157"><a href="#MessageProcessor-157"><span class="linenos">157</span></a> <span class="n">data</span><span class="o">=</span><span class="n">message</span><span class="o">.</span><span class="n">model_dump_json</span><span class="p">(),</span>
</span><span id="MessageProcessor-158"><a href="#MessageProcessor-158"><span class="linenos">158</span></a> <span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;accept&quot;</span> <span class="p">:</span> <span class="s2">&quot;application/json&quot;</span><span class="p">,</span> <span class="s2">&quot;content-type&quot;</span> <span class="p">:</span> <span class="s2">&quot;application/json&quot;</span><span class="p">}</span>
</span><span id="MessageProcessor-159"><a href="#MessageProcessor-159"><span class="linenos">159</span></a> <span class="p">)</span>
</span><span id="MessageProcessor-160"><a href="#MessageProcessor-160"><span class="linenos">160</span></a>
</span><span id="MessageProcessor-161"><a href="#MessageProcessor-161"><span class="linenos">161</span></a> <span class="k">if</span> <span class="n">r</span><span class="o">.</span><span class="n">status_code</span> <span class="o">==</span> <span class="mi">200</span><span class="p">:</span>
</span><span id="MessageProcessor-162"><a href="#MessageProcessor-162"><span class="linenos">162</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_processed</span><span class="p">(</span><span class="n">db_count</span><span class="p">,</span> <span class="n">processed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="MessageProcessor-163"><a href="#MessageProcessor-163"><span class="linenos">163</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="MessageProcessor-164"><a href="#MessageProcessor-164"><span class="linenos">164</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="MessageProcessor-165"><a href="#MessageProcessor-165"><span class="linenos">165</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Error sending message to:&quot;</span><span class="p">,</span> <span class="n">recipient</span><span class="p">,</span> <span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">r</span><span class="o">.</span><span class="n">headers</span><span class="p">))</span>
</span><span id="MessageProcessor-166"><a href="#MessageProcessor-166"><span class="linenos">166</span></a> <span class="k">return</span> <span class="kc">False</span>
</span><span id="MessageProcessor-111"><a href="#MessageProcessor-111"><span class="linenos">111</span></a> <span class="c1"># now message processed!</span>
</span><span id="MessageProcessor-112"><a href="#MessageProcessor-112"><span class="linenos">112</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_processed</span><span class="p">(</span><span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">,</span> <span class="n">processed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="MessageProcessor-113"><a href="#MessageProcessor-113"><span class="linenos">113</span></a>
</span><span id="MessageProcessor-114"><a href="#MessageProcessor-114"><span class="linenos">114</span></a> <span class="k">def</span> <span class="nf">_do_again</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">):</span>
</span><span id="MessageProcessor-115"><a href="#MessageProcessor-115"><span class="linenos">115</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">trial</span> <span class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">SOLUTION_MAX_TRIALS</span><span class="p">:</span>
</span><span id="MessageProcessor-116"><a href="#MessageProcessor-116"><span class="linenos">116</span></a> <span class="c1"># try again, recycle message</span>
</span><span id="MessageProcessor-117"><a href="#MessageProcessor-117"><span class="linenos">117</span></a>
</span><span id="MessageProcessor-118"><a href="#MessageProcessor-118"><span class="linenos">118</span></a> <span class="c1"># require steps again</span>
</span><span id="MessageProcessor-119"><a href="#MessageProcessor-119"><span class="linenos">119</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="MessageProcessor-120"><a href="#MessageProcessor-120"><span class="linenos">120</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="MessageProcessor-121"><a href="#MessageProcessor-121"><span class="linenos">121</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="MessageProcessor-122"><a href="#MessageProcessor-122"><span class="linenos">122</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">solve</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="MessageProcessor-123"><a href="#MessageProcessor-123"><span class="linenos">123</span></a> <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">required</span><span class="p">:</span>
</span><span id="MessageProcessor-124"><a href="#MessageProcessor-124"><span class="linenos">124</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">validate</span><span class="o">.</span><span class="n">finished</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="MessageProcessor-125"><a href="#MessageProcessor-125"><span class="linenos">125</span></a>
</span><span id="MessageProcessor-126"><a href="#MessageProcessor-126"><span class="linenos">126</span></a> <span class="c1"># increment trial</span>
</span><span id="MessageProcessor-127"><a href="#MessageProcessor-127"><span class="linenos">127</span></a> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">trial</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="MessageProcessor-128"><a href="#MessageProcessor-128"><span class="linenos">128</span></a>
</span><span id="MessageProcessor-129"><a href="#MessageProcessor-129"><span class="linenos">129</span></a> <span class="c1"># append current solution als old one</span>
</span><span id="MessageProcessor-130"><a href="#MessageProcessor-130"><span class="linenos">130</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">message</span><span class="o">.</span><span class="n">solution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="MessageProcessor-131"><a href="#MessageProcessor-131"><span class="linenos">131</span></a> <span class="n">message</span><span class="o">.</span><span class="n">riddle</span><span class="o">.</span><span class="n">solutions_before</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
</span><span id="MessageProcessor-132"><a href="#MessageProcessor-132"><span class="linenos">132</span></a> <span class="n">message</span><span class="o">.</span><span class="n">solution</span>
</span><span id="MessageProcessor-133"><a href="#MessageProcessor-133"><span class="linenos">133</span></a> <span class="p">)</span>
</span><span id="MessageProcessor-134"><a href="#MessageProcessor-134"><span class="linenos">134</span></a> <span class="c1"># reset current solution</span>
</span><span id="MessageProcessor-135"><a href="#MessageProcessor-135"><span class="linenos">135</span></a> <span class="n">message</span><span class="o">.</span><span class="n">solution</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="MessageProcessor-136"><a href="#MessageProcessor-136"><span class="linenos">136</span></a>
</span><span id="MessageProcessor-137"><a href="#MessageProcessor-137"><span class="linenos">137</span></a> <span class="c1"># add the riddle as new to management</span>
</span><span id="MessageProcessor-138"><a href="#MessageProcessor-138"><span class="linenos">138</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_send_message</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">MANAGEMENT_URL</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-139"><a href="#MessageProcessor-139"><span class="linenos">139</span></a>
</span><span id="MessageProcessor-140"><a href="#MessageProcessor-140"><span class="linenos">140</span></a> <span class="k">def</span> <span class="nf">_send_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">recipients</span><span class="p">:</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="MessageProcessor-141"><a href="#MessageProcessor-141"><span class="linenos">141</span></a> <span class="n">ok</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="MessageProcessor-142"><a href="#MessageProcessor-142"><span class="linenos">142</span></a> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">recipients</span><span class="p">:</span>
</span><span id="MessageProcessor-143"><a href="#MessageProcessor-143"><span class="linenos">143</span></a> <span class="n">ok</span> <span class="o">=</span> <span class="n">ok</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_send_message</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span>
</span><span id="MessageProcessor-144"><a href="#MessageProcessor-144"><span class="linenos">144</span></a> <span class="k">return</span> <span class="n">ok</span>
</span><span id="MessageProcessor-145"><a href="#MessageProcessor-145"><span class="linenos">145</span></a>
</span><span id="MessageProcessor-146"><a href="#MessageProcessor-146"><span class="linenos">146</span></a> <span class="k">def</span> <span class="nf">_send_message</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">recipient</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span><span class="n">AgentMessage</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="MessageProcessor-147"><a href="#MessageProcessor-147"><span class="linenos">147</span></a> <span class="n">db_count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">add_message</span><span class="p">(</span>
</span><span id="MessageProcessor-148"><a href="#MessageProcessor-148"><span class="linenos">148</span></a> <span class="n">sender</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">management_name</span><span class="p">,</span>
</span><span id="MessageProcessor-149"><a href="#MessageProcessor-149"><span class="linenos">149</span></a> <span class="n">recipient</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_name</span><span class="p">(</span><span class="n">recipient</span><span class="p">),</span>
</span><span id="MessageProcessor-150"><a href="#MessageProcessor-150"><span class="linenos">150</span></a> <span class="n">message</span><span class="o">=</span><span class="n">message</span><span class="p">,</span>
</span><span id="MessageProcessor-151"><a href="#MessageProcessor-151"><span class="linenos">151</span></a> <span class="n">processed</span><span class="o">=</span><span class="kc">False</span>
</span><span id="MessageProcessor-152"><a href="#MessageProcessor-152"><span class="linenos">152</span></a> <span class="p">)</span>
</span><span id="MessageProcessor-153"><a href="#MessageProcessor-153"><span class="linenos">153</span></a>
</span><span id="MessageProcessor-154"><a href="#MessageProcessor-154"><span class="linenos">154</span></a> <span class="n">r</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span>
</span><span id="MessageProcessor-155"><a href="#MessageProcessor-155"><span class="linenos">155</span></a> <span class="s2">&quot;</span><span class="si">{}</span><span class="s2">/message&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">recipient</span><span class="p">),</span>
</span><span id="MessageProcessor-156"><a href="#MessageProcessor-156"><span class="linenos">156</span></a> <span class="n">data</span><span class="o">=</span><span class="n">message</span><span class="o">.</span><span class="n">model_dump_json</span><span class="p">(),</span>
</span><span id="MessageProcessor-157"><a href="#MessageProcessor-157"><span class="linenos">157</span></a> <span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;accept&quot;</span> <span class="p">:</span> <span class="s2">&quot;application/json&quot;</span><span class="p">,</span> <span class="s2">&quot;content-type&quot;</span> <span class="p">:</span> <span class="s2">&quot;application/json&quot;</span><span class="p">}</span>
</span><span id="MessageProcessor-158"><a href="#MessageProcessor-158"><span class="linenos">158</span></a> <span class="p">)</span>
</span><span id="MessageProcessor-159"><a href="#MessageProcessor-159"><span class="linenos">159</span></a>
</span><span id="MessageProcessor-160"><a href="#MessageProcessor-160"><span class="linenos">160</span></a> <span class="k">if</span> <span class="n">r</span><span class="o">.</span><span class="n">status_code</span> <span class="o">==</span> <span class="mi">200</span><span class="p">:</span>
</span><span id="MessageProcessor-161"><a href="#MessageProcessor-161"><span class="linenos">161</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">set_processed</span><span class="p">(</span><span class="n">db_count</span><span class="p">,</span> <span class="n">processed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="MessageProcessor-162"><a href="#MessageProcessor-162"><span class="linenos">162</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="MessageProcessor-163"><a href="#MessageProcessor-163"><span class="linenos">163</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="MessageProcessor-164"><a href="#MessageProcessor-164"><span class="linenos">164</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Error sending message to: </span><span class="si">{</span><span class="n">recipient</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="o">.</span><span class="n">headers</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor-165"><a href="#MessageProcessor-165"><span class="linenos">165</span></a> <span class="k">return</span> <span class="kc">False</span>
</span></pre></div>
@ -433,11 +431,11 @@
</span><span id="MessageProcessor.__init__-42"><a href="#MessageProcessor.__init__-42"><span class="linenos">42</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">management_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_name</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">MANAGEMENT_URL</span><span class="p">)</span>
</span><span id="MessageProcessor.__init__-43"><a href="#MessageProcessor.__init__-43"><span class="linenos">43</span></a>
</span><span id="MessageProcessor.__init__-44"><a href="#MessageProcessor.__init__-44"><span class="linenos">44</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_PROCESS</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="MessageProcessor.__init__-45"><a href="#MessageProcessor.__init__-45"><span class="linenos">45</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Not Process Agent (AGENTS_PROCESS) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor.__init__-45"><a href="#MessageProcessor.__init__-45"><span class="linenos">45</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Not Process Agent (AGENTS_PROCESS) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor.__init__-46"><a href="#MessageProcessor.__init__-46"><span class="linenos">46</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_SOLVE</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="MessageProcessor.__init__-47"><a href="#MessageProcessor.__init__-47"><span class="linenos">47</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Not Solve Agent (AGENTS_SOLVE) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor.__init__-47"><a href="#MessageProcessor.__init__-47"><span class="linenos">47</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Not Solve Agent (AGENTS_SOLVE) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor.__init__-48"><a href="#MessageProcessor.__init__-48"><span class="linenos">48</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">AGENTS_GATEKEEPER</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="MessageProcessor.__init__-49"><a href="#MessageProcessor.__init__-49"><span class="linenos">49</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Not Gatekeeper Agent (AGENTS_GATEKEEPER) found, this may be a problem!&quot;</span><span class="p">)</span>
</span><span id="MessageProcessor.__init__-49"><a href="#MessageProcessor.__init__-49"><span class="linenos">49</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Not Gatekeeper Agent (AGENTS_GATEKEEPER) found, this may be a problem!&quot;</span><span class="p">)</span>
</span></pre></div>

View File

@ -37,6 +37,13 @@
<li><a href="utils/types.html">types</a></li>
</ul>
<h2>API Documentation</h2>
<ul class="memberlist">
<li>
<a class="variable" href="#logger">logger</a>
</li>
</ul>
<a class="attribution" title="pdoc: Python API documentation generator" href="https://pdoc.dev" target="_blank">
@ -66,27 +73,52 @@
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="c1"># source code released under the terms of GNU Public License Version 3</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="c1"># https://www.gnu.org/licenses/gpl-3.0.txt</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a><span class="kn">from</span> <span class="nn">ums.utils.types</span> <span class="kn">import</span> <span class="p">(</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a> <span class="n">RiddleInformation</span><span class="p">,</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a> <span class="n">AgentMessage</span><span class="p">,</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a> <span class="n">Riddle</span><span class="p">,</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a> <span class="n">RiddleSolution</span><span class="p">,</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a> <span class="n">RiddleData</span><span class="p">,</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a> <span class="n">RiddleDataType</span><span class="p">,</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a> <span class="n">RiddleStatus</span><span class="p">,</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="n">AgentResponse</span><span class="p">,</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a> <span class="n">MessageDbRow</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a><span class="p">)</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a><span class="kn">from</span> <span class="nn">ums.utils.const</span> <span class="kn">import</span> <span class="o">*</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a><span class="kn">from</span> <span class="nn">ums.utils.request</span> <span class="kn">import</span> <span class="n">ManagementRequest</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a><span class="kn">from</span> <span class="nn">ums.utils.functions</span> <span class="kn">import</span> <span class="n">list_shared_data</span><span class="p">,</span> <span class="n">list_shared_schema</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a><span class="kn">from</span> <span class="nn">ums.utils.const</span> <span class="kn">import</span> <span class="o">*</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="kn">import</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">os</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a><span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;SERVE&#39;</span><span class="p">,</span> <span class="s1">&#39;false&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;true&#39;</span><span class="p">:</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a> <span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a> <span class="n">handlers</span><span class="o">=</span><span class="p">[</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a> <span class="n">logging</span><span class="o">.</span><span class="n">FileHandler</span><span class="p">(</span><span class="n">LOG_FILE</span><span class="p">),</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a> <span class="n">logging</span><span class="o">.</span><span class="n">StreamHandler</span><span class="p">()</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="p">],</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a> <span class="n">level</span><span class="o">=</span><span class="n">LOG_LEVEL</span><span class="p">,</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a> <span class="nb">format</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">%(asctime)s</span><span class="s1"> </span><span class="si">%(levelname)s</span><span class="s1"> </span><span class="si">%(name)s</span><span class="s1">: </span><span class="si">%(message)s</span><span class="s1">&#39;</span><span class="p">,</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a> <span class="n">datefmt</span><span class="o">=</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M:%S&#39;</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a> <span class="p">)</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a><span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s1">&#39;UMS Agenten&#39;</span><span class="p">)</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a><span class="kn">from</span> <span class="nn">ums.utils.types</span> <span class="kn">import</span> <span class="p">(</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a> <span class="n">RiddleInformation</span><span class="p">,</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a> <span class="n">AgentMessage</span><span class="p">,</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a> <span class="n">Riddle</span><span class="p">,</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="n">RiddleSolution</span><span class="p">,</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="n">RiddleData</span><span class="p">,</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="n">RiddleDataType</span><span class="p">,</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a> <span class="n">RiddleStatus</span><span class="p">,</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="n">AgentResponse</span><span class="p">,</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="n">MessageDbRow</span>
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a><span class="p">)</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a>
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a><span class="kn">from</span> <span class="nn">ums.utils.request</span> <span class="kn">import</span> <span class="n">ManagementRequest</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a><span class="kn">from</span> <span class="nn">ums.utils.functions</span> <span class="kn">import</span> <span class="n">list_shared_data</span><span class="p">,</span> <span class="n">list_shared_schema</span>
</span></pre></div>
</section>
<section id="logger">
<div class="attr variable">
<span class="name">logger</span> =
<span class="default_value">&lt;Logger UMS Agenten (WARNING)&gt;</span>
</div>
<a class="headerlink" href="#logger"></a>
</section>
</main>
<script>
function escapeHTML(html) {

View File

@ -41,9 +41,18 @@
<li>
<a class="variable" href="#PERSIST_PATH">PERSIST_PATH</a>
</li>
<li>
<a class="variable" href="#PUBLIC_PATH">PUBLIC_PATH</a>
</li>
<li>
<a class="variable" href="#TEMPLATE_PATH">TEMPLATE_PATH</a>
</li>
<li>
<a class="variable" href="#LOG_FILE">LOG_FILE</a>
</li>
<li>
<a class="variable" href="#LOG_LEVEL">LOG_LEVEL</a>
</li>
</ul>
@ -83,12 +92,16 @@ See the content ...</p>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="sd"> See the content ...</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="kn">import</span> <span class="nn">os</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">logging</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a><span class="n">BASE_PATH</span> <span class="o">=</span> <span class="s1">&#39;/ums-agenten&#39;</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a><span class="n">SHARE_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">BASE_PATH</span><span class="p">,</span> <span class="s1">&#39;share&#39;</span><span class="p">)</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a><span class="n">PERSIST_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">BASE_PATH</span><span class="p">,</span> <span class="s1">&#39;persist&#39;</span><span class="p">)</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a><span class="n">TEMPLATE_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">BASE_PATH</span><span class="p">,</span> <span class="s1">&#39;plattform&#39;</span><span class="p">,</span> <span class="s1">&#39;web&#39;</span><span class="p">,</span> <span class="s1">&#39;templates&#39;</span><span class="p">)</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a><span class="n">PUBLIC_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">BASE_PATH</span><span class="p">,</span> <span class="s1">&#39;plattform&#39;</span><span class="p">,</span> <span class="s1">&#39;web&#39;</span><span class="p">,</span> <span class="s1">&#39;public&#39;</span><span class="p">)</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a><span class="n">TEMPLATE_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">BASE_PATH</span><span class="p">,</span> <span class="s1">&#39;plattform&#39;</span><span class="p">,</span> <span class="s1">&#39;web&#39;</span><span class="p">,</span> <span class="s1">&#39;templates&#39;</span><span class="p">)</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a><span class="n">LOG_FILE</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">PERSIST_PATH</span><span class="p">,</span> <span class="s1">&#39;ums.log&#39;</span><span class="p">)</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a><span class="n">LOG_LEVEL</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">INFO</span>
</span></pre></div>
@ -128,6 +141,18 @@ See the content ...</p>
</section>
<section id="PUBLIC_PATH">
<div class="attr variable">
<span class="name">PUBLIC_PATH</span> =
<span class="default_value">&#39;/ums-agenten/plattform/web/public&#39;</span>
</div>
<a class="headerlink" href="#PUBLIC_PATH"></a>
</section>
<section id="TEMPLATE_PATH">
<div class="attr variable">
@ -140,6 +165,30 @@ See the content ...</p>
</section>
<section id="LOG_FILE">
<div class="attr variable">
<span class="name">LOG_FILE</span> =
<span class="default_value">&#39;/ums-agenten/persist/ums.log&#39;</span>
</div>
<a class="headerlink" href="#LOG_FILE"></a>
</section>
<section id="LOG_LEVEL">
<div class="attr variable">
<span class="name">LOG_LEVEL</span> =
<span class="default_value">20</span>
</div>
<a class="headerlink" href="#LOG_LEVEL"></a>
</section>
</main>
<script>

View File

@ -65,52 +65,62 @@
<label class="view-source-button" for="mod-functions-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">os</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Callable</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">from</span> <span class="nn">ums.utils.const</span> <span class="kn">import</span> <span class="n">SHARE_PATH</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="k">def</span> <span class="nf">list_path</span><span class="p">(</span><span class="n">path</span><span class="p">:</span><span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> <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">path</span><span class="p">):</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a> <span class="k">for</span> <span class="n">item</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">path</span><span class="p">):</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a> <span class="n">full</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">path</span><span class="p">,</span> <span class="n">item</span><span class="p">)</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a> <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">full</span><span class="p">):</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a> <span class="n">items</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">list_path</span><span class="p">(</span><span class="n">full</span><span class="p">))</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a> <span class="k">elif</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">full</span><span class="p">):</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a> <span class="n">items</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">full</span><span class="p">)</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a> <span class="k">return</span> <span class="n">items</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a> <span class="k">return</span> <span class="p">[]</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a><span class="k">def</span> <span class="nf">list_shared</span><span class="p">(</span><span class="nb">filter</span><span class="p">:</span><span class="n">Callable</span><span class="o">=</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a> <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">list_path</span><span class="p">(</span><span class="n">SHARE_PATH</span><span class="p">):</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a> <span class="n">r</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">SHARE_PATH</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a> <span class="k">if</span> <span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;.&#39;</span> <span class="ow">or</span> <span class="s1">&#39;/.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a> <span class="c1"># hidden files</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a> <span class="k">continue</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a> <span class="k">if</span> <span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">r</span> <span class="ow">and</span> <span class="s1">&#39;.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="k">elif</span> <span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:],</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a> <span class="k">elif</span> <span class="s1">&#39;.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a>
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a> <span class="k">if</span> <span class="nb">filter</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span><span class="p">):</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="k">return</span> <span class="n">files</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a><span class="k">def</span> <span class="nf">list_shared_data</span><span class="p">():</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="k">return</span> <span class="n">list_shared</span><span class="p">(</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="n">e</span> <span class="o">!=</span> <span class="s2">&quot;json&quot;</span><span class="p">)</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a>
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a><span class="k">def</span> <span class="nf">list_shared_schema</span><span class="p">():</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> <span class="k">return</span> <span class="n">list_shared</span><span class="p">(</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="n">e</span> <span class="o">==</span> <span class="s2">&quot;json&quot;</span><span class="p">)</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="c1"># Agenten Plattform</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="c1">#</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="c1"># (c) 2024 Magnus Bender</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="c1"># Institute of Humanities-Centered Artificial Intelligence (CHAI)</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="c1"># Universitaet Hamburg</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="c1"># https://www.chai.uni-hamburg.de/~bender</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="c1"># </span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="c1"># source code released under the terms of GNU Public License Version 3</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="c1"># https://www.gnu.org/licenses/gpl-3.0.txt</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a><span class="kn">import</span> <span class="nn">os</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Callable</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="kn">from</span> <span class="nn">ums.utils.const</span> <span class="kn">import</span> <span class="n">SHARE_PATH</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a><span class="k">def</span> <span class="nf">list_path</span><span class="p">(</span><span class="n">path</span><span class="p">:</span><span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a> <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">path</span><span class="p">):</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a> <span class="k">for</span> <span class="n">item</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">path</span><span class="p">):</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a> <span class="n">full</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">path</span><span class="p">,</span> <span class="n">item</span><span class="p">)</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a> <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">full</span><span class="p">):</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a> <span class="n">items</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">list_path</span><span class="p">(</span><span class="n">full</span><span class="p">))</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a> <span class="k">elif</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">full</span><span class="p">):</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a> <span class="n">items</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">full</span><span class="p">)</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a> <span class="k">return</span> <span class="n">items</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a> <span class="k">return</span> <span class="p">[]</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a><span class="k">def</span> <span class="nf">list_shared</span><span class="p">(</span><span class="nb">filter</span><span class="p">:</span><span class="n">Callable</span><span class="o">=</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">list_path</span><span class="p">(</span><span class="n">SHARE_PATH</span><span class="p">):</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a> <span class="n">r</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">SHARE_PATH</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a>
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="k">if</span> <span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;.&#39;</span> <span class="ow">or</span> <span class="s1">&#39;/.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="c1"># hidden files</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="k">continue</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">r</span> <span class="ow">and</span> <span class="s1">&#39;.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a> <span class="k">elif</span> <span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:],</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="k">elif</span> <span class="s1">&#39;.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a>
</span><span id="L-48"><a href="#L-48"><span class="linenos">48</span></a> <span class="k">if</span> <span class="nb">filter</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span><span class="p">):</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a> <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a> <span class="k">return</span> <span class="n">files</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a>
</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a><span class="k">def</span> <span class="nf">list_shared_data</span><span class="p">():</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a> <span class="k">return</span> <span class="n">list_shared</span><span class="p">(</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="n">e</span> <span class="o">!=</span> <span class="s2">&quot;json&quot;</span><span class="p">)</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a>
</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a><span class="k">def</span> <span class="nf">list_shared_schema</span><span class="p">():</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a> <span class="k">return</span> <span class="n">list_shared</span><span class="p">(</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="n">e</span> <span class="o">==</span> <span class="s2">&quot;json&quot;</span><span class="p">)</span>
</span></pre></div>
@ -126,18 +136,18 @@
</div>
<a class="headerlink" href="#list_path"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="list_path-8"><a href="#list_path-8"><span class="linenos"> 8</span></a><span class="k">def</span> <span class="nf">list_path</span><span class="p">(</span><span class="n">path</span><span class="p">:</span><span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="list_path-9"><a href="#list_path-9"><span class="linenos"> 9</span></a> <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">path</span><span class="p">):</span>
</span><span id="list_path-10"><a href="#list_path-10"><span class="linenos">10</span></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="list_path-11"><a href="#list_path-11"><span class="linenos">11</span></a> <span class="k">for</span> <span class="n">item</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">path</span><span class="p">):</span>
</span><span id="list_path-12"><a href="#list_path-12"><span class="linenos">12</span></a> <span class="n">full</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">path</span><span class="p">,</span> <span class="n">item</span><span class="p">)</span>
</span><span id="list_path-13"><a href="#list_path-13"><span class="linenos">13</span></a> <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">full</span><span class="p">):</span>
</span><span id="list_path-14"><a href="#list_path-14"><span class="linenos">14</span></a> <span class="n">items</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">list_path</span><span class="p">(</span><span class="n">full</span><span class="p">))</span>
</span><span id="list_path-15"><a href="#list_path-15"><span class="linenos">15</span></a> <span class="k">elif</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">full</span><span class="p">):</span>
</span><span id="list_path-16"><a href="#list_path-16"><span class="linenos">16</span></a> <span class="n">items</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">full</span><span class="p">)</span>
</span><span id="list_path-17"><a href="#list_path-17"><span class="linenos">17</span></a> <span class="k">return</span> <span class="n">items</span>
</span><span id="list_path-18"><a href="#list_path-18"><span class="linenos">18</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="list_path-19"><a href="#list_path-19"><span class="linenos">19</span></a> <span class="k">return</span> <span class="p">[]</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="list_path-18"><a href="#list_path-18"><span class="linenos">18</span></a><span class="k">def</span> <span class="nf">list_path</span><span class="p">(</span><span class="n">path</span><span class="p">:</span><span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="list_path-19"><a href="#list_path-19"><span class="linenos">19</span></a> <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">path</span><span class="p">):</span>
</span><span id="list_path-20"><a href="#list_path-20"><span class="linenos">20</span></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="list_path-21"><a href="#list_path-21"><span class="linenos">21</span></a> <span class="k">for</span> <span class="n">item</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">path</span><span class="p">):</span>
</span><span id="list_path-22"><a href="#list_path-22"><span class="linenos">22</span></a> <span class="n">full</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">path</span><span class="p">,</span> <span class="n">item</span><span class="p">)</span>
</span><span id="list_path-23"><a href="#list_path-23"><span class="linenos">23</span></a> <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">full</span><span class="p">):</span>
</span><span id="list_path-24"><a href="#list_path-24"><span class="linenos">24</span></a> <span class="n">items</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">list_path</span><span class="p">(</span><span class="n">full</span><span class="p">))</span>
</span><span id="list_path-25"><a href="#list_path-25"><span class="linenos">25</span></a> <span class="k">elif</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">full</span><span class="p">):</span>
</span><span id="list_path-26"><a href="#list_path-26"><span class="linenos">26</span></a> <span class="n">items</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">full</span><span class="p">)</span>
</span><span id="list_path-27"><a href="#list_path-27"><span class="linenos">27</span></a> <span class="k">return</span> <span class="n">items</span>
</span><span id="list_path-28"><a href="#list_path-28"><span class="linenos">28</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="list_path-29"><a href="#list_path-29"><span class="linenos">29</span></a> <span class="k">return</span> <span class="p">[]</span>
</span></pre></div>
@ -155,27 +165,27 @@
</div>
<a class="headerlink" href="#list_shared"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="list_shared-21"><a href="#list_shared-21"><span class="linenos">21</span></a><span class="k">def</span> <span class="nf">list_shared</span><span class="p">(</span><span class="nb">filter</span><span class="p">:</span><span class="n">Callable</span><span class="o">=</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="list_shared-22"><a href="#list_shared-22"><span class="linenos">22</span></a> <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="list_shared-23"><a href="#list_shared-23"><span class="linenos">23</span></a> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">list_path</span><span class="p">(</span><span class="n">SHARE_PATH</span><span class="p">):</span>
</span><span id="list_shared-24"><a href="#list_shared-24"><span class="linenos">24</span></a> <span class="n">r</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">SHARE_PATH</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="list_shared-25"><a href="#list_shared-25"><span class="linenos">25</span></a>
</span><span id="list_shared-26"><a href="#list_shared-26"><span class="linenos">26</span></a> <span class="k">if</span> <span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;.&#39;</span> <span class="ow">or</span> <span class="s1">&#39;/.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="list_shared-27"><a href="#list_shared-27"><span class="linenos">27</span></a> <span class="c1"># hidden files</span>
</span><span id="list_shared-28"><a href="#list_shared-28"><span class="linenos">28</span></a> <span class="k">continue</span>
</span><span id="list_shared-29"><a href="#list_shared-29"><span class="linenos">29</span></a>
</span><span id="list_shared-30"><a href="#list_shared-30"><span class="linenos">30</span></a> <span class="k">if</span> <span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">r</span> <span class="ow">and</span> <span class="s1">&#39;.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="list_shared-31"><a href="#list_shared-31"><span class="linenos">31</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="list_shared-32"><a href="#list_shared-32"><span class="linenos">32</span></a> <span class="k">elif</span> <span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="list_shared-33"><a href="#list_shared-33"><span class="linenos">33</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:],</span> <span class="s2">&quot;&quot;</span>
</span><span id="list_shared-34"><a href="#list_shared-34"><span class="linenos">34</span></a> <span class="k">elif</span> <span class="s1">&#39;.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="list_shared-35"><a href="#list_shared-35"><span class="linenos">35</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="list_shared-36"><a href="#list_shared-36"><span class="linenos">36</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="list_shared-37"><a href="#list_shared-37"><span class="linenos">37</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="s2">&quot;&quot;</span>
</span><span id="list_shared-38"><a href="#list_shared-38"><span class="linenos">38</span></a>
</span><span id="list_shared-39"><a href="#list_shared-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="nb">filter</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span><span class="p">):</span>
</span><span id="list_shared-40"><a href="#list_shared-40"><span class="linenos">40</span></a> <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
</span><span id="list_shared-41"><a href="#list_shared-41"><span class="linenos">41</span></a> <span class="k">return</span> <span class="n">files</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="list_shared-31"><a href="#list_shared-31"><span class="linenos">31</span></a><span class="k">def</span> <span class="nf">list_shared</span><span class="p">(</span><span class="nb">filter</span><span class="p">:</span><span class="n">Callable</span><span class="o">=</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="list_shared-32"><a href="#list_shared-32"><span class="linenos">32</span></a> <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="list_shared-33"><a href="#list_shared-33"><span class="linenos">33</span></a> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">list_path</span><span class="p">(</span><span class="n">SHARE_PATH</span><span class="p">):</span>
</span><span id="list_shared-34"><a href="#list_shared-34"><span class="linenos">34</span></a> <span class="n">r</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">SHARE_PATH</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="list_shared-35"><a href="#list_shared-35"><span class="linenos">35</span></a>
</span><span id="list_shared-36"><a href="#list_shared-36"><span class="linenos">36</span></a> <span class="k">if</span> <span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;.&#39;</span> <span class="ow">or</span> <span class="s1">&#39;/.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="list_shared-37"><a href="#list_shared-37"><span class="linenos">37</span></a> <span class="c1"># hidden files</span>
</span><span id="list_shared-38"><a href="#list_shared-38"><span class="linenos">38</span></a> <span class="k">continue</span>
</span><span id="list_shared-39"><a href="#list_shared-39"><span class="linenos">39</span></a>
</span><span id="list_shared-40"><a href="#list_shared-40"><span class="linenos">40</span></a> <span class="k">if</span> <span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">r</span> <span class="ow">and</span> <span class="s1">&#39;.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="list_shared-41"><a href="#list_shared-41"><span class="linenos">41</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="list_shared-42"><a href="#list_shared-42"><span class="linenos">42</span></a> <span class="k">elif</span> <span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="list_shared-43"><a href="#list_shared-43"><span class="linenos">43</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:],</span> <span class="s2">&quot;&quot;</span>
</span><span id="list_shared-44"><a href="#list_shared-44"><span class="linenos">44</span></a> <span class="k">elif</span> <span class="s1">&#39;.&#39;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
</span><span id="list_shared-45"><a href="#list_shared-45"><span class="linenos">45</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">[:</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)],</span> <span class="n">r</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">rfind</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
</span><span id="list_shared-46"><a href="#list_shared-46"><span class="linenos">46</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="list_shared-47"><a href="#list_shared-47"><span class="linenos">47</span></a> <span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="s2">&quot;&quot;</span>
</span><span id="list_shared-48"><a href="#list_shared-48"><span class="linenos">48</span></a>
</span><span id="list_shared-49"><a href="#list_shared-49"><span class="linenos">49</span></a> <span class="k">if</span> <span class="nb">filter</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ending</span><span class="p">):</span>
</span><span id="list_shared-50"><a href="#list_shared-50"><span class="linenos">50</span></a> <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
</span><span id="list_shared-51"><a href="#list_shared-51"><span class="linenos">51</span></a> <span class="k">return</span> <span class="n">files</span>
</span></pre></div>
@ -193,8 +203,8 @@
</div>
<a class="headerlink" href="#list_shared_data"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="list_shared_data-43"><a href="#list_shared_data-43"><span class="linenos">43</span></a><span class="k">def</span> <span class="nf">list_shared_data</span><span class="p">():</span>
</span><span id="list_shared_data-44"><a href="#list_shared_data-44"><span class="linenos">44</span></a> <span class="k">return</span> <span class="n">list_shared</span><span class="p">(</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="n">e</span> <span class="o">!=</span> <span class="s2">&quot;json&quot;</span><span class="p">)</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="list_shared_data-53"><a href="#list_shared_data-53"><span class="linenos">53</span></a><span class="k">def</span> <span class="nf">list_shared_data</span><span class="p">():</span>
</span><span id="list_shared_data-54"><a href="#list_shared_data-54"><span class="linenos">54</span></a> <span class="k">return</span> <span class="n">list_shared</span><span class="p">(</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="n">e</span> <span class="o">!=</span> <span class="s2">&quot;json&quot;</span><span class="p">)</span>
</span></pre></div>
@ -212,8 +222,8 @@
</div>
<a class="headerlink" href="#list_shared_schema"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="list_shared_schema-46"><a href="#list_shared_schema-46"><span class="linenos">46</span></a><span class="k">def</span> <span class="nf">list_shared_schema</span><span class="p">():</span>
</span><span id="list_shared_schema-47"><a href="#list_shared_schema-47"><span class="linenos">47</span></a> <span class="k">return</span> <span class="n">list_shared</span><span class="p">(</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="n">e</span> <span class="o">==</span> <span class="s2">&quot;json&quot;</span><span class="p">)</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="list_shared_schema-56"><a href="#list_shared_schema-56"><span class="linenos">56</span></a><span class="k">def</span> <span class="nf">list_shared_schema</span><span class="p">():</span>
</span><span id="list_shared_schema-57"><a href="#list_shared_schema-57"><span class="linenos">57</span></a> <span class="k">return</span> <span class="n">list_shared</span><span class="p">(</span><span class="k">lambda</span> <span class="n">p</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">e</span><span class="p">:</span> <span class="n">e</span> <span class="o">==</span> <span class="s2">&quot;json&quot;</span><span class="p">)</span>
</span></pre></div>

View File

@ -885,7 +885,7 @@ about a riddle.</p>
</div>
<div id="RiddleData.file_plain" class="classattr">
<div class="attr variable">
<span class="name">file_plain</span><span class="annotation">: Annotated[str, AfterValidator(func=&lt;function _check_data_file at 0x101e08fe0&gt;), WrapValidator(func=&lt;function _ignore_file_missing at 0x10210be20&gt;, json_schema_input_type=PydanticUndefined)]</span>
<span class="name">file_plain</span><span class="annotation">: Annotated[str, AfterValidator(func=&lt;function _check_data_file at 0x105aed3a0&gt;), WrapValidator(func=&lt;function _ignore_file_missing at 0x105e105e0&gt;, json_schema_input_type=PydanticUndefined)]</span>
</div>
@ -901,7 +901,7 @@ The file must exist.</p>
</div>
<div id="RiddleData.file_extracted" class="classattr">
<div class="attr variable">
<span class="name">file_extracted</span><span class="annotation">: Optional[Annotated[str, AfterValidator(func=&lt;function _check_data_file at 0x101e08fe0&gt;), WrapValidator(func=&lt;function _ignore_file_missing at 0x10210be20&gt;, json_schema_input_type=PydanticUndefined)]]</span>
<span class="name">file_extracted</span><span class="annotation">: Optional[Annotated[str, AfterValidator(func=&lt;function _check_data_file at 0x105aed3a0&gt;), WrapValidator(func=&lt;function _ignore_file_missing at 0x105e105e0&gt;, json_schema_input_type=PydanticUndefined)]]</span>
</div>

View File

@ -33,13 +33,7 @@
<textarea class="form-control message-attribute" name="riddle.context" id="message_context" rows="2"></textarea>
</div>
<div class="mb-3">
<label for="message_context" class="form-label">Riddle Context</label>
<textarea class="form-control message-attribute" name="riddle.context" id="message_context" rows="2"></textarea>
</div>
<h3>Steps</h3>
<div class="mb-3">
<div class="form-check form-check-inline">
<input class="form-check-input message-attribute" name="status.extract.required" type="checkbox" id="message_extract" value="true" checked>