joop 0.0.1__tar.gz → 0.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. {joop-0.0.1 → joop-0.0.2}/PKG-INFO +2 -2
  2. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.flask.example.doctree +0 -0
  3. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/changelog.doctree +0 -0
  4. joop-0.0.2/docs/build/html/.doctrees/environment.pickle +0 -0
  5. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.flask.example.html +3 -3
  6. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.web.html.html +4 -0
  7. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/web/html.html +0 -1
  8. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/changelog.rst.txt +4 -0
  9. {joop-0.0.1 → joop-0.0.2}/docs/build/html/changelog.html +7 -0
  10. {joop-0.0.1 → joop-0.0.2}/docs/build/html/index.html +1 -0
  11. joop-0.0.2/docs/build/html/searchindex.js +1 -0
  12. {joop-0.0.1 → joop-0.0.2}/docs/source/changelog.rst +4 -0
  13. {joop-0.0.1 → joop-0.0.2}/joop/web/examples/table.py +7 -4
  14. {joop-0.0.1 → joop-0.0.2}/joop/web/examples/view.py +2 -2
  15. {joop-0.0.1 → joop-0.0.2}/joop/web/html.py +0 -1
  16. {joop-0.0.1 → joop-0.0.2}/pyproject.toml +2 -2
  17. joop-0.0.1/docs/build/html/.doctrees/environment.pickle +0 -0
  18. joop-0.0.1/docs/build/html/searchindex.js +0 -1
  19. {joop-0.0.1 → joop-0.0.2}/README.md +0 -0
  20. {joop-0.0.1 → joop-0.0.2}/docs/Makefile +0 -0
  21. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.buildinfo +0 -0
  22. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.buildinfo.bak +0 -0
  23. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.cli.doctree +0 -0
  24. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.cli.test_flask.doctree +0 -0
  25. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.dao.doctree +0 -0
  26. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.flask.doctree +0 -0
  27. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.flask.flask_view.doctree +0 -0
  28. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.http.doctree +0 -0
  29. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.http.methods.doctree +0 -0
  30. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.web.alpine_js.doctree +0 -0
  31. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.web.component.doctree +0 -0
  32. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.web.components.doctree +0 -0
  33. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.web.doctree +0 -0
  34. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.web.html.doctree +0 -0
  35. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.web.j_env.doctree +0 -0
  36. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.web.templater.doctree +0 -0
  37. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/_autosummary/joop.web.view.doctree +0 -0
  38. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/index.doctree +0 -0
  39. {joop-0.0.1 → joop-0.0.2}/docs/build/html/.doctrees/modules.doctree +0 -0
  40. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.cli.html +0 -0
  41. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.cli.test_flask.html +0 -0
  42. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.dao.html +0 -0
  43. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.flask.flask_view.html +0 -0
  44. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.flask.html +0 -0
  45. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.http.html +0 -0
  46. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.http.methods.html +0 -0
  47. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.web.alpine_js.html +0 -0
  48. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.web.component.html +0 -0
  49. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.web.components.html +0 -0
  50. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.web.html +0 -0
  51. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.web.j_env.html +0 -0
  52. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.web.templater.html +0 -0
  53. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_autosummary/joop.web.view.html +0 -0
  54. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/index.html +0 -0
  55. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/cli/test_flask.html +0 -0
  56. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/dao.html +0 -0
  57. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/flask/example.html +0 -0
  58. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/flask/flask_view.html +0 -0
  59. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/http/methods.html +0 -0
  60. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/web/alpine_js.html +0 -0
  61. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/web/component.html +0 -0
  62. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/web/components.html +0 -0
  63. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/web/j_env.html +0 -0
  64. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/web/templater.html +0 -0
  65. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop/web/view.html +0 -0
  66. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_modules/joop.html +0 -0
  67. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.cli.rst.txt +0 -0
  68. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.cli.test_flask.rst.txt +0 -0
  69. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.dao.rst.txt +0 -0
  70. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.flask.example.rst.txt +0 -0
  71. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.flask.flask_view.rst.txt +0 -0
  72. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.flask.rst.txt +0 -0
  73. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.http.methods.rst.txt +0 -0
  74. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.http.rst.txt +0 -0
  75. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.web.alpine_js.rst.txt +0 -0
  76. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.web.component.rst.txt +0 -0
  77. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.web.components.rst.txt +0 -0
  78. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.web.html.rst.txt +0 -0
  79. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.web.j_env.rst.txt +0 -0
  80. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.web.rst.txt +0 -0
  81. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.web.templater.rst.txt +0 -0
  82. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/_autosummary/joop.web.view.rst.txt +0 -0
  83. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/index.rst.txt +0 -0
  84. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_sources/modules.rst.txt +0 -0
  85. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/alabaster.css +0 -0
  86. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/basic.css +0 -0
  87. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/custom.css +0 -0
  88. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/doctools.js +0 -0
  89. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/documentation_options.js +0 -0
  90. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/file.png +0 -0
  91. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/github-banner.svg +0 -0
  92. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/language_data.js +0 -0
  93. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/minus.png +0 -0
  94. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/plus.png +0 -0
  95. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/pygments.css +0 -0
  96. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/searchtools.js +0 -0
  97. {joop-0.0.1 → joop-0.0.2}/docs/build/html/_static/sphinx_highlight.js +0 -0
  98. {joop-0.0.1 → joop-0.0.2}/docs/build/html/genindex.html +0 -0
  99. {joop-0.0.1 → joop-0.0.2}/docs/build/html/modules.html +0 -0
  100. {joop-0.0.1 → joop-0.0.2}/docs/build/html/objects.inv +0 -0
  101. {joop-0.0.1 → joop-0.0.2}/docs/build/html/py-modindex.html +0 -0
  102. {joop-0.0.1 → joop-0.0.2}/docs/build/html/search.html +0 -0
  103. {joop-0.0.1 → joop-0.0.2}/docs/make.bat +0 -0
  104. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.cli.rst +0 -0
  105. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.cli.test_flask.rst +0 -0
  106. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.dao.rst +0 -0
  107. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.flask.example.rst +0 -0
  108. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.flask.flask_view.rst +0 -0
  109. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.flask.rst +0 -0
  110. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.http.methods.rst +0 -0
  111. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.http.rst +0 -0
  112. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.web.alpine_js.rst +0 -0
  113. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.web.component.rst +0 -0
  114. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.web.components.rst +0 -0
  115. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.web.html.rst +0 -0
  116. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.web.j_env.rst +0 -0
  117. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.web.rst +0 -0
  118. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.web.templater.rst +0 -0
  119. {joop-0.0.1 → joop-0.0.2}/docs/source/_autosummary/joop.web.view.rst +0 -0
  120. {joop-0.0.1 → joop-0.0.2}/docs/source/conf.py +0 -0
  121. {joop-0.0.1 → joop-0.0.2}/docs/source/index.rst +0 -0
  122. {joop-0.0.1 → joop-0.0.2}/docs/source/modules.rst +0 -0
  123. {joop-0.0.1 → joop-0.0.2}/joop/__init__.py +0 -0
  124. {joop-0.0.1 → joop-0.0.2}/joop/abstract/README.md +0 -0
  125. {joop-0.0.1 → joop-0.0.2}/joop/abstract/__init__.py +0 -0
  126. {joop-0.0.1 → joop-0.0.2}/joop/cli/README.md +0 -0
  127. {joop-0.0.1 → joop-0.0.2}/joop/cli/__init__.py +0 -0
  128. {joop-0.0.1 → joop-0.0.2}/joop/cli/__main__.py +0 -0
  129. {joop-0.0.1 → joop-0.0.2}/joop/cli/test_flask.py +0 -0
  130. {joop-0.0.1 → joop-0.0.2}/joop/dao/__init__.py +0 -0
  131. {joop-0.0.1 → joop-0.0.2}/joop/flask/__init__.py +0 -0
  132. {joop-0.0.1 → joop-0.0.2}/joop/flask/example.py +0 -0
  133. {joop-0.0.1 → joop-0.0.2}/joop/flask/flask_view.py +0 -0
  134. {joop-0.0.1 → joop-0.0.2}/joop/http/methods.py +0 -0
  135. {joop-0.0.1 → joop-0.0.2}/joop/tests/__init__.py +0 -0
  136. {joop-0.0.1 → joop-0.0.2}/joop/tests/test_joop.py +0 -0
  137. {joop-0.0.1 → joop-0.0.2}/joop/tests/test_templater.py +0 -0
  138. {joop-0.0.1 → joop-0.0.2}/joop/tests/test_view.py +0 -0
  139. {joop-0.0.1 → joop-0.0.2}/joop/tests/test_web.py +0 -0
  140. {joop-0.0.1 → joop-0.0.2}/joop/web/__init__.py +0 -0
  141. {joop-0.0.1 → joop-0.0.2}/joop/web/component.py +0 -0
  142. {joop-0.0.1 → joop-0.0.2}/joop/web/components.py +0 -0
  143. {joop-0.0.1 → joop-0.0.2}/joop/web/examples/hello.py +0 -0
  144. {joop-0.0.1 → joop-0.0.2}/joop/web/j_env.py +0 -0
  145. {joop-0.0.1 → joop-0.0.2}/joop/web/templater.py +0 -0
  146. {joop-0.0.1 → joop-0.0.2}/joop/web/view.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: joop
3
- Version: 0.0.1
3
+ Version: 0.0.2
4
4
  Summary: Justin's Object-Oriented Paradigms
5
5
  License-Expression: Apache-2.0
6
6
  Keywords: object-oriented programming,DAO,HTMX,AlpineJS,Python
@@ -21,7 +21,7 @@ Requires-Dist: pydantic (>=2.12.5,<3.0.0)
21
21
  Requires-Dist: sqlmodel (>=0.0.31,<0.0.32)
22
22
  Project-URL: Homepage, https://github.com/rushinjgr/joop
23
23
  Project-URL: bugs, https://github.com/rushinjgr/joop/issues
24
- Project-URL: changelog, https://github.com/rushinjgr/joop/blob/master/python/docs/changelog.md
24
+ Project-URL: changelog, https://github.com/rushinjgr/joop/blob/master/python/docs/source/changelog.rst
25
25
  Project-URL: source, https://github.com/rushinjgr/joop
26
26
  Description-Content-Type: text/markdown
27
27
 
