Deployed 8957befd to dev with MkDocs 1.6.1 and mike 2.1.3

This commit is contained in:
github-actions 2025-09-30 19:50:34 +00:00
parent cedf2f03df
commit ea0ac71ecb
71 changed files with 236 additions and 91 deletions

View file

@ -1760,7 +1760,7 @@
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_component_registered</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnComponentRegisteredContext</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=kc>None</span><span class=p>:</span>
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>&quot;Component </span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>component_cls</span><span class=si>}</span><span class=s2> registered to </span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>registry</span><span class=si>}</span><span class=s2> as &#39;</span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>name</span><span class=si>}</span><span class=s2>&#39;&quot;</span><span class=p>)</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-function"> <h3 id=django_components.ComponentExtension.on_component_rendered class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">on_component_rendered</span> <a href=#django_components.ComponentExtension.on_component_rendered class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_component_rendered</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><span title=django_components.extension.OnComponentRenderedContext>OnComponentRenderedContext</span></span><span class=p>)</span> <span class=o>-&gt;</span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-function"> <h3 id=django_components.ComponentExtension.on_component_rendered class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">on_component_rendered</span> <a href=#django_components.ComponentExtension.on_component_rendered class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_component_rendered</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnComponentRenderedContext (django_components.extension.OnComponentRenderedContext)" href=../extension_hooks/#django_components.extension.OnComponentRenderedContext>OnComponentRenderedContext</a></span><span class=p>)</span> <span class=o>-&gt;</span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L744 target=_blank>See source code</a></p> <p>Called when a <a href=./#django_components.Component><code>Component</code></a> was rendered, including all its child components.</p> <p>Use this hook to access or post-process the component's rendered output.</p> <p>This hook works similarly to <a href=./#django_components.Component.on_render_after><code>Component.on_render_after()</code></a>:</p> <ol> <li> <p>To modify the output, return a new string from this hook. The original output or error will be ignored.</p> </li> <li> <p>To cause this component to return a new error, raise that error. The original output and error will be ignored.</p> </li> <li> <p>If you neither raise nor return string, the original output or error will be used.</p> </li> </ol> <p><strong>Examples:</strong></p> <p>Change the final output of a component:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentRenderedContext</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
@ -1817,7 +1817,7 @@
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_registry_deleted</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnRegistryDeletedContext</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=kc>None</span><span class=p>:</span>
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=c1># Remove registry from the extension&#39;s cache on deletion</span>
<a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=bp>self</span><span class=o>.</span><span class=n>cache</span><span class=o>.</span><span class=n>pop</span><span class=p>(</span><span class=n>ctx</span><span class=o>.</span><span class=n>registry</span><span class=p>,</span> <span class=kc>None</span><span class=p>)</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-function"> <h3 id=django_components.ComponentExtension.on_slot_rendered class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">on_slot_rendered</span> <a href=#django_components.ComponentExtension.on_slot_rendered class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_slot_rendered</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><span title=django_components.extension.OnSlotRenderedContext>OnSlotRenderedContext</span></span><span class=p>)</span> <span class=o>-&gt;</span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-function"> <h3 id=django_components.ComponentExtension.on_slot_rendered class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">on_slot_rendered</span> <a href=#django_components.ComponentExtension.on_slot_rendered class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_slot_rendered</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnSlotRenderedContext (django_components.extension.OnSlotRenderedContext)" href=../extension_hooks/#django_components.extension.OnSlotRenderedContext>OnSlotRenderedContext</a></span><span class=p>)</span> <span class=o>-&gt;</span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L903 target=_blank>See source code</a></p> <p>Called when a <a href=../template_tags/#slot><code>{% slot %}</code></a> tag was rendered.</p> <p>Use this hook to access or post-process the slot's rendered output.</p> <p>To modify the output, return a new string from this hook.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnSlotRenderedContext</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
@ -1832,13 +1832,13 @@
<a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a> <span class=n>slot_node</span> <span class=o>=</span> <span class=n>ctx</span><span class=o>.</span><span class=n>slot_node</span>
<a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a> <span class=n>slot_owner</span> <span class=o>=</span> <span class=n>slot_node</span><span class=o>.</span><span class=n>template_component</span>
<a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>&quot;Slot owner: </span><span class=si>{</span><span class=n>slot_owner</span><span class=si>}</span><span class=s2>&quot;</span><span class=p>)</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-function"> <h3 id=django_components.ComponentExtension.on_template_compiled class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">on_template_compiled</span> <a href=#django_components.ComponentExtension.on_template_compiled class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_template_compiled</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><span title=django_components.extension.OnTemplateCompiledContext>OnTemplateCompiledContext</span></span><span class=p>)</span> <span class=o>-&gt;</span> <span class=kc>None</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-function"> <h3 id=django_components.ComponentExtension.on_template_compiled class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">on_template_compiled</span> <a href=#django_components.ComponentExtension.on_template_compiled class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_template_compiled</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnTemplateCompiledContext (django_components.extension.OnTemplateCompiledContext)" href=../extension_hooks/#django_components.extension.OnTemplateCompiledContext>OnTemplateCompiledContext</a></span><span class=p>)</span> <span class=o>-&gt;</span> <span class=kc>None</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L829 target=_blank>See source code</a></p> <p>Called when a Component's template is compiled into a <a href=https://docs.djangoproject.com/en/5.2/ref/templates/api/#django.template.Template><code>Template</code></a> object.</p> <p>This hook runs only once per <a href=./#django_components.Component><code>Component</code></a> class and works for both <a href=./#django_components.Component.template><code>Component.template</code></a> and <a href=./#django_components.Component.template_file><code>Component.template_file</code></a>.</p> <p>Use this hook to read or modify the template (in-place) after it's compiled.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnTemplateCompiledContext</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_template_compiled</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnTemplateCompiledContext</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=kc>None</span><span class=p>:</span>
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>&quot;Template origin: </span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>template</span><span class=o>.</span><span class=n>origin</span><span class=o>.</span><span class=n>name</span><span class=si>}</span><span class=s2>&quot;</span><span class=p>)</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-function"> <h3 id=django_components.ComponentExtension.on_template_loaded class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">on_template_loaded</span> <a href=#django_components.ComponentExtension.on_template_loaded class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_template_loaded</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><span title=django_components.extension.OnTemplateLoadedContext>OnTemplateLoadedContext</span></span><span class=p>)</span> <span class=o>-&gt;</span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-function"> <h3 id=django_components.ComponentExtension.on_template_loaded class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">on_template_loaded</span> <a href=#django_components.ComponentExtension.on_template_loaded class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_template_loaded</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnTemplateLoadedContext (django_components.extension.OnTemplateLoadedContext)" href=../extension_hooks/#django_components.extension.OnTemplateLoadedContext>OnTemplateLoadedContext</a></span><span class=p>)</span> <span class=o>-&gt;</span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L805 target=_blank>See source code</a></p> <p>Called when a Component's template is loaded as a string.</p> <p>This hook runs only once per <a href=./#django_components.Component><code>Component</code></a> class and works for both <a href=./#django_components.Component.template><code>Component.template</code></a> and <a href=./#django_components.Component.template_file><code>Component.template_file</code></a>.</p> <p>Use this hook to read or modify the template before it's compiled.</p> <p>To modify the template, return a new string from this hook.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnTemplateLoadedContext</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
@ -2449,7 +2449,7 @@
<a id=__codelineno-1-10 name=__codelineno-1-10 href=#__codelineno-1-10></a> <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>
<a id=__codelineno-1-11 name=__codelineno-1-11 href=#__codelineno-1-11></a> <span class=sd>&#39;&#39;&#39;</span>
</code></pre></div> </div> </div> </div> </div> </div> <div class="doc doc-object doc-class"> <h2 id=django_components.ComponentView class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">ComponentView</span> <a href=#django_components.ComponentView class=headerlink title="Permanent link">¤</a></h2> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>ComponentView</span><span class=p>(</span><span class=n>component</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" Component (django_components.component.Component)" href=#django_components.Component>Component</a></span><span class=p>,</span> <span class=o>**</span><span class=n>kwargs</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-external" title=typing.Any href=https://docs.python.org/3.12/library/typing.html#typing.Any>Any</a></span><span class=p>)</span>
</code></pre></div> <div class="doc doc-contents first"> <p class="doc doc-class-bases">Bases: <code>django_components.extension.ExtensionComponentConfig</code>, <code>django.views.generic.base.View</code></p> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L78 target=_blank>See source code</a></p> <p>The interface for <code>Component.View</code>.</p> <p>The fields of this class are used to configure the component views and URLs.</p> <p>This class is a subclass of <a href=https://docs.djangoproject.com/en/5.2/ref/class-based-views/base/#view><code>django.views.View</code></a>. The <a href=../api#django_components.Component><code>Component</code></a> class is available via <code>self.component_cls</code>.</p> <p>Override the methods of this class to define the behavior of the component.</p> <p>Read more about <a href=../../concepts/fundamentals/component_views_urls>Component views and URLs</a>.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>class</span><span class=w> </span><span class=nc>MyComponent</span><span class=p>(</span><span class=n>Component</span><span class=p>):</span>
</code></pre></div> <div class="doc doc-contents first"> <p class="doc doc-class-bases">Bases: <code>django_components.extension.ExtensionComponentConfig</code>, <code>django.views.generic.base.View</code></p> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L84 target=_blank>See source code</a></p> <p>The interface for <code>Component.View</code>.</p> <p>The fields of this class are used to configure the component views and URLs.</p> <p>This class is a subclass of <a href=https://docs.djangoproject.com/en/5.2/ref/class-based-views/base/#view><code>django.views.View</code></a>. The <a href=../api#django_components.Component><code>Component</code></a> class is available via <code>self.component_cls</code>.</p> <p>Override the methods of this class to define the behavior of the component.</p> <p>Read more about <a href=../../concepts/fundamentals/component_views_urls>Component views and URLs</a>.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>class</span><span class=w> </span><span class=nc>MyComponent</span><span class=p>(</span><span class=n>Component</span><span class=p>):</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a> <span class=k>class</span><span class=w> </span><span class=nc>View</span><span class=p>:</span>
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> <span class=k>def</span><span class=w> </span><span class=nf>get</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>request</span><span class=p>:</span> <span class=n>HttpRequest</span><span class=p>,</span> <span class=o>*</span><span class=n>args</span><span class=p>:</span> <span class=n>Any</span><span class=p>,</span> <span class=o>**</span><span class=n>kwargs</span><span class=p>:</span> <span class=n>Any</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>HttpResponse</span><span class=p>:</span>
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>return</span> <span class=n>HttpResponse</span><span class=p>(</span><span class=s2>&quot;Hello, world!&quot;</span><span class=p>)</span>
@ -2490,23 +2490,23 @@
property
(django_components.ComponentView.url)" href=#django_components.ComponentView.url>url</a></code></b> (<code><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></code>) <div class=doc-md-description> </div> </li> </ul> <div class="doc doc-children"> <div class="doc doc-object doc-attribute"> <h3 id=django_components.ComponentView.component class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">component</span> <span class="doc doc-labels"> <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small> <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small> </span> <a href=#django_components.ComponentView.component class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=n>component</span> <span class=o>=</span> <span class=n><span title=django_components.extensions.view.ComponentView(component)>component</span></span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L165 target=_blank>See source code</a></p> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L131 target=_blank>See source code</a></p> <p>DEPRECATED: Will be removed in v1.0. Use <a href=../api#django_components.ComponentView.component_cls><code>component_cls</code></a> instead.</p> <p>This is a dummy instance created solely for the View methods.</p> <p>It is the same as if you instantiated the component class directly:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=n>component</span> <span class=o>=</span> <span class=n>Calendar</span><span class=p>()</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L171 target=_blank>See source code</a></p> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L137 target=_blank>See source code</a></p> <p>DEPRECATED: Will be removed in v1.0. Use <a href=../api#django_components.ComponentView.component_cls><code>component_cls</code></a> instead.</p> <p>This is a dummy instance created solely for the View methods.</p> <p>It is the same as if you instantiated the component class directly:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=n>component</span> <span class=o>=</span> <span class=n>Calendar</span><span class=p>()</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a><span class=n>component</span><span class=o>.</span><span class=n>render_to_response</span><span class=p>(</span><span class=n>request</span><span class=o>=</span><span class=n>request</span><span class=p>)</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-attribute"> <h3 id=django_components.ComponentView.component_class class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">component_class</span> <span class="doc doc-labels"> <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small> </span> <a href=#django_components.ComponentView.component_class class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=n>component_class</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-external" title=typing.Type href=https://docs.python.org/3.12/library/typing.html#typing.Type>Type</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-internal" title=" Component (django_components.Component)" href=#django_components.Component>Component</a></span><span class=p>]</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L256 target=_blank>See source code</a></p> <p>The <a href=./#django_components.Component><code>Component</code></a> class that this extension is defined on.</p> </div> </div> <div class="doc doc-object doc-attribute"> <h3 id=django_components.ComponentView.component_cls class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">component_cls</span> <span class="doc doc-labels"> <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small> <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small> </span> <a href=#django_components.ComponentView.component_cls class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=n>component_cls</span> <span class=o>=</span> <span class=n><a class="autorefs autorefs-external" title=typing.cast href=https://docs.python.org/3.12/library/typing.html#typing.cast>cast</a></span><span class=p>(</span><span class=s1>&#39;Type[Component]&#39;</span><span class=p>,</span> <span class=kc>None</span><span class=p>)</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L146 target=_blank>See source code</a></p> <p>The parent component class.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>class</span><span class=w> </span><span class=nc>MyComponent</span><span class=p>(</span><span class=n>Component</span><span class=p>):</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L152 target=_blank>See source code</a></p> <p>The parent component class.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>class</span><span class=w> </span><span class=nc>MyComponent</span><span class=p>(</span><span class=n>Component</span><span class=p>):</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a> <span class=k>class</span><span class=w> </span><span class=nc>View</span><span class=p>:</span>
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> <span class=k>def</span><span class=w> </span><span class=nf>get</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>request</span><span class=p>):</span>
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>return</span> <span class=bp>self</span><span class=o>.</span><span class=n>component_cls</span><span class=o>.</span><span class=n>render_to_response</span><span class=p>(</span><span class=n>request</span><span class=o>=</span><span class=n>request</span><span class=p>)</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-attribute"> <h3 id=django_components.ComponentView.public class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">public</span> <span class="doc doc-labels"> <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small> </span> <a href=#django_components.ComponentView.public class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=n>public</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/functions.html#bool>bool</a></span> <span class=o>=</span> <span class=kc>False</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L190 target=_blank>See source code</a></p> <p>Whether the component should be available via a URL.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>Component</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L196 target=_blank>See source code</a></p> <p>Whether the component should be available via a URL.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>Component</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyComponent</span><span class=p>(</span><span class=n>Component</span><span class=p>):</span>
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>class</span><span class=w> </span><span class=nc>View</span><span class=p>:</span>
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=n>public</span> <span class=o>=</span> <span class=kc>True</span>
</code></pre></div> <p>Will create a URL route like <code>/components/ext/view/components/a1b2c3/</code>.</p> <p>To get the URL for the component, use <a href=../api#django_components.get_component_url><code>get_component_url()</code></a>:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=n>url</span> <span class=o>=</span> <span class=n>get_component_url</span><span class=p>(</span><span class=n>MyComponent</span><span class=p>)</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-attribute"> <h3 id=django_components.ComponentView.url class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">url</span> <span class="doc doc-labels"> <small class="doc doc-label doc-label-property"><code>property</code></small> </span> <a href=#django_components.ComponentView.url class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=n>url</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L168 target=_blank>See source code</a></p> <p>The URL for the component.</p> <p>Raises <code>RuntimeError</code> if the component is not public.</p> <p>This is the same as calling <a href=../api#django_components.get_component_url><code>get_component_url()</code></a> with the parent <a href=../api#django_components.Component><code>Component</code></a> class:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>class</span><span class=w> </span><span class=nc>MyComponent</span><span class=p>(</span><span class=n>Component</span><span class=p>):</span>
</code></pre></div> <div class="doc doc-contents "> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L174 target=_blank>See source code</a></p> <p>The URL for the component.</p> <p>Raises <code>RuntimeError</code> if the component is not public.</p> <p>This is the same as calling <a href=../api#django_components.get_component_url><code>get_component_url()</code></a> with the parent <a href=../api#django_components.Component><code>Component</code></a> class:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>class</span><span class=w> </span><span class=nc>MyComponent</span><span class=p>(</span><span class=n>Component</span><span class=p>):</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a> <span class=k>class</span><span class=w> </span><span class=nc>View</span><span class=p>:</span>
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> <span class=k>def</span><span class=w> </span><span class=nf>get</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>request</span><span class=p>):</span>
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>assert</span> <span class=bp>self</span><span class=o>.</span><span class=n>url</span> <span class=o>==</span> <span class=n>get_component_url</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>component_cls</span><span class=p>)</span>
@ -3775,7 +3775,7 @@
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=n>modules</span> <span class=o>=</span> <span class=n>get_component_files</span><span class=p>(</span><span class=s2>&quot;.py&quot;</span><span class=p>)</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-function"> <h2 id=django_components.get_component_url class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">get_component_url</span> <a href=#django_components.get_component_url class=headerlink title="Permanent link">¤</a></h2> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>get_component_url</span><span class=p>(</span><span class=n>component</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-external" title=typing.Union href=https://docs.python.org/3.12/library/typing.html#typing.Union>Union</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" title=typing.Type href=https://docs.python.org/3.12/library/typing.html#typing.Type>Type</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-internal" title=" Component (django_components.component.Component)" href=#django_components.Component>Component</a></span><span class=p>],</span> <span class=n><a class="autorefs autorefs-internal" title=" Component (django_components.component.Component)" href=#django_components.Component>Component</a></span><span class=p>],</span> <span class=n>query</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" title=typing.Dict href=https://docs.python.org/3.12/library/typing.html#typing.Dict>Dict</a></span><span class=p>]</span> <span class=o>=</span> <span class=kc>None</span><span class=p>,</span> <span class=n>fragment</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span> <span class=o>=</span> <span class=kc>None</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span>
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L37 target=_blank>See source code</a></p> <p>Get the URL for a <a href=../api#django_components.Component><code>Component</code></a>.</p> <p>Raises <code>RuntimeError</code> if the component is not public.</p> <p>Read more about <a href=../../concepts/fundamentals/component_views_urls>Component views and URLs</a>.</p> <p><code>get_component_url()</code> optionally accepts <code>query</code> and <code>fragment</code> arguments.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>Component</span><span class=p>,</span> <span class=n>get_component_url</span>
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extensions/view.py#L37 target=_blank>See source code</a></p> <p>Get the URL for a <a href=../api#django_components.Component><code>Component</code></a>.</p> <p>Raises <code>RuntimeError</code> if the component is not public.</p> <p>Read more about <a href=../../concepts/fundamentals/component_views_urls>Component views and URLs</a>.</p> <p><code>get_component_url()</code> optionally accepts <code>query</code> and <code>fragment</code> arguments.</p> <p><strong>Query parameter handling:</strong></p> <ul> <li><code>True</code> values are rendered as flag parameters without values (e.g., <code>?enabled</code>)</li> <li><code>False</code> and <code>None</code> values are omitted from the URL</li> <li>Other values are rendered normally (e.g., <code>?foo=bar</code>)</li> </ul> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>Component</span><span class=p>,</span> <span class=n>get_component_url</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyComponent</span><span class=p>(</span><span class=n>Component</span><span class=p>):</span>
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>class</span><span class=w> </span><span class=nc>View</span><span class=p>:</span>
@ -3784,10 +3784,10 @@
<a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a><span class=c1># Get the URL for the component</span>
<a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a><span class=n>url</span> <span class=o>=</span> <span class=n>get_component_url</span><span class=p>(</span>
<a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a> <span class=n>MyComponent</span><span class=p>,</span>
<a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a> <span class=n>query</span><span class=o>=</span><span class=p>{</span><span class=s2>&quot;foo&quot;</span><span class=p>:</span> <span class=s2>&quot;bar&quot;</span><span class=p>},</span>
<a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a> <span class=n>query</span><span class=o>=</span><span class=p>{</span><span class=s2>&quot;foo&quot;</span><span class=p>:</span> <span class=s2>&quot;bar&quot;</span><span class=p>,</span> <span class=s2>&quot;enabled&quot;</span><span class=p>:</span> <span class=kc>True</span><span class=p>,</span> <span class=s2>&quot;debug&quot;</span><span class=p>:</span> <span class=kc>False</span><span class=p>,</span> <span class=s2>&quot;unused&quot;</span><span class=p>:</span> <span class=kc>None</span><span class=p>},</span>
<a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a> <span class=n>fragment</span><span class=o>=</span><span class=s2>&quot;baz&quot;</span><span class=p>,</span>
<a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a><span class=p>)</span>
<a id=__codelineno-0-13 name=__codelineno-0-13 href=#__codelineno-0-13></a><span class=c1># /components/ext/view/components/c1ab2c3?foo=bar#baz</span>
<a id=__codelineno-0-13 name=__codelineno-0-13 href=#__codelineno-0-13></a><span class=c1># /components/ext/view/components/c1ab2c3?foo=bar&amp;enabled#baz</span>
</code></pre></div> </div> </div> <div class="doc doc-object doc-function"> <h2 id=django_components.import_libraries class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">import_libraries</span> <a href=#django_components.import_libraries class=headerlink title="Permanent link">¤</a></h2> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>import_libraries</span><span class=p>(</span><span class=n>map_module</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" title=typing.Callable href=https://docs.python.org/3.12/library/typing.html#typing.Callable>Callable</a></span><span class=p>[[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>],</span> <span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]]</span> <span class=o>=</span> <span class=kc>None</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=n><a class="autorefs autorefs-external" title=typing.List href=https://docs.python.org/3.12/library/typing.html#typing.List>List</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/autodiscovery.py#L50 target=_blank>See source code</a></p> <p>Import modules set in <a href=../settings#django_components.app_settings.ComponentsSettings.libraries><code>COMPONENTS.libraries</code></a> setting.</p> <p>See <a href=../../concepts/fundamentals/autodiscovery>Autodiscovery</a>.</p> <p><span class=doc-section-title>Parameters:</span></p> <ul> <li class="doc-section-item field-body"> <b><code>map_module</code></b> (<code><a class="autorefs autorefs-external" title=typing.Callable href=https://docs.python.org/3.12/library/typing.html#typing.Callable>Callable</a>[[<a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a>], <a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a>]</code>, default: <code>None</code> ) <div class=doc-md-description> <p>Map the module paths with <code>map_module</code> function. This serves as an escape hatch for when you need to use this function in tests.</p> </div> </li> </ul> <p><span class=doc-section-title>Returns:</span></p> <ul> <li class="doc-section-item field-body"> <code><a class="autorefs autorefs-external" title=typing.List href=https://docs.python.org/3.12/library/typing.html#typing.List>List</a>[<a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a>]</code> <div class=doc-md-description> <p>List[str]: A list of module paths of imported files.</p> </div> </li> </ul> <p><strong>Examples:</strong></p> <p>Normal usage - load libraries after Django has loaded <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>import_libraries</span>
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>