Skip to content

Commit cf63cf0

Browse files
committed
Introduce table classes for displaying multiline data
Configure how long equations are displayed when they don't naturally fit in the width of the report
1 parent 0b4c935 commit cf63cf0

15 files changed

+462
-23
lines changed

docs/base_classes.html

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@
345345
<li><p><strong>reference</strong> (<em>str</em><em>, </em><em>optional</em>) – A short text reference (e.g. code reference) to accompany the comparison, defaults to None</p></li>
346346
<li><p><strong>result_check</strong> (<em>bool</em><em>, </em><em>optional</em>) – This is used to indicate any <a class="reference internal" href="#efficalc.Comparison" title="efficalc.Comparison"><code class="xref py py-class docutils literal notranslate"><span class="pre">Comparison</span></code></a> that should be checked as a final result
347347
of your calculation template. When set to True, this <a class="reference internal" href="#efficalc.Comparison" title="efficalc.Comparison"><code class="xref py py-class docutils literal notranslate"><span class="pre">Comparison</span></code></a> will be displayed in the “Results”
348-
section of your design portal in the cloud version of efficalc, defaults to False</p></li>
348+
section of your design portal in the cloud version of efficalc, defaults to True</p></li>
349349
</ul>
350350
</dd>
351351
</dl>
@@ -651,6 +651,45 @@
651651

652652
</dd></dl>
653653

654+
<dl class="py class">
655+
<dt class="sig sig-object py" id="efficalc.Table">
656+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">efficalc.</span></span><span class="sig-name descname"><span class="pre">Table</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">headers</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">any</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">title</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">striped</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">full_width</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">result_check</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#efficalc.Table" title="Link to this definition">#</a></dt>
657+
<dd><p>An object to display a table of data.</p>
658+
<dl class="field-list simple">
659+
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
660+
<dd class="field-odd"><ul class="simple">
661+
<li><p><strong>data</strong> (<em>List</em><em>[</em><em>List</em><em>[</em><em>Any</em><em>]</em><em>] </em><em>(</em><em>a 2d list where each inner list is a row in the table</em><em>)</em>) – The data in the table. If this is an input table, the data will act as default data to be overridden
662+
by the calculation runner.</p></li>
663+
<li><p><strong>headers</strong> (<em>List</em><em>[</em><em>Any</em><em>]</em><em>, </em><em>optional</em>) – The headers for the table, defaults to None</p></li>
664+
<li><p><strong>title</strong> (<em>str</em><em>, </em><em>optional</em>) – The table title, defaults to None</p></li>
665+
<li><p><strong>striped</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether the table should be striped, defaults to False</p></li>
666+
<li><p><strong>full_width</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether the table should be full width, defaults to False</p></li>
667+
<li><p><strong>result_check</strong> (<em>bool</em><em>, </em><em>optional</em>) – This is used to indicate any <a class="reference internal" href="#efficalc.Table" title="efficalc.Table"><code class="xref py py-class docutils literal notranslate"><span class="pre">Table</span></code></a> that should be checked as a final result
668+
of your calculation template. When set to True, this <a class="reference internal" href="#efficalc.Table" title="efficalc.Table"><code class="xref py py-class docutils literal notranslate"><span class="pre">Table</span></code></a> will be displayed in the “Results”
669+
section of your design portal in the cloud version of efficalc, defaults to False</p></li>
670+
</ul>
671+
</dd>
672+
</dl>
673+
</dd></dl>
674+
675+
<dl class="py class">
676+
<dt class="sig sig-object py" id="efficalc.InputTable">
677+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">efficalc.</span></span><span class="sig-name descname"><span class="pre">InputTable</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default_data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">headers</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">any</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">title</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">striped</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">full_width</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#efficalc.InputTable" title="Link to this definition">#</a></dt>
678+
<dd><p>A table that can be used to accept dynamic input data with the calculation runner and cloud version of efficalc.</p>
679+
<dl class="field-list simple">
680+
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
681+
<dd class="field-odd"><ul class="simple">
682+
<li><p><strong>default_data</strong> (<em>List</em><em>[</em><em>List</em><em>[</em><em>Any</em><em>]</em><em>]</em>) – The default data for the table. This will be overridden when explicit calculation inputs are
683+
provided to the calculation runner or in the design portal on the cloud version of efficalc</p></li>
684+
<li><p><strong>headers</strong> (<em>List</em><em>[</em><em>Any</em><em>]</em>) – The headers for the table. This will be used as the unique identifier for the input table</p></li>
685+
<li><p><strong>title</strong> (<em>str</em><em>, </em><em>optional</em>) – The table title, defaults to None</p></li>
686+
<li><p><strong>striped</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether the table should be striped, defaults to False</p></li>
687+
<li><p><strong>full_width</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether the table should be full width, defaults to True</p></li>
688+
</ul>
689+
</dd>
690+
</dl>
691+
</dd></dl>
692+
654693
<dl class="py class">
655694
<dt class="sig sig-object py" id="efficalc.TextBlock">
656695
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">efficalc.</span></span><span class="sig-name descname"><span class="pre">TextBlock</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reference</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#efficalc.TextBlock" title="Link to this definition">#</a></dt>
@@ -774,6 +813,8 @@
774813
<li><a class="reference internal" href="#efficalc.Symbolic.str_symbolic"><code class="docutils literal notranslate"><span class="pre">Symbolic.str_symbolic()</span></code></a></li>
775814
</ul>
776815
</li>
816+
<li><a class="reference internal" href="#efficalc.Table"><code class="docutils literal notranslate"><span class="pre">Table</span></code></a></li>
817+
<li><a class="reference internal" href="#efficalc.InputTable"><code class="docutils literal notranslate"><span class="pre">InputTable</span></code></a></li>
777818
<li><a class="reference internal" href="#efficalc.TextBlock"><code class="docutils literal notranslate"><span class="pre">TextBlock</span></code></a></li>
778819
<li><a class="reference internal" href="#efficalc.Title"><code class="docutils literal notranslate"><span class="pre">Title</span></code></a></li>
779820
</ul>

docs/calculation_helpers.html

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@
275275

276276
<dl class="py class">
277277
<dt class="sig sig-object py" id="efficalc.report_builder.ReportBuilder">
278-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">efficalc.report_builder.</span></span><span class="sig-name descname"><span class="pre">ReportBuilder</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">calc_function</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">input_vals</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">any</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#efficalc.report_builder.ReportBuilder" title="Link to this definition">#</a></dt>
278+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">efficalc.report_builder.</span></span><span class="sig-name descname"><span class="pre">ReportBuilder</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">calc_function</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">input_vals</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">any</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">long_calc_display</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#efficalc.report_builder.LongCalcDisplayType" title="efficalc.report_builder.LongCalcDisplayType"><span class="pre">LongCalcDisplayType</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">LongCalcDisplayType.SCALE</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#efficalc.report_builder.ReportBuilder" title="Link to this definition">#</a></dt>
279279
<dd><p>A helper class to run calculation functions and generate reports based on the calculations.</p>
280280
<p>This class provides methods to run a calculation function with optional input value overrides and generate an HTML
281281
report to view or print the calculations. Reports can be viewed immediately in a web browser, saved to a file, or
@@ -289,6 +289,9 @@
289289
<li><p><strong>input_vals</strong> (<em>dict</em><em>[</em><em>str</em><em>, </em><em>any</em><em>]</em><em>, </em><em>optional</em>) – A dictionary of values to override the calculation function’s default input values. Keys should
290290
be the names of the input objects in the calculation function and values should be the desired values for the
291291
input.</p></li>
292+
<li><p><strong>long_calc_display</strong> (<a class="reference internal" href="#efficalc.report_builder.LongCalcDisplayType" title="efficalc.report_builder.LongCalcDisplayType"><em>LongCalcDisplayType</em></a><em>, </em><em>optional</em>) – How long expressions should be altered to fit within the calculation report width.
293+
This can be either SCALE for scaling down the display size of the expression or LINEBREAK to break the
294+
expression into multiple lines. defaults to SCALE</p></li>
292295
</ul>
293296
</dd>
294297
</dl>
@@ -350,6 +353,20 @@
350353

351354
</dd></dl>
352355

356+
<dl class="py class">
357+
<dt class="sig sig-object py" id="efficalc.report_builder.LongCalcDisplayType">
358+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">efficalc.report_builder.</span></span><span class="sig-name descname"><span class="pre">LongCalcDisplayType</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">values</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">module</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">qualname</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">boundary</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#efficalc.report_builder.LongCalcDisplayType" title="Link to this definition">#</a></dt>
359+
<dd><p>An enumeration for controlling how to display long mathematical expressions in reports.</p>
360+
<dl class="field-list simple">
361+
<dt class="field-odd">Variables<span class="colon">:</span></dt>
362+
<dd class="field-odd"><ul class="simple">
363+
<li><p><strong>SCALE</strong> – Scale the expression display and font size down to fit within the report width</p></li>
364+
<li><p><strong>LINEBREAK</strong> – Break the expression into multiple lines to fit within the report width</p></li>
365+
</ul>
366+
</dd>
367+
</dl>
368+
</dd></dl>
369+
353370
<dl class="py function">
354371
<dt class="sig sig-object py" id="efficalc.save_calculation_item">
355372
<span class="sig-prename descclassname"><span class="pre">efficalc.</span></span><span class="sig-name descname"><span class="pre">save_calculation_item</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#efficalc.save_calculation_item" title="Link to this definition">#</a></dt>
@@ -456,6 +473,7 @@
456473
<li><a class="reference internal" href="#efficalc.report_builder.ReportBuilder.view_report"><code class="docutils literal notranslate"><span class="pre">ReportBuilder.view_report()</span></code></a></li>
457474
</ul>
458475
</li>
476+
<li><a class="reference internal" href="#efficalc.report_builder.LongCalcDisplayType"><code class="docutils literal notranslate"><span class="pre">LongCalcDisplayType</span></code></a></li>
459477
<li><a class="reference internal" href="#efficalc.save_calculation_item"><code class="docutils literal notranslate"><span class="pre">save_calculation_item()</span></code></a></li>
460478
<li><a class="reference internal" href="#efficalc.clear_saved_objects"><code class="docutils literal notranslate"><span class="pre">clear_saved_objects()</span></code></a></li>
461479
<li><a class="reference internal" href="#efficalc.get_override_or_default_value"><code class="docutils literal notranslate"><span class="pre">get_override_or_default_value()</span></code></a></li>

0 commit comments

Comments
 (0)