mirror of
https://github.com/evennia/evennia.git
synced 2026-04-05 07:27:17 +02:00
Updated HTML docs
This commit is contained in:
parent
d79d2e888e
commit
5376217df9
57 changed files with 584 additions and 406 deletions
|
|
@ -1621,10 +1621,10 @@
|
|||
<span class="sd"> set attribute on an object or account</span>
|
||||
|
||||
<span class="sd"> Usage:</span>
|
||||
<span class="sd"> set <obj>/<attr> = <value></span>
|
||||
<span class="sd"> set <obj>/<attr> =</span>
|
||||
<span class="sd"> set <obj>/<attr></span>
|
||||
<span class="sd"> set *<account>/<attr> = <value></span>
|
||||
<span class="sd"> set[/switch] <obj>/<attr>[:category] = <value></span>
|
||||
<span class="sd"> set[/switch] <obj>/<attr>[:category] = # delete attribute</span>
|
||||
<span class="sd"> set[/switch] <obj>/<attr>[:category] # view attribute</span>
|
||||
<span class="sd"> set[/switch] *<account>/<attr>[:category] = <value></span>
|
||||
|
||||
<span class="sd"> Switch:</span>
|
||||
<span class="sd"> edit: Open the line editor (string values only)</span>
|
||||
|
|
@ -1675,7 +1675,7 @@
|
|||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="kc">True</span></div>
|
||||
|
||||
<div class="viewcode-block" id="CmdSetAttribute.check_attr"><a class="viewcode-back" href="../../../../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdSetAttribute.check_attr">[docs]</a> <span class="k">def</span> <span class="nf">check_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">attr_name</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="CmdSetAttribute.check_attr"><a class="viewcode-back" href="../../../../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdSetAttribute.check_attr">[docs]</a> <span class="k">def</span> <span class="nf">check_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">attr_name</span><span class="p">,</span> <span class="n">category</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> This may be overridden by subclasses in case restrictions need to be</span>
|
||||
<span class="sd"> placed on what attributes can be set by who beyond the normal lock.</span>
|
||||
|
|
@ -1732,7 +1732,7 @@
|
|||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">not_found</span>
|
||||
<span class="k">return</span> <span class="n">result</span></div>
|
||||
|
||||
<div class="viewcode-block" id="CmdSetAttribute.view_attr"><a class="viewcode-back" href="../../../../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdSetAttribute.view_attr">[docs]</a> <span class="k">def</span> <span class="nf">view_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="CmdSetAttribute.view_attr"><a class="viewcode-back" href="../../../../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdSetAttribute.view_attr">[docs]</a> <span class="k">def</span> <span class="nf">view_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">category</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Look up the value of an attribute and return a string displaying it.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
|
@ -1743,45 +1743,49 @@
|
|||
<span class="n">val</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
|
||||
<span class="n">val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">do_nested_lookup</span><span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="o">*</span><span class="n">nested_keys</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">val</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">not_found</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Attribute </span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
||||
<span class="n">error</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="si">%s</span><span class="s2"> has no attribute '</span><span class="si">%s</span><span class="s2">'."</span> <span class="o">%</span> <span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">attr</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Attribute </span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">/|w</span><span class="si">{</span><span class="n">attr</span><span class="si">}</span><span class="s2">|n [category:</span><span class="si">{</span><span class="n">category</span><span class="si">}</span><span class="s2">] = </span><span class="si">{</span><span class="n">val</span><span class="si">}</span><span class="s2">"</span>
|
||||
<span class="n">error</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Attribute </span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">/|w</span><span class="si">{</span><span class="n">attr</span><span class="si">}</span><span class="s2"> [category:</span><span class="si">{</span><span class="n">category</span><span class="si">}</span><span class="s2">] does not exist."</span>
|
||||
<span class="k">if</span> <span class="n">nested</span><span class="p">:</span>
|
||||
<span class="n">error</span> <span class="o">+=</span> <span class="s2">" (Nested lookups attempted)"</span>
|
||||
<span class="k">return</span> <span class="n">error</span></div>
|
||||
|
||||
<div class="viewcode-block" id="CmdSetAttribute.rm_attr"><a class="viewcode-back" href="../../../../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdSetAttribute.rm_attr">[docs]</a> <span class="k">def</span> <span class="nf">rm_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="CmdSetAttribute.rm_attr"><a class="viewcode-back" href="../../../../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdSetAttribute.rm_attr">[docs]</a> <span class="k">def</span> <span class="nf">rm_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">category</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Remove an attribute from the object, or a nested data structure, and report back.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">nested</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">nested_keys</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">split_nested_attr</span><span class="p">(</span><span class="n">attr</span><span class="p">):</span>
|
||||
<span class="n">nested</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
<span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">has</span><span class="p">(</span><span class="n">key</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">has</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">category</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">nested_keys</span><span class="p">:</span>
|
||||
<span class="n">del_key</span> <span class="o">=</span> <span class="n">nested_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
|
||||
<span class="n">val</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
|
||||
<span class="n">val</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="n">category</span><span class="p">)</span>
|
||||
<span class="n">deep</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">do_nested_lookup</span><span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="o">*</span><span class="n">nested_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
|
||||
<span class="k">if</span> <span class="n">deep</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">not_found</span><span class="p">:</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">del</span> <span class="n">deep</span><span class="p">[</span><span class="n">del_key</span><span class="p">]</span>
|
||||
<span class="k">except</span> <span class="p">(</span><span class="ne">IndexError</span><span class="p">,</span> <span class="ne">KeyError</span><span class="p">,</span> <span class="ne">TypeError</span><span class="p">):</span>
|
||||
<span class="k">continue</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Deleted attribute '</span><span class="si">%s</span><span class="s2">' (= nested) from </span><span class="si">%s</span><span class="s2">."</span> <span class="o">%</span> <span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Deleted attribute </span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">/|w</span><span class="si">{</span><span class="n">attr</span><span class="si">}</span><span class="s2">|n [category:</span><span class="si">{</span><span class="n">category</span><span class="si">}</span><span class="s2">]."</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">exists</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">has</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
|
||||
<span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">attr</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Deleted attribute '</span><span class="si">%s</span><span class="s2">' (= </span><span class="si">%s</span><span class="s2">) from </span><span class="si">%s</span><span class="s2">."</span> <span class="o">%</span> <span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">exists</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="n">error</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="si">%s</span><span class="s2"> has no attribute '</span><span class="si">%s</span><span class="s2">'."</span> <span class="o">%</span> <span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">attr</span><span class="p">)</span>
|
||||
<span class="n">exists</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">has</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">category</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">exists</span><span class="p">:</span>
|
||||
<span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="n">category</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Deleted attribute </span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">/|w</span><span class="si">{</span><span class="n">attr</span><span class="si">}</span><span class="s2">|n [category:</span><span class="si">{</span><span class="n">category</span><span class="si">}</span><span class="s2">]."</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="s2">No attribute </span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">/|w</span><span class="si">{</span><span class="n">attr</span><span class="si">}</span><span class="s2">|n [category: </span><span class="si">{</span><span class="n">category</span><span class="si">}</span><span class="s2">] "</span>
|
||||
<span class="s2">"was found to delete."</span><span class="p">)</span>
|
||||
<span class="n">error</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="s2">No attribute </span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">/|w</span><span class="si">{</span><span class="n">attr</span><span class="si">}</span><span class="s2">|n [category: </span><span class="si">{</span><span class="n">category</span><span class="si">}</span><span class="s2">] was found to delete."</span>
|
||||
<span class="k">if</span> <span class="n">nested</span><span class="p">:</span>
|
||||
<span class="n">error</span> <span class="o">+=</span> <span class="s2">" (Nested lookups attempted)"</span>
|
||||
<span class="k">return</span> <span class="n">error</span></div>
|
||||
|
||||
<div class="viewcode-block" id="CmdSetAttribute.set_attr"><a class="viewcode-back" href="../../../../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdSetAttribute.set_attr">[docs]</a> <span class="k">def</span> <span class="nf">set_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="CmdSetAttribute.set_attr"><a class="viewcode-back" href="../../../../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdSetAttribute.set_attr">[docs]</a> <span class="k">def</span> <span class="nf">set_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">category</span><span class="p">):</span>
|
||||
<span class="n">done</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">nested_keys</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">split_nested_attr</span><span class="p">(</span><span class="n">attr</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">has</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="ow">and</span> <span class="n">nested_keys</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">has</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">category</span><span class="p">)</span> <span class="ow">and</span> <span class="n">nested_keys</span><span class="p">:</span>
|
||||
<span class="n">acc_key</span> <span class="o">=</span> <span class="n">nested_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
|
||||
<span class="n">lookup_value</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
|
||||
<span class="n">lookup_value</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">category</span><span class="p">)</span>
|
||||
<span class="n">deep</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">do_nested_lookup</span><span class="p">(</span><span class="n">lookup_value</span><span class="p">,</span> <span class="o">*</span><span class="n">nested_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
|
||||
<span class="k">if</span> <span class="n">deep</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">not_found</span><span class="p">:</span>
|
||||
<span class="c1"># To support appending and inserting to lists</span>
|
||||
|
|
@ -1808,7 +1812,7 @@
|
|||
<span class="n">deep</span><span class="p">[</span><span class="n">acc_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
|
||||
<span class="k">except</span> <span class="ne">TypeError</span> <span class="k">as</span> <span class="n">err</span><span class="p">:</span>
|
||||
<span class="c1"># Tuples can't be modified</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">err</span><span class="p">,</span> <span class="n">deep</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="si">{</span><span class="n">err</span><span class="si">}</span><span class="s2"> - </span><span class="si">{</span><span class="n">deep</span><span class="si">}</span><span class="s2">"</span>
|
||||
|
||||
<span class="n">value</span> <span class="o">=</span> <span class="n">lookup_value</span>
|
||||
<span class="n">attr</span> <span class="o">=</span> <span class="n">key</span>
|
||||
|
|
@ -1818,8 +1822,8 @@
|
|||
<span class="n">verb</span> <span class="o">=</span> <span class="s2">"Modified"</span> <span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">has</span><span class="p">(</span><span class="n">attr</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"Created"</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">done</span><span class="p">:</span>
|
||||
<span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="si">%s</span><span class="s2"> attribute </span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">verb</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="nb">repr</span><span class="p">(</span><span class="n">value</span><span class="p">))</span>
|
||||
<span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">category</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="si">{</span><span class="n">verb</span><span class="si">}</span><span class="s2"> attribute </span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">/|w</span><span class="si">{</span><span class="n">attr</span><span class="si">}</span><span class="s2">|n [category:</span><span class="si">{</span><span class="n">category</span><span class="si">}</span><span class="s2">] = </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">"</span>
|
||||
<span class="k">except</span> <span class="ne">SyntaxError</span><span class="p">:</span>
|
||||
<span class="c1"># this means literal_eval tried to parse a faulty string</span>
|
||||
<span class="k">return</span> <span class="p">(</span>
|
||||
|
|
@ -1905,13 +1909,14 @@
|
|||
|
||||
<span class="n">caller</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Usage: set obj/attr = value. Use empty value to clear."</span><span class="p">)</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Usage: set obj/attr[:category] = value. Use empty value to clear."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="c1"># get values prepared by the parser</span>
|
||||
<span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rhs</span>
|
||||
<span class="n">objname</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhs_objattr</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"name"</span><span class="p">]</span>
|
||||
<span class="n">attrs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhs_objattr</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"attrs"</span><span class="p">]</span>
|
||||
<span class="n">category</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhs_objs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"option"</span><span class="p">)</span> <span class="c1"># None if unset</span>
|
||||
|
||||
<span class="n">obj</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">search_for_obj</span><span class="p">(</span><span class="n">objname</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">obj</span><span class="p">:</span>
|
||||
|
|
@ -1941,11 +1946,11 @@
|
|||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">rhs</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="c1"># no = means we inspect the attribute(s)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">attrs</span><span class="p">:</span>
|
||||
<span class="n">attrs</span> <span class="o">=</span> <span class="p">[</span><span class="n">attr</span><span class="o">.</span><span class="n">key</span> <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">all</span><span class="p">()]</span>
|
||||
<span class="n">attrs</span> <span class="o">=</span> <span class="p">[</span><span class="n">attr</span><span class="o">.</span><span class="n">key</span> <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">category</span><span class="o">=</span><span class="kc">None</span><span class="p">)]</span>
|
||||
<span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">category</span><span class="p">):</span>
|
||||
<span class="k">continue</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">view_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">))</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">view_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">category</span><span class="p">))</span>
|
||||
<span class="c1"># we view it without parsing markup.</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="n">options</span><span class="o">=</span><span class="p">{</span><span class="s2">"raw"</span><span class="p">:</span> <span class="kc">True</span><span class="p">})</span>
|
||||
<span class="k">return</span>
|
||||
|
|
@ -1955,19 +1960,19 @@
|
|||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"You don't have permission to edit </span><span class="si">%s</span><span class="s2">."</span> <span class="o">%</span> <span class="n">obj</span><span class="o">.</span><span class="n">key</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
<span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">category</span><span class="p">):</span>
|
||||
<span class="k">continue</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rm_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">))</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rm_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">category</span><span class="p">))</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c1"># setting attribute(s). Make sure to convert to real Python type before saving.</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="p">,</span> <span class="s2">"control"</span><span class="p">)</span> <span class="ow">or</span> <span class="n">obj</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="p">,</span> <span class="s2">"edit"</span><span class="p">)):</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"You don't have permission to edit </span><span class="si">%s</span><span class="s2">."</span> <span class="o">%</span> <span class="n">obj</span><span class="o">.</span><span class="n">key</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
<span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">category</span><span class="p">):</span>
|
||||
<span class="k">continue</span>
|
||||
<span class="n">value</span> <span class="o">=</span> <span class="n">_convert_from_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">set_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">set_attr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">category</span><span class="p">))</span>
|
||||
<span class="c1"># send feedback</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">))</span></div></div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1009,15 +1009,17 @@
|
|||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s1">'Obj/test1="value1"'</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/test1 = 'value1'"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/test1 [category:None] = value1"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s1">'Obj2/test2="value2"'</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj2/test2 = 'value2'"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj2/test2 [category:None] = value2"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj2/test2"</span><span class="p">,</span> <span class="s2">"Attribute Obj2/test2 = value2"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj2/NotFound"</span><span class="p">,</span> <span class="s2">"Obj2 has no attribute 'notfound'."</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj2/test2"</span><span class="p">,</span> <span class="s2">"Attribute Obj2/test2 [category:None] = value2"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj2/NotFound"</span><span class="p">,</span> <span class="s2">"Attribute Obj2/notfound [category:None] does not exist."</span><span class="p">)</span>
|
||||
|
||||
<span class="k">with</span> <span class="n">patch</span><span class="p">(</span><span class="s2">"evennia.commands.default.building.EvEditor"</span><span class="p">)</span> <span class="k">as</span> <span class="n">mock_ed</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"/edit Obj2/test3"</span><span class="p">)</span>
|
||||
|
|
@ -1026,14 +1028,18 @@
|
|||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s1">'Obj2/test3="value3"'</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj2/test3 = 'value3'"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj2/test3 [category:None] = value3"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj2/test3 = "</span><span class="p">,</span>
|
||||
<span class="s2">"Deleted attribute 'test3' (= True) from Obj2."</span><span class="p">,</span>
|
||||
<span class="s2">"Deleted attribute Obj2/test3 [category:None]."</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj2/test4:Foo = 'Bar'"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj2/test4 [category:Foo] = Bar"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdCpAttr</span><span class="p">(),</span>
|
||||
<span class="s2">"/copy Obj2/test2 = Obj2/test3"</span><span class="p">,</span>
|
||||
|
|
@ -1052,123 +1058,162 @@
|
|||
<div class="viewcode-block" id="TestBuilding.test_nested_attribute_commands"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_nested_attribute_commands">[docs]</a> <span class="k">def</span> <span class="nf">test_nested_attribute_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="c1"># list - adding white space proves real parsing</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1=[1,2]"</span><span class="p">,</span> <span class="s2">"Created attribute Obj/test1 = [1, 2]"</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1=[1,2]"</span><span class="p">,</span> <span class="s2">"Created attribute Obj/test1 [category:None] = [1, 2]"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test1 = [1, 2]"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test1[0] = 1"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1[1]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test1[1] = 2"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test1 [category:None] = [1, 2]"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1[0]"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test1[0] [category:None] = 1"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1[1]"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test1[1] [category:None] = 2"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1[0] = 99"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test1 = [99, 2]"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test1 [category:None] = [99, 2]"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1[0]"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test1[0] [category:None] = 99"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test1[0] = 99"</span><span class="p">)</span>
|
||||
<span class="c1"># list delete</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1[0] ="</span><span class="p">,</span>
|
||||
<span class="s2">"Deleted attribute 'test1[0]' (= nested) from Obj."</span><span class="p">,</span>
|
||||
<span class="s2">"Deleted attribute Obj/test1[0] [category:None]."</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1[0]"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test1[0] [category:None] = 2"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test1[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test1[0] = 2"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1[1]"</span><span class="p">,</span>
|
||||
<span class="s2">"Obj has no attribute 'test1[1]'. (Nested lookups attempted)"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test1[1] [category:None] does not exist. (Nested lookups attempted)"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="c1"># Delete non-existent</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1[5] ="</span><span class="p">,</span>
|
||||
<span class="s2">"Obj has no attribute 'test1[5]'. (Nested lookups attempted)"</span><span class="p">,</span>
|
||||
<span class="s2">"No attribute Obj/test1[5] [category: None] was found to "</span>
|
||||
<span class="s2">"delete. (Nested lookups attempted)"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="c1"># Append</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1[+] = 42"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test1 = [2, 42]"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test1 [category:None] = [2, 42]"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test1[+0] = -1"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test1 = [-1, 2, 42]"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test1 [category:None] = [-1, 2, 42]"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="c1"># dict - removing white space proves real parsing</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2={ 'one': 1, 'two': 2 }"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/test2 = {'one': 1, 'two': 2}"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/test2 [category:None] = {'one': 1, 'two': 2}"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2 = {'one': 1, 'two': 2}"</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2 [category:None] = {'one': 1, 'two': 2}"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2['one']"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test2['one'] [category:None] = 1"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2['one]"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test2['one] [category:None] = 1"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2['one']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2['one'] = 1"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2['one]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2['one] = 1"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2['one']=99"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test2 = {'one': 99, 'two': 2}"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test2 [category:None] = {'one': 99, 'two': 2}"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2['one']"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test2['one'] [category:None] = 99"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2['two']"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test2['two'] [category:None] = 2"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2['one']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2['one'] = 99"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2['two']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2['two'] = 2"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2[+'three']"</span><span class="p">,</span>
|
||||
<span class="s2">"Obj has no attribute 'test2[+'three']'. (Nested lookups attempted)"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test2[+'three'] [category:None] does not exist. (Nested lookups attempted)"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2[+'three'] = 3"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test2 = {'one': 99, 'two': 2, </span><span class="se">\"</span><span class="s2">+'three'</span><span class="se">\"</span><span class="s2">: 3}"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test2 [category:None] = {'one': 99, 'two': 2, </span><span class="se">\"</span><span class="s2">+'three'</span><span class="se">\"</span><span class="s2">: 3}"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2[+'three'] ="</span><span class="p">,</span>
|
||||
<span class="s2">"Deleted attribute 'test2[+'three']' (= nested) from Obj."</span><span class="p">,</span>
|
||||
<span class="s2">"Deleted attribute Obj/test2[+'three'] [category:None]."</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2['three']=3"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test2 = {'one': 99, 'two': 2, 'three': 3}"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test2 [category:None] = {'one': 99, 'two': 2, 'three': 3}"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="c1"># Dict delete</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2['two'] ="</span><span class="p">,</span>
|
||||
<span class="s2">"Deleted attribute 'test2['two']' (= nested) from Obj."</span><span class="p">,</span>
|
||||
<span class="s2">"Deleted attribute Obj/test2['two'] [category:None]."</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2['two']"</span><span class="p">,</span>
|
||||
<span class="s2">"Obj has no attribute 'test2['two']'. (Nested lookups attempted)"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test2['two'] [category:None] does not exist. (Nested lookups attempted)"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test2"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test2 = {'one': 99, 'three': 3}"</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test2 [category:None] = {'one': 99, 'three': 3}"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2[0]"</span><span class="p">,</span>
|
||||
<span class="s2">"Obj has no attribute 'test2[0]'. (Nested lookups attempted)"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test2[0] [category:None] does not exist. (Nested lookups attempted)"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2['five'] ="</span><span class="p">,</span>
|
||||
<span class="s2">"Obj has no attribute 'test2['five']'. (Nested lookups attempted)"</span><span class="p">,</span>
|
||||
<span class="s2">"No attribute Obj/test2['five'] [category: None] "</span>
|
||||
<span class="s2">"was found to delete. (Nested lookups attempted)"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2[+]=42"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test2 = {'one': 99, 'three': 3, '+': 42}"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test2 [category:None] = {'one': 99, 'three': 3, '+': 42}"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test2[+1]=33"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test2 = {'one': 99, 'three': 3, '+': 42, '+1': 33}"</span><span class="p">,</span>
|
||||
<span class="s2">"Modified attribute Obj/test2 [category:None] = "</span>
|
||||
<span class="s2">"{'one': 99, 'three': 3, '+': 42, '+1': 33}"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="c1"># tuple</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/tup = (1,2)"</span><span class="p">,</span> <span class="s2">"Created attribute Obj/tup = (1, 2)"</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/tup = (1,2)"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/tup [category:None] = (1, 2)"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
|
|
@ -1189,54 +1234,85 @@
|
|||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="c1"># Special case for tuple, could have a better message</span>
|
||||
<span class="s2">"Obj/tup[1] = "</span><span class="p">,</span>
|
||||
<span class="s2">"Obj has no attribute 'tup[1]'. (Nested lookups attempted)"</span><span class="p">,</span>
|
||||
<span class="s2">"No attribute Obj/tup[1] [category: None] "</span>
|
||||
<span class="s2">"was found to delete. (Nested lookups attempted)"</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="c1"># Deaper nesting</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test3=[{'one': 1}]"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/test3 = [{'one': 1}]"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/test3 [category:None] = [{'one': 1}]"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test3[0]['one']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test3[0]['one'] = 1"</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test3[0]['one']"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test3[0]['one'] [category:None] = 1"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test3[0]"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test3[0] [category:None] = {'one': 1}"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test3[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test3[0] = {'one': 1}"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test3[0]['one'] ="</span><span class="p">,</span>
|
||||
<span class="s2">"Deleted attribute 'test3[0]['one']' (= nested) from Obj."</span><span class="p">,</span>
|
||||
<span class="s2">"Deleted attribute Obj/test3[0]['one'] [category:None]."</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test3[0]"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test3[0] [category:None] = </span><span class="si">{}</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test3"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test3 [category:None] = [</span><span class="si">{}</span><span class="s2">]"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test3[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test3[0] = </span><span class="si">{}</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test3"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test3 = [</span><span class="si">{}</span><span class="s2">]"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Naughty keys</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test4[0]='foo'"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/test4[0] = 'foo'"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/test4[0] [category:None] = foo"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test4[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test4[0] = foo"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test4[0]"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test4[0] [category:None] = foo"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test4=[{'one': 1}]"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/test4 = [{'one': 1}]"</span><span class="p">,</span>
|
||||
<span class="s2">"Created attribute Obj/test4 [category:None] = [{'one': 1}]"</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test4[0]['one']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test4[0]['one'] = 1"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="c1"># Prefer nested items</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test4[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test4[0] = {'one': 1}"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test4[0]['one']"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test4[0]['one'] = 1"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="c1"># Restored access</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdWipe</span><span class="p">(),</span> <span class="s2">"Obj/test4"</span><span class="p">,</span> <span class="s2">"Wiped attributes test4 on Obj."</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span> <span class="s2">"Obj/test4[0]"</span><span class="p">,</span> <span class="s2">"Attribute Obj/test4[0] = foo"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test4[0]['one']"</span><span class="p">,</span>
|
||||
<span class="s2">"Obj has no attribute 'test4[0]['one']'."</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test4[0]['one'] [category:None] = 1"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="c1"># Prefer nested items</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test4[0]"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test4[0] [category:None] = {'one': 1}"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test4[0]['one']"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test4[0]['one'] [category:None] = 1"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="c1"># Restored access</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdWipe</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test4"</span><span class="p">,</span>
|
||||
<span class="s2">"Wiped attributes test4 on Obj."</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test4[0]"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test4[0] [category:None] = foo"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">CmdSetAttribute</span><span class="p">(),</span>
|
||||
<span class="s2">"Obj/test4[0]['one']"</span><span class="p">,</span>
|
||||
<span class="s2">"Attribute Obj/test4[0]['one'] [category:None] does not exist. (Nested lookups attempted)"</span>
|
||||
<span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="TestBuilding.test_split_nested_attr"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestBuilding.test_split_nested_attr">[docs]</a> <span class="k">def</span> <span class="nf">test_split_nested_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
|
|
@ -1908,7 +1984,7 @@
|
|||
<span class="p">)</span></div></div>
|
||||
|
||||
|
||||
|
||||
<span class="kn">import</span> <span class="nn">evennia.commands.default.comms</span> <span class="k">as</span> <span class="nn">cmd_comms</span> <span class="c1"># noqa</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.create</span> <span class="kn">import</span> <span class="n">create_channel</span> <span class="c1"># noqa</span>
|
||||
|
||||
<div class="viewcode-block" id="TestCommsChannel"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel">[docs]</a><span class="k">class</span> <span class="nc">TestCommsChannel</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
|
||||
|
|
@ -1922,7 +1998,7 @@
|
|||
<span class="n">key</span><span class="o">=</span><span class="s2">"testchannel"</span><span class="p">,</span>
|
||||
<span class="n">desc</span><span class="o">=</span><span class="s2">"A test channel"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span> <span class="o">=</span> <span class="n">comms</span><span class="o">.</span><span class="n">CmdChannel</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span> <span class="o">=</span> <span class="n">cmd_comms</span><span class="o">.</span><span class="n">CmdChannel</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">cmdchannel</span><span class="o">.</span><span class="n">account_caller</span> <span class="o">=</span> <span class="kc">False</span></div>
|
||||
|
||||
<div class="viewcode-block" id="TestCommsChannel.tearDown"><a class="viewcode-back" href="../../../../api/evennia.commands.default.tests.html#evennia.commands.default.tests.TestCommsChannel.tearDown">[docs]</a> <span class="k">def</span> <span class="nf">tearDown</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
|
|
|
|||
|
|
@ -1292,8 +1292,8 @@
|
|||
<div class="viewcode-block" id="AttributeHandler.remove"><a class="viewcode-back" href="../../../api/evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.AttributeHandler.remove">[docs]</a> <span class="k">def</span> <span class="nf">remove</span><span class="p">(</span>
|
||||
<span class="bp">self</span><span class="p">,</span>
|
||||
<span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">raise_exception</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||||
<span class="n">category</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">raise_exception</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||||
<span class="n">accessing_obj</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">default_access</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||||
<span class="p">):</span>
|
||||
|
|
@ -1304,11 +1304,11 @@
|
|||
<span class="sd"> key (str or list, optional): An Attribute key to remove or a list of keys. If</span>
|
||||
<span class="sd"> multiple keys, they must all be of the same `category`. If None and</span>
|
||||
<span class="sd"> category is not given, remove all Attributes.</span>
|
||||
<span class="sd"> category (str, optional): The category within which to</span>
|
||||
<span class="sd"> remove the Attribute.</span>
|
||||
<span class="sd"> raise_exception (bool, optional): If set, not finding the</span>
|
||||
<span class="sd"> Attribute to delete will raise an exception instead of</span>
|
||||
<span class="sd"> just quietly failing.</span>
|
||||
<span class="sd"> category (str, optional): The category within which to</span>
|
||||
<span class="sd"> remove the Attribute.</span>
|
||||
<span class="sd"> accessing_obj (object, optional): An object to check</span>
|
||||
<span class="sd"> against the `attredit` lock. If not given, the check will</span>
|
||||
<span class="sd"> be skipped.</span>
|
||||
|
|
|
|||
|
|
@ -439,12 +439,13 @@
|
|||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">iterable</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="s2">""</span>
|
||||
<span class="n">iterable</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">make_iter</span><span class="p">(</span><span class="n">iterable</span><span class="p">))</span>
|
||||
<span class="n">len_iter</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">iterable</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">addquote</span><span class="p">:</span>
|
||||
<span class="n">iterable</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="sa">f</span><span class="s1">'"</span><span class="si">{</span><span class="n">val</span><span class="si">}</span><span class="s1">"'</span> <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">make_iter</span><span class="p">(</span><span class="n">iterable</span><span class="p">))</span>
|
||||
<span class="n">iterable</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="sa">f</span><span class="s1">'"</span><span class="si">{</span><span class="n">val</span><span class="si">}</span><span class="s1">"'</span> <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">iterable</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">iterable</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">make_iter</span><span class="p">(</span><span class="n">iterable</span><span class="p">))</span>
|
||||
<span class="n">iterable</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">iterable</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">endsep</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">","</span><span class="p">):</span>
|
||||
<span class="c1"># oxford comma alternative</span>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue