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

This commit is contained in:
2024-10-29 23:58:46 +01:00
parent 533b9fed6d
commit 63784119d2
14 changed files with 3866 additions and 295 deletions

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>