@@ -60,7 +60,7 @@
60
60
  <dl class="py class">
61
61
  <dt class="sig sig-object py" id="joop.flask.example.FlaskHello.Endpoint">
62
62
  <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Endpoint</span></span><a class="headerlink" href="#joop.flask.example.FlaskHello.Endpoint" title="Link to this definition">¶</a></dt>
63
- <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
63
+ <dd><p>Bases: <a class="reference internal" href="joop.web.view.html#joop.web.view.View.Endpoint" title="joop.web.view.View.Endpoint"><code class="xref py py-class docutils literal notranslate"><span class="pre">Endpoint</span></code></a></p>
64
64
  </dd></dl>
65
65
 
66
66
  <dl class="py method">
@@ -119,7 +119,7 @@ web application using the <cite>_add_to_app</cite> method.</p>
119
119
  <dl class="py class">
120
120
  <dt class="sig sig-object py" id="joop.flask.example.FlaskName.Endpoint">
121
121
  <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Endpoint</span></span><a class="headerlink" href="#joop.flask.example.FlaskName.Endpoint" title="Link to this definition">¶</a></dt>
122
- <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
122
+ <dd><p>Bases: <a class="reference internal" href="joop.web.view.html#joop.web.view.View.Endpoint" title="joop.web.view.View.Endpoint"><code class="xref py py-class docutils literal notranslate"><span class="pre">Endpoint</span></code></a></p>
123
123
  </dd></dl>
124
124
 
125
125
  <dl class="py method">
@@ -178,7 +178,7 @@ web application using the <cite>_add_to_app</cite> method.</p>
178
178
  <dl class="py class">
179
179
  <dt class="sig sig-object py" id="joop.flask.example.FlaskTablePage.Endpoint">
180
180
  <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Endpoint</span></span><a class="headerlink" href="#joop.flask.example.FlaskTablePage.Endpoint" title="Link to this definition">¶</a></dt>
181
- <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
181
+ <dd><p>Bases: <a class="reference internal" href="joop.web.view.html#joop.web.view.View.Endpoint" title="joop.web.view.View.Endpoint"><code class="xref py py-class docutils literal notranslate"><span class="pre">Endpoint</span></code></a></p>
182
182
  <p>Defines the endpoint for the <cite>MyTableWholePage</cite> view.</p>
183
183
  <dl class="py attribute">
184
184
  <dt class="sig sig-object py" id="joop.flask.example.FlaskTablePage.Endpoint._url">
@@ -412,6 +412,10 @@ and renders the HTML output using the provided data and subcomponents.</p>
412
412
  <li class="toctree-l1 current"><a class="reference internal" href="../modules.html">API Documentation</a><ul class="current">
413
413
  <li class="toctree-l2"><a class="reference internal" href="../modules.html#joop.hello_world"><code class="docutils literal notranslate"><span class="pre">hello_world()</span></code></a></li>
414
414
  <li class="toctree-l2 current"><a class="reference internal" href="joop.web.html">joop.web</a></li>
415
+ <li class="toctree-l2"><a class="reference internal" href="joop.dao.html">joop.dao</a></li>
416
+ <li class="toctree-l2"><a class="reference internal" href="joop.cli.html">joop.cli</a></li>
417
+ <li class="toctree-l2"><a class="reference internal" href="joop.flask.html">joop.flask</a></li>
418
+ <li class="toctree-l2"><a class="reference internal" href="joop.http.html">joop.http</a></li>
415
419
  </ul>
416
420
  </li>
417
421
  <li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
@@ -265,7 +265,6 @@
265
265
  <span class="s1">&#39;sc&#39;</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">subs</span><span class="o">.</span><span class="n">get_rendered</span><span class="p">(),</span>
266
266
  <span class="s1">&#39;data&#39;</span> <span class="p">:</span> <span class="n">asdict</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
267
267
  <span class="p">}</span>
268
- <span class="nb">print</span><span class="p">(</span><span class="n">_joop</span><span class="p">)</span>
269
268
  <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_loaded_template</span><span class="o">.</span><span class="n">render</span><span class="p">(</span>
270
269
  <span class="n">joop</span> <span class="o">=</span> <span class="n">_joop</span>
271
270
  <span class="p">)</span></div>
@@ -1,6 +1,10 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ Version 0.0.2 (2026-02-03)
5
+ --------------------------
6
+ - Var bug fixes.
7
+
4
8
  Version 0.0.1 (2026-02-02)
5
9
  --------------------------
6
10
  - Initial version. Features AlpineJS-powered table.
@@ -34,6 +34,12 @@
34
34
 
35
35
  <section id="changelog">
36
36
  <h1>Changelog<a class="headerlink" href="#changelog" title="Link to this heading">¶</a></h1>
37
+ <section id="version-0-0-2-2026-02-03">
38
+ <h2>Version 0.0.2 (2026-02-03)<a class="headerlink" href="#version-0-0-2-2026-02-03" title="Link to this heading">¶</a></h2>
39
+ <ul class="simple">
40
+ <li><p>Var bug fixes.</p></li>
41
+ </ul>
42
+ </section>
37
43
  <section id="version-0-0-1-2026-02-02">
38
44
  <h2>Version 0.0.1 (2026-02-02)<a class="headerlink" href="#version-0-0-1-2026-02-02" title="Link to this heading">¶</a></h2>
39
45
  <ul class="simple">
@@ -72,6 +78,7 @@
72
78
  <ul class="current">
73
79
  <li class="toctree-l1"><a class="reference internal" href="modules.html">API Documentation</a></li>
74
80
  <li class="toctree-l1 current"><a class="current reference internal" href="#">Changelog</a><ul>
81
+ <li class="toctree-l2"><a class="reference internal" href="#version-0-0-2-2026-02-03">Version 0.0.2 (2026-02-03)</a></li>
75
82
  <li class="toctree-l2"><a class="reference internal" href="#version-0-0-1-2026-02-02">Version 0.0.1 (2026-02-02)</a></li>
76
83
  </ul>
77
84
  </li>
@@ -59,6 +59,7 @@
59
59
  </ul>
60
60
  </li>
61
61
  <li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a><ul>
62
+ <li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-0-2-2026-02-03">Version 0.0.2 (2026-02-03)</a></li>
62
63
  <li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-0-1-2026-02-02">Version 0.0.1 (2026-02-02)</a></li>
63
64
  </ul>
64
65
  </li>
@@ -0,0 +1 @@
1
+ Search.setIndex({"alltitles": {"API Documentation": [[18, null]], "Changelog": [[16, null]], "Contents:": [[17, null]], "Features": [[17, "features"]], "Version 0.0.1 (2026-02-02)": [[16, "version-0-0-1-2026-02-02"]], "Version 0.0.2 (2026-02-03)": [[16, "version-0-0-2-2026-02-03"]], "Welcome to joop": [[17, "welcome-to-joop"]], "joop documentation": [[17, null]], "joop.cli": [[0, null]], "joop.cli.test_flask": [[1, null]], "joop.dao": [[2, null]], "joop.flask": [[3, null]], "joop.flask.example": [[4, null]], "joop.flask.flask_view": [[5, null]], "joop.http": [[6, null]], "joop.http.methods": [[7, null]], "joop.web": [[8, null]], "joop.web.alpine_js": [[9, null]], "joop.web.component": [[10, null]], "joop.web.components": [[11, null]], "joop.web.html": [[12, null]], "joop.web.j_env": [[13, null]], "joop.web.templater": [[14, null]], "joop.web.view": [[15, null]]}, "docnames": ["_autosummary/joop.cli", "_autosummary/joop.cli.test_flask", "_autosummary/joop.dao", "_autosummary/joop.flask", "_autosummary/joop.flask.example", "_autosummary/joop.flask.flask_view", "_autosummary/joop.http", "_autosummary/joop.http.methods", "_autosummary/joop.web", "_autosummary/joop.web.alpine_js", "_autosummary/joop.web.component", "_autosummary/joop.web.components", "_autosummary/joop.web.html", "_autosummary/joop.web.j_env", "_autosummary/joop.web.templater", "_autosummary/joop.web.view", "changelog", "index", "modules"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["_autosummary/joop.cli.rst", "_autosummary/joop.cli.test_flask.rst", "_autosummary/joop.dao.rst", "_autosummary/joop.flask.rst", "_autosummary/joop.flask.example.rst", "_autosummary/joop.flask.flask_view.rst", "_autosummary/joop.http.rst", "_autosummary/joop.http.methods.rst", "_autosummary/joop.web.rst", "_autosummary/joop.web.alpine_js.rst", "_autosummary/joop.web.component.rst", "_autosummary/joop.web.components.rst", "_autosummary/joop.web.html.rst", "_autosummary/joop.web.j_env.rst", "_autosummary/joop.web.templater.rst", "_autosummary/joop.web.view.rst", "changelog.rst", "index.rst", "modules.rst"], "indexentries": {}, "objects": {"": [[18, 0, 0, "-", "joop"]], "joop": [[0, 0, 0, "-", "cli"], [2, 0, 0, "-", "dao"], [3, 0, 0, "-", "flask"], [18, 1, 1, "", "hello_world"], [6, 0, 0, "-", "http"], [8, 0, 0, "-", "web"]], "joop.cli": [[1, 0, 0, "-", "test_flask"]], "joop.cli.test_flask": [[1, 1, 1, "", "start_test_flask"]], "joop.dao": [[2, 2, 1, "", "DAO"], [2, 2, 1, "", "SQLDAO"]], "joop.dao.DAO": [[2, 3, 1, "", "_modeltype"], [2, 4, 1, "", "from_model"], [2, 4, 1, "id0", "get_model_fields"], [2, 5, 1, "", "model"], [2, 4, 1, "id1", "to_dict"]], "joop.dao.SQLDAO": [[2, 3, 1, "", "_modeltype"], [2, 4, 1, "", "from_model"], [2, 4, 1, "", "get_all"], [2, 4, 1, "", "get_model_fields"], [2, 5, 1, "", "model"], [2, 4, 1, "", "to_dict"]], "joop.flask": [[3, 3, 1, "", "app"], [4, 0, 0, "-", "example"], [5, 0, 0, "-", "flask_view"]], "joop.flask.example": [[4, 2, 1, "", "FlaskHello"], [4, 2, 1, "", "FlaskName"], [4, 2, 1, "", "FlaskTablePage"]], "joop.flask.example.FlaskHello": [[4, 2, 1, "", "Endpoint"], [4, 4, 1, "", "add_to_app"], [4, 4, 1, "", "get_jinja_env"], [4, 4, 1, "", "render"]], "joop.flask.example.FlaskName": [[4, 2, 1, "", "Endpoint"], [4, 4, 1, "", "add_to_app"], [4, 4, 1, "", "get_jinja_env"], [4, 4, 1, "", "render"]], "joop.flask.example.FlaskTablePage": [[4, 2, 1, "", "Endpoint"], [4, 4, 1, "", "add_to_app"], [4, 4, 1, "", "get_jinja_env"], [4, 4, 1, "", "render"]], "joop.flask.example.FlaskTablePage.Endpoint": [[4, 3, 1, "", "_methods"], [4, 3, 1, "", "_name"], [4, 3, 1, "", "_url"]], "joop.flask.flask_view": [[5, 2, 1, "", "FlaskView"]], "joop.flask.flask_view.FlaskView": [[5, 2, 1, "", "Endpoint"], [5, 4, 1, "", "_get_jinja_env"], [5, 4, 1, "", "add_to_app"], [5, 4, 1, "", "get_jinja_env"], [5, 4, 1, "", "render"]], "joop.http": [[7, 0, 0, "-", "methods"]], "joop.http.methods": [[7, 2, 1, "", "HttpMethod"]], "joop.http.methods.HttpMethod": [[7, 3, 1, "", "CONNECT"], [7, 3, 1, "", "DELETE"], [7, 3, 1, "", "GET"], [7, 3, 1, "", "HEAD"], [7, 3, 1, "", "OPTIONS"], [7, 3, 1, "", "PATCH"], [7, 3, 1, "", "POST"], [7, 3, 1, "", "PUT"], [7, 3, 1, "", "TRACE"], [7, 4, 1, "", "capitalize"], [7, 4, 1, "", "casefold"], [7, 4, 1, "", "center"], [7, 4, 1, "", "count"], [7, 4, 1, "", "description"], [7, 4, 1, "", "encode"], [7, 4, 1, "", "endswith"], [7, 4, 1, "", "expandtabs"], [7, 4, 1, "", "find"], [7, 4, 1, "", "format"], [7, 4, 1, "", "format_map"], [7, 4, 1, "", "index"], [7, 4, 1, "", "isalnum"], [7, 4, 1, "", "isalpha"], [7, 4, 1, "", "isascii"], [7, 4, 1, "", "isdecimal"], [7, 4, 1, "", "isdigit"], [7, 4, 1, "", "isidentifier"], [7, 4, 1, "", "islower"], [7, 4, 1, "", "isnumeric"], [7, 4, 1, "", "isprintable"], [7, 4, 1, "", "isspace"], [7, 4, 1, "", "istitle"], [7, 4, 1, "", "isupper"], [7, 4, 1, "", "join"], [7, 4, 1, "", "ljust"], [7, 4, 1, "", "lower"], [7, 4, 1, "", "lstrip"], [7, 4, 1, "", "maketrans"], [7, 4, 1, "", "partition"], [7, 4, 1, "", "removeprefix"], [7, 4, 1, "", "removesuffix"], [7, 4, 1, "", "replace"], [7, 4, 1, "", "rfind"], [7, 4, 1, "", "rindex"], [7, 4, 1, "", "rjust"], [7, 4, 1, "", "rpartition"], [7, 4, 1, "", "rsplit"], [7, 4, 1, "", "rstrip"], [7, 4, 1, "", "split"], [7, 4, 1, "", "splitlines"], [7, 4, 1, "", "startswith"], [7, 4, 1, "", "strip"], [7, 4, 1, "", "swapcase"], [7, 4, 1, "", "title"], [7, 4, 1, "", "translate"], [7, 4, 1, "", "upper"], [7, 4, 1, "", "zfill"]], "joop.web": [[10, 0, 0, "-", "component"], [11, 0, 0, "-", "components"], [12, 0, 0, "-", "html"], [13, 0, 0, "-", "j_env"], [14, 0, 0, "-", "templater"], [15, 0, 0, "-", "view"]], "joop.web.component": [[10, 2, 1, "", "Component"], [10, 2, 1, "", "JSONComponent"]], "joop.web.component.Component": [[10, 2, 1, "", "Data"], [10, 2, 1, "", "Inputs"], [10, 2, 1, "", "SubComponents"], [10, 4, 1, "", "__init__"], [10, 4, 1, "", "_process_inputs"], [10, 3, 1, "id0", "data"], [10, 3, 1, "id1", "inputs"], [10, 4, 1, "id2", "render"], [10, 3, 1, "id3", "subs"]], "joop.web.component.Component.Data": [[10, 4, 1, "", "__init__"], [10, 3, 1, "", "_isabstract"], [10, 3, 1, "", "from_inputs"], [10, 3, 1, "", "func"]], "joop.web.component.Component.Inputs": [[10, 4, 1, "", "__init__"]], "joop.web.component.Component.SubComponents": [[10, 4, 1, "", "__init__"]], "joop.web.component.JSONComponent": [[10, 2, 1, "", "Data"], [10, 2, 1, "", "Inputs"], [10, 2, 1, "", "SubComponents"], [10, 4, 1, "", "__init__"], [10, 3, 1, "", "data"], [10, 3, 1, "", "inputs"], [10, 4, 1, "", "render"], [10, 3, 1, "", "subs"]], "joop.web.component.JSONComponent.Data": [[10, 4, 1, "", "__init__"], [10, 3, 1, "", "_isabstract"], [10, 3, 1, "", "from_inputs"], [10, 3, 1, "", "func"]], "joop.web.component.JSONComponent.Inputs": [[10, 4, 1, "", "__init__"]], "joop.web.component.JSONComponent.SubComponents": [[10, 4, 1, "", "__init__"]], "joop.web.components": [[11, 2, 1, "", "AlpineTableComponent"], [11, 2, 1, "", "MetaRowDAO"], [11, 2, 1, "", "RowDAO"], [11, 2, 1, "", "SQLRowDAO"]], "joop.web.components.AlpineTableComponent": [[11, 2, 1, "", "Data"], [11, 2, 1, "", "Inputs"], [11, 2, 1, "", "SubComponents"], [11, 4, 1, "", "__init__"], [11, 3, 1, "", "_row_type"], [11, 3, 1, "", "_template_location"], [11, 3, 1, "", "_use_prefix_template"], [11, 3, 1, "", "data"], [11, 3, 1, "", "inputs"], [11, 4, 1, "", "render"], [11, 3, 1, "", "subs"]], "joop.web.components.AlpineTableComponent.Data": [[11, 4, 1, "", "__init__"], [11, 3, 1, "", "_row_type"], [11, 4, 1, "", "from_inputs"], [11, 3, 1, "id0", "rows"], [11, 3, 1, "id1", "table_headers"]], "joop.web.components.AlpineTableComponent.Inputs": [[11, 4, 1, "", "__init__"]], "joop.web.components.AlpineTableComponent.SubComponents": [[11, 4, 1, "", "__init__"], [11, 5, 1, "", "get_all"], [11, 4, 1, "", "get_rendered"], [11, 4, 1, "", "render"]], "joop.web.components.MetaRowDAO": [[11, 4, 1, "", "from_model"], [11, 4, 1, "", "get_model_fields"], [11, 5, 1, "", "model"], [11, 4, 1, "", "to_dict"]], "joop.web.components.RowDAO": [[11, 4, 1, "", "from_model"], [11, 4, 1, "", "get_model_fields"], [11, 5, 1, "", "model"], [11, 4, 1, "", "to_dict"]], "joop.web.components.SQLRowDAO": [[11, 4, 1, "", "from_model"], [11, 4, 1, "", "get_model_fields"], [11, 5, 1, "", "model"], [11, 4, 1, "", "to_dict"]], "joop.web.html": [[12, 2, 1, "", "HTML"], [12, 2, 1, "", "HTMLComponent"]], "joop.web.html.HTML": [[12, 4, 1, "", "__init__"], [12, 4, 1, "", "_get_template"], [12, 3, 1, "", "_jinja_env"], [12, 3, 1, "", "_template_location"]], "joop.web.html.HTMLComponent": [[12, 2, 1, "", "Data"], [12, 2, 1, "", "Inputs"], [12, 2, 1, "", "SubComponents"], [12, 4, 1, "", "__init__"], [12, 4, 1, "", "_load_template"], [12, 3, 1, "", "_loaded_template"], [12, 3, 1, "", "data"], [12, 3, 1, "", "inputs"], [12, 4, 1, "", "render"], [12, 3, 1, "", "subs"]], "joop.web.html.HTMLComponent.Data": [[12, 4, 1, "", "__init__"], [12, 3, 1, "", "_isabstract"], [12, 3, 1, "", "from_inputs"], [12, 3, 1, "", "func"]], "joop.web.html.HTMLComponent.Inputs": [[12, 4, 1, "", "__init__"]], "joop.web.html.HTMLComponent.SubComponents": [[12, 4, 1, "", "__init__"], [12, 5, 1, "", "get_all"], [12, 4, 1, "id0", "get_rendered"], [12, 4, 1, "id3", "render"]], "joop.web.j_env": [[13, 1, 1, "", "get_joop_env"], [13, 1, 1, "", "set_joop_env"]], "joop.web.templater": [[14, 2, 1, "", "EnvironmentFactory"]], "joop.web.templater.EnvironmentFactory": [[14, 4, 1, "id0", "create_environment"], [14, 4, 1, "", "data"], [14, 4, 1, "", "subcomponent"]], "joop.web.view": [[15, 2, 1, "", "View"]], "joop.web.view.View": [[15, 2, 1, "", "Endpoint"], [15, 3, 1, "", "_args_to_inputs"], [15, 3, 1, "", "_as_response"], [15, 3, 1, "", "_component_type"], [15, 3, 1, "", "_get_default_subs"], [15, 4, 1, "", "_get_inputs"], [15, 4, 1, "", "_get_jinja_env"], [15, 4, 1, "", "_get_subs"], [15, 4, 1, "", "add_to_app"], [15, 4, 1, "id0", "get_jinja_env"], [15, 4, 1, "id1", "render"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "property", "Python property"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:property"}, "terms": {"": [4, 5, 7, 10, 15], "0": 17, "0000": 7, "007f": 7, "02": 17, "03": 17, "0x7f2aec7663e0": [], "1": [7, 17], "12": [], "2": 17, "2025": [], "2026": 17, "29": [], "3": 7, "8": 7, "A": [2, 5, 7, 10, 11, 12, 13, 14], "If": [1, 2, 4, 5, 7, 11, 12, 14, 15], "In": 7, "It": [2, 10, 11, 12, 14], "Its": 12, "That": 3, "The": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15], "There": 12, "With": 7, "__getitem__": 7, "__init__": [10, 11, 12], "_add_to_app": [4, 5, 15], "_args_to_input": 15, "_as_respons": 15, "_component_typ": 15, "_data": [10, 12], "_from_input": [10, 12], "_get_default_sub": 15, "_get_input": 15, "_get_jinja_env": [5, 15], "_get_joop": 14, "_get_sub": 15, "_get_templ": 12, "_isabstract": [10, 12], "_jinja_env": 12, "_load_templ": 12, "_loaded_templ": 12, "_method": 4, "_modeltyp": [2, 11], "_my_abstract_class_method": [10, 12], "_name": 4, "_process_input": 10, "_row_typ": 11, "_template_loc": [11, 12], "_url": 4, "_use_prefix_templ": 11, "ab": 7, "abcmeta": [10, 12], "abstract": [2, 4, 5, 10, 12, 15], "abstractmethod": [10, 12], "access": [2, 5, 11, 14], "achiev": 12, "ad": 5, "add": [4, 5, 15], "add_to_app": [4, 5, 15], "addit": [2, 10, 11, 12], "after": 7, "alias": [2, 11], "all": [2, 7, 8, 10, 11, 12], "allow": [10, 12], "alpha": 7, "alphabet": 7, "alpin": 11, "alpinedefinit": [], "alpinej": [11, 16, 17], "alpinetablecompon": 11, "also": [7, 11], "an": [2, 7, 11, 12, 13, 14, 17], "ani": [2, 5, 7, 10, 11, 12], "apach": 17, "api": [8, 17], "app": [1, 3, 4, 5, 15], "applic": [3, 4, 5, 15], "ar": [3, 7, 10, 11, 12, 15], "arbitrari": 14, "arg": [7, 10, 13], "argument": [4, 5, 7, 10, 11, 12, 14, 15], "around": 2, "as_subcompon": [11, 12], "ascii": 7, "associ": [4, 5, 14, 15], "assum": 7, "ata": 14, "autoescap": 14, "automat": 15, "avail": 12, "backbon": 10, "backend": 8, "base": [2, 4, 5, 7, 10, 11, 12, 14, 15], "basemodel": [2, 11], "been": 7, "befor": [7, 10], "begin": 7, "behavior": 12, "between": [2, 7], "bool": [7, 10, 11, 12, 15], "both": 12, "boundari": 7, "brace": 7, "break": 7, "bug": 16, "busi": 2, "call": [1, 4, 5, 7, 15], "callabl": [5, 10, 12, 15], "can": [5, 7, 11], "capit": 7, "case": 7, "casefold": 7, "caseless": 7, "center": 7, "changelog": 17, "char": 7, "charact": 7, "cl": [10, 12], "class": [2, 4, 5, 7, 10, 11, 12, 14, 15], "classmethod": [2, 4, 5, 10, 11, 12, 15], "cli": 17, "code": [2, 7], "codec": 7, "compar": 7, "comparison": 7, "compat": [5, 7], "compon": [4, 5, 8, 12, 15, 17], "concaten": 7, "concret": 11, "configur": [3, 4, 5, 14, 15], "connect": 7, "consid": 7, "consol": 18, "construct": 2, "contain": [7, 13, 14], "content": [12, 14], "context": [5, 10, 14], "convert": [2, 7, 11], "copi": 7, "correspond": 7, "count": 7, "creat": [2, 5, 10, 11, 12, 14], "create_environ": 14, "cross": 13, "ctx": 14, "current": [5, 13], "custom": 14, "dao": [11, 17], "data": [2, 7, 10, 11, 12, 14], "databas": 2, "dataclass": [10, 12], "debug": 1, "decim": 7, "def": [7, 10, 12], "default": [2, 3, 4, 7, 15], "defin": [2, 4, 8, 10, 11, 12, 14, 15], "definit": 4, "definition_nam": [], "delet": 7, "delimit": 7, "depend": 1, "deriv": [2, 11], "describ": 7, "descript": 7, "descriptor": [10, 12], "design": 10, "desir": 1, "determin": [11, 15], "develop": [1, 3, 11], "dict": [2, 11, 12, 14], "dictionari": [2, 7, 11, 12, 14], "digit": 7, "directori": 11, "discard": 7, "displai": 11, "display_text": [], "do": 5, "doe": [2, 11, 14], "done": 7, "dynam": [10, 12], "each": [7, 11, 12], "element": 10, "emphasi": 17, "empti": [7, 14], "enabl": 12, "encod": 7, "end": 7, "endpoint": [4, 5, 15], "endswith": 7, "ensur": [1, 10, 11, 12, 14], "enum": 7, "enumer": 7, "env": [1, 3, 5, 12, 14], "environ": [1, 3, 4, 5, 11, 12, 13, 14, 15], "environmentfactori": 14, "equal": 7, "error": 7, "especi": [2, 12], "establish": 15, "etc": 8, "everyth": 12, "ex": [5, 13], "exampl": [3, 7, 10, 12, 14], "exist": [2, 14], "expand": 7, "expandtab": 7, "express": 7, "extend": [2, 11, 12], "f": 7, "factori": 14, "failur": 7, "fals": [7, 11, 12], "featur": 16, "fetch": 14, "field": [2, 7, 11], "file": 12, "fill": 7, "fillchar": 7, "find": 7, "first": 7, "fix": 16, "flag": [10, 12], "flask": [1, 13, 17], "flaskhello": [4, 5], "flasknam": 4, "flasktabl": [], "flasktablepag": 4, "flaskview": [4, 5], "follow": 7, "format": 7, "format_map": 7, "found": [7, 14], "framework": 15, "free": 17, "from": [1, 2, 5, 7, 10, 11, 12, 14], "from_input": [10, 11, 12], "from_model": [2, 11], "front": 7, "func": [10, 12], "function": [1, 5, 8, 10, 12, 13, 14], "gener": [10, 11], "get": [2, 7, 8, 11, 13], "get_al": [2, 11, 12], "get_jinja_env": [4, 5, 15], "get_joop_env": 13, "get_model_field": [2, 11], "get_rend": [11, 12], "given": [2, 7, 10, 12], "global": 13, "goal": 12, "ha": 7, "handl": [7, 10, 11], "have": [2, 7, 11], "head": 7, "header": 11, "hello": 18, "hello_world": [17, 18], "helloview": [4, 5], "here": 8, "highest": 7, "highli": 10, "how": 15, "html": [8, 11, 14, 17], "htmlcompon": [11, 12], "htmx": 17, "http": [4, 17], "httpmethod": 7, "i": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15], "identifi": 7, "ignor": 7, "implement": [1, 7, 10, 11, 12, 14], "import": [1, 3, 13, 14], "impos": 12, "includ": [2, 5, 7, 10, 11], "incomplet": [4, 5, 15], "index": 7, "indic": [10, 12], "inherit": [5, 10], "init_j": [], "initi": [3, 10, 11, 12, 16], "initj": [], "input": [4, 5, 10, 11, 12, 15], "insert": 7, "insid": 14, "instal": 1, "instanc": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15], "instead": [7, 15], "int": 7, "integ": 7, "integr": [5, 12, 15], "intent": 3, "intention": 7, "interact": [2, 14], "interfac": 13, "interpret": 7, "invalid": [4, 5, 15], "isalnum": 7, "isalpha": 7, "isascii": 7, "isdecim": 7, "isdigit": 7, "isidentifi": 7, "iskeyword": 7, "islow": 7, "isn": 14, "isnumer": 7, "isprint": 7, "isspac": 7, "istitl": 7, "isupp": 7, "iter": [7, 11, 12], "its": [2, 7, 12], "itself": 7, "j": 11, "j_env": [11, 12], "jinja": [1, 5, 12, 13, 14], "jinja2": [3, 4, 5, 11, 12, 14, 15], "jinjaenviron": 14, "join": 7, "joop": 18, "joop_env": 13, "json": 10, "jsoncompon": 10, "justifi": 7, "keepend": 7, "kei": [2, 7, 11, 12, 14], "keyword": [4, 5, 7, 10, 11, 12, 14, 15], "kwarg": [4, 5, 7, 10, 11, 12, 14, 15], "layer": [2, 13], "lead": 7, "least": 7, "left": 7, "len": 7, "length": 7, "level": 18, "licens": 17, "like": 12, "limit": 7, "line": 7, "list": [2, 4, 7, 11], "live": 8, "ljust": 7, "load": [11, 12], "locat": 12, "logic": [2, 11], "lookup": 7, "lookuperror": 7, "lower": 7, "lowercas": 7, "lowest": 7, "lstrip": 7, "mai": [1, 7], "main": [12, 13, 14], "mainli": 7, "make": [5, 7], "maketran": 7, "manag": [2, 12, 13, 15], "mani": 12, "manipul": 2, "manner": 7, "map": [7, 15], "mark": [10, 12, 14], "markup": 14, "maximum": 7, "maxsplit": 7, "mean": 7, "meet": 12, "metarowdao": 11, "method": [2, 4, 5, 10, 11, 12, 14, 15], "mode": 1, "model": [2, 11], "modul": [0, 1, 2, 3, 5, 6, 7, 8, 11, 13], "more": 7, "multipl": 5, "must": [7, 10, 12], "mytableview": [], "mytablewholepag": 4, "n": 7, "name": [2, 4, 7, 11, 12, 14], "nameview": 4, "natur": 7, "need": 10, "nest": 12, "never": 7, "new": [7, 13], "non": 7, "none": [7, 10, 11, 12], "notat": 7, "note": 7, "notimplementederror": [4, 5, 10, 12, 15], "number": 7, "numer": 7, "object": [2, 4, 5, 10, 11, 12, 14, 15], "occurr": 7, "old": 7, "older": 7, "one": [7, 11, 12], "ones": 7, "onli": 7, "oop": 17, "oper": 7, "option": [7, 10, 11, 12], "ordin": 7, "origin": 7, "other": [4, 7], "otherwis": [1, 7], "output": [4, 5, 10, 11, 12, 15], "overlap": 7, "overridden": [10, 12], "own": 7, "packag": 18, "pad": 7, "paradigm": 17, "paramet": [2, 4, 5, 10, 11, 12, 14, 15], "parent": [10, 11, 12], "part": 7, "particularli": [10, 12], "partit": 7, "pass": [4, 5, 15], "patch": 7, "path": [4, 11], "pattern": 17, "pend": [10, 11], "pip": 1, "place": [3, 4, 12], "platform": 13, "point": 7, "posit": [7, 10], "possibl": 7, "post": 7, "power": [11, 16], "pq": 7, "prefix": [7, 11], "prepar": [11, 12], "present": 7, "print": 18, "printabl": 7, "process": [10, 12], "programmat": 10, "project": [1, 12, 15], "properti": [2, 11, 12], "provid": [1, 2, 5, 7, 10, 11, 12, 13, 14, 15], "proxi": [5, 13], "punctuat": 7, "purpos": [1, 3, 7, 10, 12, 13], "put": 7, "pydant": [2, 11], "python": [7, 18], "queri": 2, "r": 7, "rais": [2, 4, 5, 7, 10, 11, 12, 15], "rang": 7, "record": 2, "refer": 7, "regist": [3, 4, 5, 7, 8, 14, 15], "register_error": 7, "regular": [5, 7], "relat": 8, "remain": 7, "remov": 7, "removeprefix": 7, "removesuffix": 7, "render": [4, 5, 8, 10, 11, 12, 14, 15, 17], "replac": 7, "repo": [], "repr": 7, "repres": [7, 11], "represent": [2, 10, 11], "reserv": 7, "respons": 15, "rest": 7, "result": [5, 7, 11, 12], "retriev": [2, 4, 5, 11, 12, 13, 14, 15], "return": [2, 4, 5, 7, 10, 11, 12, 13, 14, 15], "reusabl": 11, "rfind": 7, "right": 7, "rindex": 7, "rjust": 7, "rout": [8, 15], "row": 11, "rowdao": 11, "rpartit": 7, "rsplit": 7, "rstrip": 7, "rule": 5, "run": 13, "safe": [7, 14], "same": 7, "scheme": 7, "search": 7, "sep": 7, "separ": 7, "server": [1, 10, 17], "session": 2, "set": [1, 2, 7, 8, 11, 13], "set_joop_env": 13, "should": 15, "side": 17, "size": 7, "skeleton": [], "slice": 7, "softwar": 17, "someth": [10, 12], "sourc": [1, 2, 4, 5, 7, 10, 11, 12, 13, 14, 15, 18], "space": 7, "special": 10, "specif": [1, 4, 7, 11, 12, 14], "specifi": [4, 5, 7, 11, 15], "split": 7, "splitlin": 7, "sql": [2, 11], "sqldao": 2, "sqlmodel": [2, 11], "sqlrowdao": 11, "standard": [7, 10], "start": [1, 7], "start_test_flask": 1, "startswith": 7, "static": [7, 14], "stop": 7, "storag": 2, "store": [11, 12, 13, 14], "str": [2, 4, 5, 7, 10, 11, 12, 14, 15], "strict": 7, "string": [4, 5, 7, 10, 11, 12, 14, 15], "strip": 7, "structur": [10, 11, 12, 14], "sub": [7, 10, 11, 12], "subclass": [2, 10, 11, 12], "subcompon": [4, 5, 10, 11, 12, 14, 15], "subcomponent_nam": 14, "substitut": 7, "substr": 7, "suffix": 7, "suitabl": 7, "support": 4, "swapcas": 7, "t": [7, 14], "tab": 7, "tabl": [7, 11, 16], "table_head": 11, "tablecompon": [], "tabsiz": 7, "templat": [8, 11, 12, 13], "term": 12, "test": [1, 3, 7], "text": 7, "thei": [7, 10, 12], "them": [2, 10], "thi": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15], "third": 7, "though": 1, "three": 7, "through": [11, 12], "tie": 12, "titl": 7, "titlecas": 7, "to_dict": [2, 11], "too": 7, "top": 18, "trace": 7, "trail": 7, "transform": 10, "translat": 7, "true": [7, 14], "truncat": 7, "try": 7, "tupl": 7, "turn": 4, "two": [7, 14], "type": [2, 3, 4, 5, 7, 10, 11, 12, 14, 15], "typeerror": [2, 11], "typic": 2, "u": 7, "ui": [8, 10], "uncas": 7, "under": 14, "underli": [2, 11], "unicod": 7, "unicodeencodeerror": 7, "unless": 7, "untouch": 7, "up": 8, "upper": 7, "uppercas": 7, "url": [4, 5], "us": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15], "usabl": 7, "usag": [1, 7, 10, 12, 13, 14], "utf": 7, "valid": [4, 5, 7, 15], "valu": [7, 11, 12, 13], "valueerror": [2, 7, 11, 12], "var": 16, "variabl": [12, 13], "version": [7, 17], "via": [7, 12], "view": [3, 4, 5, 8], "view_func": [5, 15], "wai": [7, 10], "we": 3, "web": [4, 5, 17], "webserv": [1, 8, 15], "well": 7, "when": [7, 10, 12], "where": [7, 8, 11, 12], "whether": [7, 10, 11, 12, 15], "which": 7, "whitespac": 7, "whose": 7, "width": 7, "within": [7, 13, 14], "without": 13, "won": 14, "word": 7, "work": [7, 10, 12, 14], "world": 18, "wrapper": 2, "x": 7, "xmlcharrefreplac": 7, "y": 7, "your": [1, 5], "zero": 7, "zfill": 7}, "titles": ["joop.cli", "joop.cli.test_flask", "joop.dao", "joop.flask", "joop.flask.example", "joop.flask.flask_view", "joop.http", "joop.http.methods", "joop.web", "joop.web.alpine_js", "joop.web.component", "joop.web.components", "joop.web.html", "joop.web.j_env", "joop.web.templater", "joop.web.view", "Changelog", "joop documentation", "API Documentation"], "titleterms": {"0": 16, "02": 16, "03": 16, "1": 16, "12": [], "2": 16, "2025": [], "2026": 16, "29": [], "alpine_j": 9, "api": 18, "changelog": 16, "cli": [0, 1], "compon": [10, 11], "content": 17, "dao": 2, "document": [17, 18], "exampl": 4, "featur": 17, "flask": [3, 4, 5], "flask_view": 5, "html": 12, "http": [6, 7], "j_env": 13, "joop": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "method": 7, "templat": 14, "test_flask": 1, "version": 16, "view": 15, "web": [8, 9, 10, 11, 12, 13, 14, 15], "welcom": 17}})
@@ -1,6 +1,10 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ Version 0.0.2 (2026-02-03)
5
+ --------------------------
6
+ - Var bug fixes.
7
+
4
8
  Version 0.0.1 (2026-02-02)
5
9
  --------------------------
6
10
  - Initial version. Features AlpineJS-powered table.
@@ -120,10 +120,13 @@ class MyTablePage(HTMLComponent):
120
120
  Represents subcomponents of the `MyTablePage`.
121
121
 
122
122
  Attributes:
123
- my_t (MyTableComponent): An instance of the `MyTableComponent`.
123
+ table (MyTableComponent): An instance of the `MyTableComponent`.
124
124
  """
125
- my_t = MyTableComponent
126
- table : my_t = my_t()
125
+ table: MyTableComponent
126
+
127
+ def __init__(self):
128
+ super().__init__()
129
+ self.table = MyTableComponent()
127
130
 
128
131
  class MyTableWholePage(View):
129
132
  """
@@ -134,7 +137,7 @@ class MyTableWholePage(View):
134
137
  """
135
138
  _component_type = MyTablePage
136
139
 
137
- class Endpoint():
140
+ class Endpoint(View.Endpoint):
138
141
  """
139
142
  Defines the endpoint for the `MyTableWholePage` view.
140
143
 
@@ -15,7 +15,7 @@ class HelloView(View):
15
15
 
16
16
  _component_type = HelloWorld
17
17
 
18
- class Endpoint():
18
+ class Endpoint(View.Endpoint):
19
19
  _url = HELLO_ROOT
20
20
  _name = HELLO_DESIG
21
21
  _methods = [HttpMethod.GET.value]
@@ -24,7 +24,7 @@ class NameView(View):
24
24
 
25
25
  _component_type = HelloName
26
26
 
27
- class Endpoint():
27
+ class Endpoint(View.Endpoint):
28
28
  _url = HELLO_ROOT + "/<string:first_name>/<string:last_name>"
29
29
  _name = HELLO_DESIG + "_name"
30
30
  _methods = [HttpMethod.GET.value]
@@ -204,7 +204,6 @@ class HTMLComponent(Component, HTML):
204
204
  'sc' : self.subs.get_rendered(),
205
205
  'data' : asdict(self.data)
206
206
  }
207
- print(_joop)
208
207
  return self._loaded_template.render(
209
208
  joop = _joop
210
209
  )
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "joop"
3
- version = "0.0.1"
3
+ version = "0.0.2"
4
4
  description = "Justin's Object-Oriented Paradigms"
5
5
  authors = [
6
6
  {name = "Justin Rushin"}
@@ -28,7 +28,7 @@ keywords = ["object-oriented programming", "DAO", "HTMX", "AlpineJS", "Python"]
28
28
 
29
29
  [project.urls]
30
30
  bugs = "https://github.com/rushinjgr/joop/issues"
31
- changelog = "https://github.com/rushinjgr/joop/blob/master/python/docs/changelog.md"
31
+ changelog = "https://github.com/rushinjgr/joop/blob/master/python/docs/source/changelog.rst"
32
32
  homepage = "https://github.com/rushinjgr/joop"
33
33
  source = "https://github.com/rushinjgr/joop"
34
34
 
@@ -1 +0,0 @@
1
- Search.setIndex({"alltitles": {"API Documentation": [[18, null]], "Changelog": [[16, null]], "Contents:": [[17, null]], "Features": [[17, "features"]], "Version 0.0.1 (2026-02-02)": [[16, "version-0-0-1-2026-02-02"]], "Welcome to joop": [[17, "welcome-to-joop"]], "joop documentation": [[17, null]], "joop.cli": [[0, null]], "joop.cli.test_flask": [[1, null]], "joop.dao": [[2, null]], "joop.flask": [[3, null]], "joop.flask.example": [[4, null]], "joop.flask.flask_view": [[5, null]], "joop.http": [[6, null]], "joop.http.methods": [[7, null]], "joop.web": [[8, null]], "joop.web.alpine_js": [[9, null]], "joop.web.component": [[10, null]], "joop.web.components": [[11, null]], "joop.web.html": [[12, null]], "joop.web.j_env": [[13, null]], "joop.web.templater": [[14, null]], "joop.web.view": [[15, null]]}, "docnames": ["_autosummary/joop.cli", "_autosummary/joop.cli.test_flask", "_autosummary/joop.dao", "_autosummary/joop.flask", "_autosummary/joop.flask.example", "_autosummary/joop.flask.flask_view", "_autosummary/joop.http", "_autosummary/joop.http.methods", "_autosummary/joop.web", "_autosummary/joop.web.alpine_js", "_autosummary/joop.web.component", "_autosummary/joop.web.components", "_autosummary/joop.web.html", "_autosummary/joop.web.j_env", "_autosummary/joop.web.templater", "_autosummary/joop.web.view", "changelog", "index", "modules"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["_autosummary/joop.cli.rst", "_autosummary/joop.cli.test_flask.rst", "_autosummary/joop.dao.rst", "_autosummary/joop.flask.rst", "_autosummary/joop.flask.example.rst", "_autosummary/joop.flask.flask_view.rst", "_autosummary/joop.http.rst", "_autosummary/joop.http.methods.rst", "_autosummary/joop.web.rst", "_autosummary/joop.web.alpine_js.rst", "_autosummary/joop.web.component.rst", "_autosummary/joop.web.components.rst", "_autosummary/joop.web.html.rst", "_autosummary/joop.web.j_env.rst", "_autosummary/joop.web.templater.rst", "_autosummary/joop.web.view.rst", "changelog.rst", "index.rst", "modules.rst"], "indexentries": {}, "objects": {"": [[18, 0, 0, "-", "joop"]], "joop": [[0, 0, 0, "-", "cli"], [2, 0, 0, "-", "dao"], [3, 0, 0, "-", "flask"], [18, 1, 1, "", "hello_world"], [6, 0, 0, "-", "http"], [8, 0, 0, "-", "web"]], "joop.cli": [[1, 0, 0, "-", "test_flask"]], "joop.cli.test_flask": [[1, 1, 1, "", "start_test_flask"]], "joop.dao": [[2, 2, 1, "", "DAO"], [2, 2, 1, "", "SQLDAO"]], "joop.dao.DAO": [[2, 3, 1, "", "_modeltype"], [2, 4, 1, "", "from_model"], [2, 4, 1, "id0", "get_model_fields"], [2, 5, 1, "", "model"], [2, 4, 1, "id1", "to_dict"]], "joop.dao.SQLDAO": [[2, 3, 1, "", "_modeltype"], [2, 4, 1, "", "from_model"], [2, 4, 1, "", "get_all"], [2, 4, 1, "", "get_model_fields"], [2, 5, 1, "", "model"], [2, 4, 1, "", "to_dict"]], "joop.flask": [[3, 3, 1, "", "app"], [4, 0, 0, "-", "example"], [5, 0, 0, "-", "flask_view"]], "joop.flask.example": [[4, 2, 1, "", "FlaskHello"], [4, 2, 1, "", "FlaskName"], [4, 2, 1, "", "FlaskTablePage"]], "joop.flask.example.FlaskHello": [[4, 2, 1, "", "Endpoint"], [4, 4, 1, "", "add_to_app"], [4, 4, 1, "", "get_jinja_env"], [4, 4, 1, "", "render"]], "joop.flask.example.FlaskName": [[4, 2, 1, "", "Endpoint"], [4, 4, 1, "", "add_to_app"], [4, 4, 1, "", "get_jinja_env"], [4, 4, 1, "", "render"]], "joop.flask.example.FlaskTablePage": [[4, 2, 1, "", "Endpoint"], [4, 4, 1, "", "add_to_app"], [4, 4, 1, "", "get_jinja_env"], [4, 4, 1, "", "render"]], "joop.flask.example.FlaskTablePage.Endpoint": [[4, 3, 1, "", "_methods"], [4, 3, 1, "", "_name"], [4, 3, 1, "", "_url"]], "joop.flask.flask_view": [[5, 2, 1, "", "FlaskView"]], "joop.flask.flask_view.FlaskView": [[5, 2, 1, "", "Endpoint"], [5, 4, 1, "", "_get_jinja_env"], [5, 4, 1, "", "add_to_app"], [5, 4, 1, "", "get_jinja_env"], [5, 4, 1, "", "render"]], "joop.http": [[7, 0, 0, "-", "methods"]], "joop.http.methods": [[7, 2, 1, "", "HttpMethod"]], "joop.http.methods.HttpMethod": [[7, 3, 1, "", "CONNECT"], [7, 3, 1, "", "DELETE"], [7, 3, 1, "", "GET"], [7, 3, 1, "", "HEAD"], [7, 3, 1, "", "OPTIONS"], [7, 3, 1, "", "PATCH"], [7, 3, 1, "", "POST"], [7, 3, 1, "", "PUT"], [7, 3, 1, "", "TRACE"], [7, 4, 1, "", "capitalize"], [7, 4, 1, "", "casefold"], [7, 4, 1, "", "center"], [7, 4, 1, "", "count"], [7, 4, 1, "", "description"], [7, 4, 1, "", "encode"], [7, 4, 1, "", "endswith"], [7, 4, 1, "", "expandtabs"], [7, 4, 1, "", "find"], [7, 4, 1, "", "format"], [7, 4, 1, "", "format_map"], [7, 4, 1, "", "index"], [7, 4, 1, "", "isalnum"], [7, 4, 1, "", "isalpha"], [7, 4, 1, "", "isascii"], [7, 4, 1, "", "isdecimal"], [7, 4, 1, "", "isdigit"], [7, 4, 1, "", "isidentifier"], [7, 4, 1, "", "islower"], [7, 4, 1, "", "isnumeric"], [7, 4, 1, "", "isprintable"], [7, 4, 1, "", "isspace"], [7, 4, 1, "", "istitle"], [7, 4, 1, "", "isupper"], [7, 4, 1, "", "join"], [7, 4, 1, "", "ljust"], [7, 4, 1, "", "lower"], [7, 4, 1, "", "lstrip"], [7, 4, 1, "", "maketrans"], [7, 4, 1, "", "partition"], [7, 4, 1, "", "removeprefix"], [7, 4, 1, "", "removesuffix"], [7, 4, 1, "", "replace"], [7, 4, 1, "", "rfind"], [7, 4, 1, "", "rindex"], [7, 4, 1, "", "rjust"], [7, 4, 1, "", "rpartition"], [7, 4, 1, "", "rsplit"], [7, 4, 1, "", "rstrip"], [7, 4, 1, "", "split"], [7, 4, 1, "", "splitlines"], [7, 4, 1, "", "startswith"], [7, 4, 1, "", "strip"], [7, 4, 1, "", "swapcase"], [7, 4, 1, "", "title"], [7, 4, 1, "", "translate"], [7, 4, 1, "", "upper"], [7, 4, 1, "", "zfill"]], "joop.web": [[10, 0, 0, "-", "component"], [11, 0, 0, "-", "components"], [12, 0, 0, "-", "html"], [13, 0, 0, "-", "j_env"], [14, 0, 0, "-", "templater"], [15, 0, 0, "-", "view"]], "joop.web.component": [[10, 2, 1, "", "Component"], [10, 2, 1, "", "JSONComponent"]], "joop.web.component.Component": [[10, 2, 1, "", "Data"], [10, 2, 1, "", "Inputs"], [10, 2, 1, "", "SubComponents"], [10, 4, 1, "", "__init__"], [10, 4, 1, "", "_process_inputs"], [10, 3, 1, "id0", "data"], [10, 3, 1, "id1", "inputs"], [10, 4, 1, "id2", "render"], [10, 3, 1, "id3", "subs"]], "joop.web.component.Component.Data": [[10, 4, 1, "", "__init__"], [10, 3, 1, "", "_isabstract"], [10, 3, 1, "", "from_inputs"], [10, 3, 1, "", "func"]], "joop.web.component.Component.Inputs": [[10, 4, 1, "", "__init__"]], "joop.web.component.Component.SubComponents": [[10, 4, 1, "", "__init__"]], "joop.web.component.JSONComponent": [[10, 2, 1, "", "Data"], [10, 2, 1, "", "Inputs"], [10, 2, 1, "", "SubComponents"], [10, 4, 1, "", "__init__"], [10, 3, 1, "", "data"], [10, 3, 1, "", "inputs"], [10, 4, 1, "", "render"], [10, 3, 1, "", "subs"]], "joop.web.component.JSONComponent.Data": [[10, 4, 1, "", "__init__"], [10, 3, 1, "", "_isabstract"], [10, 3, 1, "", "from_inputs"], [10, 3, 1, "", "func"]], "joop.web.component.JSONComponent.Inputs": [[10, 4, 1, "", "__init__"]], "joop.web.component.JSONComponent.SubComponents": [[10, 4, 1, "", "__init__"]], "joop.web.components": [[11, 2, 1, "", "AlpineTableComponent"], [11, 2, 1, "", "MetaRowDAO"], [11, 2, 1, "", "RowDAO"], [11, 2, 1, "", "SQLRowDAO"]], "joop.web.components.AlpineTableComponent": [[11, 2, 1, "", "Data"], [11, 2, 1, "", "Inputs"], [11, 2, 1, "", "SubComponents"], [11, 4, 1, "", "__init__"], [11, 3, 1, "", "_row_type"], [11, 3, 1, "", "_template_location"], [11, 3, 1, "", "_use_prefix_template"], [11, 3, 1, "", "data"], [11, 3, 1, "", "inputs"], [11, 4, 1, "", "render"], [11, 3, 1, "", "subs"]], "joop.web.components.AlpineTableComponent.Data": [[11, 4, 1, "", "__init__"], [11, 3, 1, "", "_row_type"], [11, 4, 1, "", "from_inputs"], [11, 3, 1, "id0", "rows"], [11, 3, 1, "id1", "table_headers"]], "joop.web.components.AlpineTableComponent.Inputs": [[11, 4, 1, "", "__init__"]], "joop.web.components.AlpineTableComponent.SubComponents": [[11, 4, 1, "", "__init__"], [11, 5, 1, "", "get_all"], [11, 4, 1, "", "get_rendered"], [11, 4, 1, "", "render"]], "joop.web.components.MetaRowDAO": [[11, 4, 1, "", "from_model"], [11, 4, 1, "", "get_model_fields"], [11, 5, 1, "", "model"], [11, 4, 1, "", "to_dict"]], "joop.web.components.RowDAO": [[11, 4, 1, "", "from_model"], [11, 4, 1, "", "get_model_fields"], [11, 5, 1, "", "model"], [11, 4, 1, "", "to_dict"]], "joop.web.components.SQLRowDAO": [[11, 4, 1, "", "from_model"], [11, 4, 1, "", "get_model_fields"], [11, 5, 1, "", "model"], [11, 4, 1, "", "to_dict"]], "joop.web.html": [[12, 2, 1, "", "HTML"], [12, 2, 1, "", "HTMLComponent"]], "joop.web.html.HTML": [[12, 4, 1, "", "__init__"], [12, 4, 1, "", "_get_template"], [12, 3, 1, "", "_jinja_env"], [12, 3, 1, "", "_template_location"]], "joop.web.html.HTMLComponent": [[12, 2, 1, "", "Data"], [12, 2, 1, "", "Inputs"], [12, 2, 1, "", "SubComponents"], [12, 4, 1, "", "__init__"], [12, 4, 1, "", "_load_template"], [12, 3, 1, "", "_loaded_template"], [12, 3, 1, "", "data"], [12, 3, 1, "", "inputs"], [12, 4, 1, "", "render"], [12, 3, 1, "", "subs"]], "joop.web.html.HTMLComponent.Data": [[12, 4, 1, "", "__init__"], [12, 3, 1, "", "_isabstract"], [12, 3, 1, "", "from_inputs"], [12, 3, 1, "", "func"]], "joop.web.html.HTMLComponent.Inputs": [[12, 4, 1, "", "__init__"]], "joop.web.html.HTMLComponent.SubComponents": [[12, 4, 1, "", "__init__"], [12, 5, 1, "", "get_all"], [12, 4, 1, "id0", "get_rendered"], [12, 4, 1, "id3", "render"]], "joop.web.j_env": [[13, 1, 1, "", "get_joop_env"], [13, 1, 1, "", "set_joop_env"]], "joop.web.templater": [[14, 2, 1, "", "EnvironmentFactory"]], "joop.web.templater.EnvironmentFactory": [[14, 4, 1, "id0", "create_environment"], [14, 4, 1, "", "data"], [14, 4, 1, "", "subcomponent"]], "joop.web.view": [[15, 2, 1, "", "View"]], "joop.web.view.View": [[15, 2, 1, "", "Endpoint"], [15, 3, 1, "", "_args_to_inputs"], [15, 3, 1, "", "_as_response"], [15, 3, 1, "", "_component_type"], [15, 3, 1, "", "_get_default_subs"], [15, 4, 1, "", "_get_inputs"], [15, 4, 1, "", "_get_jinja_env"], [15, 4, 1, "", "_get_subs"], [15, 4, 1, "", "add_to_app"], [15, 4, 1, "id0", "get_jinja_env"], [15, 4, 1, "id1", "render"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "property", "Python property"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:property"}, "terms": {"": [4, 5, 7, 10, 15], "0": 17, "0000": 7, "007f": 7, "02": 17, "0x7f2aec7663e0": [], "1": [7, 17], "12": [], "2": 17, "2025": [], "2026": 17, "29": [], "3": 7, "8": 7, "A": [2, 5, 7, 10, 11, 12, 13, 14], "If": [1, 2, 4, 5, 7, 11, 12, 14, 15], "In": 7, "It": [2, 10, 11, 12, 14], "Its": 12, "That": 3, "The": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15], "There": 12, "With": 7, "__getitem__": 7, "__init__": [10, 11, 12], "_add_to_app": [4, 5, 15], "_args_to_input": 15, "_as_respons": 15, "_component_typ": 15, "_data": [10, 12], "_from_input": [10, 12], "_get_default_sub": 15, "_get_input": 15, "_get_jinja_env": [5, 15], "_get_joop": 14, "_get_sub": 15, "_get_templ": 12, "_isabstract": [10, 12], "_jinja_env": 12, "_load_templ": 12, "_loaded_templ": 12, "_method": 4, "_modeltyp": [2, 11], "_my_abstract_class_method": [10, 12], "_name": 4, "_process_input": 10, "_row_typ": 11, "_template_loc": [11, 12], "_url": 4, "_use_prefix_templ": 11, "ab": 7, "abcmeta": [10, 12], "abstract": [2, 4, 5, 10, 12, 15], "abstractmethod": [10, 12], "access": [2, 5, 11, 14], "achiev": 12, "ad": 5, "add": [4, 5, 15], "add_to_app": [4, 5, 15], "addit": [2, 10, 11, 12], "after": 7, "alias": [2, 11], "all": [2, 7, 8, 10, 11, 12], "allow": [10, 12], "alpha": 7, "alphabet": 7, "alpin": 11, "alpinedefinit": [], "alpinej": [11, 16, 17], "alpinetablecompon": 11, "also": [7, 11], "an": [2, 7, 11, 12, 13, 14, 17], "ani": [2, 5, 7, 10, 11, 12], "apach": 17, "api": [8, 17], "app": [1, 3, 4, 5, 15], "applic": [3, 4, 5, 15], "ar": [3, 7, 10, 11, 12, 15], "arbitrari": 14, "arg": [7, 10, 13], "argument": [4, 5, 7, 10, 11, 12, 14, 15], "around": 2, "as_subcompon": [11, 12], "ascii": 7, "associ": [4, 5, 14, 15], "assum": 7, "ata": 14, "autoescap": 14, "automat": 15, "avail": 12, "backbon": 10, "backend": 8, "base": [2, 4, 5, 7, 10, 11, 12, 14, 15], "basemodel": [2, 11], "been": 7, "befor": [7, 10], "begin": 7, "behavior": 12, "between": [2, 7], "bool": [7, 10, 11, 12, 15], "both": 12, "boundari": 7, "brace": 7, "break": 7, "busi": 2, "call": [1, 4, 5, 7, 15], "callabl": [5, 10, 12, 15], "can": [5, 7, 11], "capit": 7, "case": 7, "casefold": 7, "caseless": 7, "center": 7, "changelog": 17, "char": 7, "charact": 7, "cl": [10, 12], "class": [2, 4, 5, 7, 10, 11, 12, 14, 15], "classmethod": [2, 4, 5, 10, 11, 12, 15], "cli": 17, "code": [2, 7], "codec": 7, "compar": 7, "comparison": 7, "compat": [5, 7], "compon": [4, 5, 8, 12, 15, 17], "concaten": 7, "concret": 11, "configur": [3, 4, 5, 14, 15], "connect": 7, "consid": 7, "consol": 18, "construct": 2, "contain": [7, 13, 14], "content": [12, 14], "context": [5, 10, 14], "convert": [2, 7, 11], "copi": 7, "correspond": 7, "count": 7, "creat": [2, 5, 10, 11, 12, 14], "create_environ": 14, "cross": 13, "ctx": 14, "current": [5, 13], "custom": 14, "dao": [11, 17], "data": [2, 7, 10, 11, 12, 14], "databas": 2, "dataclass": [10, 12], "debug": 1, "decim": 7, "def": [7, 10, 12], "default": [2, 3, 4, 7, 15], "defin": [2, 4, 8, 10, 11, 12, 14, 15], "definit": 4, "definition_nam": [], "delet": 7, "delimit": 7, "depend": 1, "deriv": [2, 11], "describ": 7, "descript": 7, "descriptor": [10, 12], "design": 10, "desir": 1, "determin": [11, 15], "develop": [1, 3, 11], "dict": [2, 11, 12, 14], "dictionari": [2, 7, 11, 12, 14], "digit": 7, "directori": 11, "discard": 7, "displai": 11, "display_text": [], "do": 5, "doe": [2, 11, 14], "done": 7, "dynam": [10, 12], "each": [7, 11, 12], "element": 10, "emphasi": 17, "empti": [7, 14], "enabl": 12, "encod": 7, "end": 7, "endpoint": [4, 5, 15], "endswith": 7, "ensur": [1, 10, 11, 12, 14], "enum": 7, "enumer": 7, "env": [1, 3, 5, 12, 14], "environ": [1, 3, 4, 5, 11, 12, 13, 14, 15], "environmentfactori": 14, "equal": 7, "error": 7, "especi": [2, 12], "establish": 15, "etc": 8, "everyth": 12, "ex": [5, 13], "exampl": [3, 7, 10, 12, 14], "exist": [2, 14], "expand": 7, "expandtab": 7, "express": 7, "extend": [2, 11, 12], "f": 7, "factori": 14, "failur": 7, "fals": [7, 11, 12], "featur": 16, "fetch": 14, "field": [2, 7, 11], "file": 12, "fill": 7, "fillchar": 7, "find": 7, "first": 7, "flag": [10, 12], "flask": [1, 13, 17], "flaskhello": [4, 5], "flasknam": 4, "flasktabl": [], "flasktablepag": 4, "flaskview": [4, 5], "follow": 7, "format": 7, "format_map": 7, "found": [7, 14], "framework": 15, "free": 17, "from": [1, 2, 5, 7, 10, 11, 12, 14], "from_input": [10, 11, 12], "from_model": [2, 11], "front": 7, "func": [10, 12], "function": [1, 5, 8, 10, 12, 13, 14], "gener": [10, 11], "get": [2, 7, 8, 11, 13], "get_al": [2, 11, 12], "get_jinja_env": [4, 5, 15], "get_joop_env": 13, "get_model_field": [2, 11], "get_rend": [11, 12], "given": [2, 7, 10, 12], "global": 13, "goal": 12, "ha": 7, "handl": [7, 10, 11], "have": [2, 7, 11], "head": 7, "header": 11, "hello": 18, "hello_world": [17, 18], "helloview": [4, 5], "here": 8, "highest": 7, "highli": 10, "how": 15, "html": [8, 11, 14, 17], "htmlcompon": [11, 12], "htmx": 17, "http": [4, 17], "httpmethod": 7, "i": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15], "identifi": 7, "ignor": 7, "implement": [1, 7, 10, 11, 12, 14], "import": [1, 3, 13, 14], "impos": 12, "includ": [2, 5, 7, 10, 11], "incomplet": [4, 5, 15], "index": 7, "indic": [10, 12], "inherit": [5, 10], "init_j": [], "initi": [3, 10, 11, 12, 16], "initj": [], "input": [4, 5, 10, 11, 12, 15], "insert": 7, "insid": 14, "instal": 1, "instanc": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15], "instead": [7, 15], "int": 7, "integ": 7, "integr": [5, 12, 15], "intent": 3, "intention": 7, "interact": [2, 14], "interfac": 13, "interpret": 7, "invalid": [4, 5, 15], "isalnum": 7, "isalpha": 7, "isascii": 7, "isdecim": 7, "isdigit": 7, "isidentifi": 7, "iskeyword": 7, "islow": 7, "isn": 14, "isnumer": 7, "isprint": 7, "isspac": 7, "istitl": 7, "isupp": 7, "iter": [7, 11, 12], "its": [2, 7, 12], "itself": 7, "j": 11, "j_env": [11, 12], "jinja": [1, 5, 12, 13, 14], "jinja2": [3, 4, 5, 11, 12, 14, 15], "jinjaenviron": 14, "join": 7, "joop": 18, "joop_env": 13, "json": 10, "jsoncompon": 10, "justifi": 7, "keepend": 7, "kei": [2, 7, 11, 12, 14], "keyword": [4, 5, 7, 10, 11, 12, 14, 15], "kwarg": [4, 5, 7, 10, 11, 12, 14, 15], "layer": [2, 13], "lead": 7, "least": 7, "left": 7, "len": 7, "length": 7, "level": 18, "licens": 17, "like": 12, "limit": 7, "line": 7, "list": [2, 4, 7, 11], "live": 8, "ljust": 7, "load": [11, 12], "locat": 12, "logic": [2, 11], "lookup": 7, "lookuperror": 7, "lower": 7, "lowercas": 7, "lowest": 7, "lstrip": 7, "mai": [1, 7], "main": [12, 13, 14], "mainli": 7, "make": [5, 7], "maketran": 7, "manag": [2, 12, 13, 15], "mani": 12, "manipul": 2, "manner": 7, "map": [7, 15], "mark": [10, 12, 14], "markup": 14, "maximum": 7, "maxsplit": 7, "mean": 7, "meet": 12, "metarowdao": 11, "method": [2, 4, 5, 10, 11, 12, 14, 15], "mode": 1, "model": [2, 11], "modul": [0, 1, 2, 3, 5, 6, 7, 8, 11, 13], "more": 7, "multipl": 5, "must": [7, 10, 12], "mytableview": [], "mytablewholepag": 4, "n": 7, "name": [2, 4, 7, 11, 12, 14], "nameview": 4, "natur": 7, "need": 10, "nest": 12, "never": 7, "new": [7, 13], "non": 7, "none": [7, 10, 11, 12], "notat": 7, "note": 7, "notimplementederror": [4, 5, 10, 12, 15], "number": 7, "numer": 7, "object": [2, 4, 5, 10, 11, 12, 14, 15], "occurr": 7, "old": 7, "older": 7, "one": [7, 11, 12], "ones": 7, "onli": 7, "oop": 17, "oper": 7, "option": [7, 10, 11, 12], "ordin": 7, "origin": 7, "other": [4, 7], "otherwis": [1, 7], "output": [4, 5, 10, 11, 12, 15], "overlap": 7, "overridden": [10, 12], "own": 7, "packag": 18, "pad": 7, "paradigm": 17, "paramet": [2, 4, 5, 10, 11, 12, 14, 15], "parent": [10, 11, 12], "part": 7, "particularli": [10, 12], "partit": 7, "pass": [4, 5, 15], "patch": 7, "path": [4, 11], "pattern": 17, "pend": [10, 11], "pip": 1, "place": [3, 4, 12], "platform": 13, "point": 7, "posit": [7, 10], "possibl": 7, "post": 7, "power": [11, 16], "pq": 7, "prefix": [7, 11], "prepar": [11, 12], "present": 7, "print": 18, "printabl": 7, "process": [10, 12], "programmat": 10, "project": [1, 12, 15], "properti": [2, 11, 12], "provid": [1, 2, 5, 7, 10, 11, 12, 13, 14, 15], "proxi": [5, 13], "punctuat": 7, "purpos": [1, 3, 7, 10, 12, 13], "put": 7, "pydant": [2, 11], "python": [7, 18], "queri": 2, "r": 7, "rais": [2, 4, 5, 7, 10, 11, 12, 15], "rang": 7, "record": 2, "refer": 7, "regist": [3, 4, 5, 7, 8, 14, 15], "register_error": 7, "regular": [5, 7], "relat": 8, "remain": 7, "remov": 7, "removeprefix": 7, "removesuffix": 7, "render": [4, 5, 8, 10, 11, 12, 14, 15, 17], "replac": 7, "repo": [], "repr": 7, "repres": [7, 11], "represent": [2, 10, 11], "reserv": 7, "respons": 15, "rest": 7, "result": [5, 7, 11, 12], "retriev": [2, 4, 5, 11, 12, 13, 14, 15], "return": [2, 4, 5, 7, 10, 11, 12, 13, 14, 15], "reusabl": 11, "rfind": 7, "right": 7, "rindex": 7, "rjust": 7, "rout": [8, 15], "row": 11, "rowdao": 11, "rpartit": 7, "rsplit": 7, "rstrip": 7, "rule": 5, "run": 13, "safe": [7, 14], "same": 7, "scheme": 7, "search": 7, "sep": 7, "separ": 7, "server": [1, 10, 17], "session": 2, "set": [1, 2, 7, 8, 11, 13], "set_joop_env": 13, "should": 15, "side": 17, "size": 7, "skeleton": [], "slice": 7, "softwar": 17, "someth": [10, 12], "sourc": [1, 2, 4, 5, 7, 10, 11, 12, 13, 14, 15, 18], "space": 7, "special": 10, "specif": [1, 4, 7, 11, 12, 14], "specifi": [4, 5, 7, 11, 15], "split": 7, "splitlin": 7, "sql": [2, 11], "sqldao": 2, "sqlmodel": [2, 11], "sqlrowdao": 11, "standard": [7, 10], "start": [1, 7], "start_test_flask": 1, "startswith": 7, "static": [7, 14], "stop": 7, "storag": 2, "store": [11, 12, 13, 14], "str": [2, 4, 5, 7, 10, 11, 12, 14, 15], "strict": 7, "string": [4, 5, 7, 10, 11, 12, 14, 15], "strip": 7, "structur": [10, 11, 12, 14], "sub": [7, 10, 11, 12], "subclass": [2, 10, 11, 12], "subcompon": [4, 5, 10, 11, 12, 14, 15], "subcomponent_nam": 14, "substitut": 7, "substr": 7, "suffix": 7, "suitabl": 7, "support": 4, "swapcas": 7, "t": [7, 14], "tab": 7, "tabl": [7, 11, 16], "table_head": 11, "tablecompon": [], "tabsiz": 7, "templat": [8, 11, 12, 13], "term": 12, "test": [1, 3, 7], "text": 7, "thei": [7, 10, 12], "them": [2, 10], "thi": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15], "third": 7, "though": 1, "three": 7, "through": [11, 12], "tie": 12, "titl": 7, "titlecas": 7, "to_dict": [2, 11], "too": 7, "top": 18, "trace": 7, "trail": 7, "transform": 10, "translat": 7, "true": [7, 14], "truncat": 7, "try": 7, "tupl": 7, "turn": 4, "two": [7, 14], "type": [2, 3, 4, 5, 7, 10, 11, 12, 14, 15], "typeerror": [2, 11], "typic": 2, "u": 7, "ui": [8, 10], "uncas": 7, "under": 14, "underli": [2, 11], "unicod": 7, "unicodeencodeerror": 7, "unless": 7, "untouch": 7, "up": 8, "upper": 7, "uppercas": 7, "url": [4, 5], "us": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15], "usabl": 7, "usag": [1, 7, 10, 12, 13, 14], "utf": 7, "valid": [4, 5, 7, 15], "valu": [7, 11, 12, 13], "valueerror": [2, 7, 11, 12], "variabl": [12, 13], "version": [7, 17], "via": [7, 12], "view": [3, 4, 5, 8], "view_func": [5, 15], "wai": [7, 10], "we": 3, "web": [4, 5, 17], "webserv": [1, 8, 15], "well": 7, "when": [7, 10, 12], "where": [7, 8, 11, 12], "whether": [7, 10, 11, 12, 15], "which": 7, "whitespac": 7, "whose": 7, "width": 7, "within": [7, 13, 14], "without": 13, "won": 14, "word": 7, "work": [7, 10, 12, 14], "world": 18, "wrapper": 2, "x": 7, "xmlcharrefreplac": 7, "y": 7, "your": [1, 5], "zero": 7, "zfill": 7}, "titles": ["joop.cli", "joop.cli.test_flask", "joop.dao", "joop.flask", "joop.flask.example", "joop.flask.flask_view", "joop.http", "joop.http.methods", "joop.web", "joop.web.alpine_js", "joop.web.component", "joop.web.components", "joop.web.html", "joop.web.j_env", "joop.web.templater", "joop.web.view", "Changelog", "joop documentation", "API Documentation"], "titleterms": {"0": 16, "02": 16, "1": 16, "12": [], "2025": [], "2026": 16, "29": [], "alpine_j": 9, "api": 18, "changelog": 16, "cli": [0, 1], "compon": [10, 11], "content": 17, "dao": 2, "document": [17, 18], "exampl": 4, "featur": 17, "flask": [3, 4, 5], "flask_view": 5, "html": 12, "http": [6, 7], "j_env": 13, "joop": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "method": 7, "templat": 14, "test_flask": 1, "version": 16, "view": 15, "web": [8, 9, 10, 11, 12, 13, 14, 15], "welcom": 17}})
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes