diff --git a/README.md b/README.md
index 4a5efcf..69360d1 100644
--- a/README.md
+++ b/README.md
@@ -4,9 +4,9 @@
-
+
-
+
diff --git a/docs/.buildinfo b/docs/.buildinfo
index cd1de59..dfe68d7 100644
--- a/docs/.buildinfo
+++ b/docs/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 588ef32e5d3380f257565ff4648d3b11
+config: 6df82cdb6e3ab70d022614431807b4e8
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/.doctrees/base_classes.doctree b/docs/.doctrees/base_classes.doctree
index 3dc2d1e..120c069 100644
Binary files a/docs/.doctrees/base_classes.doctree and b/docs/.doctrees/base_classes.doctree differ
diff --git a/docs/.doctrees/calculation_helpers.doctree b/docs/.doctrees/calculation_helpers.doctree
index 25c030c..2d50895 100644
Binary files a/docs/.doctrees/calculation_helpers.doctree and b/docs/.doctrees/calculation_helpers.doctree differ
diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle
index eabed49..2292051 100644
Binary files a/docs/.doctrees/environment.pickle and b/docs/.doctrees/environment.pickle differ
diff --git a/docs/_sources/base_classes.rst.txt b/docs/_sources/base_classes.rst.txt
index 406713a..fe33d4b 100644
--- a/docs/_sources/base_classes.rst.txt
+++ b/docs/_sources/base_classes.rst.txt
@@ -31,6 +31,14 @@ Base Classes
:members:
+.. autoclass:: efficalc.Table
+ :members:
+
+
+.. autoclass:: efficalc.InputTable
+ :members:
+
+
.. autoclass:: efficalc.TextBlock
:members:
diff --git a/docs/_sources/calculation_helpers.rst.txt b/docs/_sources/calculation_helpers.rst.txt
index 9b95518..7d664c6 100644
--- a/docs/_sources/calculation_helpers.rst.txt
+++ b/docs/_sources/calculation_helpers.rst.txt
@@ -12,6 +12,10 @@ Calculation Helpers
:members:
+.. autoclass:: efficalc.report_builder.LongCalcDisplayType
+ :members:
+
+
.. autofunction:: efficalc.save_calculation_item
diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js
index da41795..c8f2547 100644
--- a/docs/_static/documentation_options.js
+++ b/docs/_static/documentation_options.js
@@ -1,5 +1,5 @@
const DOCUMENTATION_OPTIONS = {
- VERSION: '1.2.1',
+ VERSION: '1.2.3',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',
diff --git a/docs/base_classes.html b/docs/base_classes.html
index 08f7bb9..e9570bb 100644
--- a/docs/base_classes.html
+++ b/docs/base_classes.html
@@ -6,7 +6,7 @@
- Base Classes - efficalc 1.2.1 documentation
+ Base Classes - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
-
+
diff --git a/docs/calculation_helpers.html b/docs/calculation_helpers.html
index 7087416..28686ba 100644
--- a/docs/calculation_helpers.html
+++ b/docs/calculation_helpers.html
@@ -6,7 +6,7 @@
- Calculation Helpers - efficalc 1.2.1 documentation
+ Calculation Helpers - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
-
+
diff --git a/docs/canvas.html b/docs/canvas.html
index f039ecd..0996dc2 100644
--- a/docs/canvas.html
+++ b/docs/canvas.html
@@ -6,7 +6,7 @@
- Drawing on a Canvas - efficalc 1.2.1 documentation
+ Drawing on a Canvas - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
diff --git a/docs/constants.html b/docs/constants.html
index ddd40da..c129891 100644
--- a/docs/constants.html
+++ b/docs/constants.html
@@ -6,7 +6,7 @@
- Constants and Unit Conversions - efficalc 1.2.1 documentation
+ Constants and Unit Conversions - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
-
+
diff --git a/docs/examples.html b/docs/examples.html
index 1694a21..bc62698 100644
--- a/docs/examples.html
+++ b/docs/examples.html
@@ -6,7 +6,7 @@
- Examples - efficalc 1.2.1 documentation
+ Examples - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
diff --git a/docs/figures.html b/docs/figures.html
index 89789ec..00acbd1 100644
--- a/docs/figures.html
+++ b/docs/figures.html
@@ -6,7 +6,7 @@
- Figures in Calc Reports - efficalc 1.2.1 documentation
+ Figures in Calc Reports - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
-
+
diff --git a/docs/genindex.html b/docs/genindex.html
index 0497129..4eb8a67 100644
--- a/docs/genindex.html
+++ b/docs/genindex.html
@@ -4,7 +4,7 @@
- Index - efficalc 1.2.1 documentation
+ Index - efficalc 1.2.3 documentation
@@ -124,7 +124,7 @@
-
+
diff --git a/docs/get_started.html b/docs/get_started.html
index 5c431f2..2a13084 100644
--- a/docs/get_started.html
+++ b/docs/get_started.html
@@ -6,7 +6,7 @@
- Quickstart - efficalc 1.2.1 documentation
+ Quickstart - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
diff --git a/docs/index.html b/docs/index.html
index 3140751..3c2ab0d 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -6,7 +6,7 @@
- efficalc 1.2.1 documentation
+ efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
-
+
diff --git a/docs/integration.html b/docs/integration.html
index 5d530ca..52e87d7 100644
--- a/docs/integration.html
+++ b/docs/integration.html
@@ -6,7 +6,7 @@
- Integrating and Extending efficalc - efficalc 1.2.1 documentation
+ Integrating and Extending efficalc - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
diff --git a/docs/math_operations.html b/docs/math_operations.html
index 038ff63..ea030aa 100644
--- a/docs/math_operations.html
+++ b/docs/math_operations.html
@@ -6,7 +6,7 @@
- Math Operations - efficalc 1.2.1 documentation
+ Math Operations - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
-
+
diff --git a/docs/purpose.html b/docs/purpose.html
index 5f9cc9d..fd9ea90 100644
--- a/docs/purpose.html
+++ b/docs/purpose.html
@@ -6,7 +6,7 @@
- Purpose and Background - efficalc 1.2.1 documentation
+ Purpose and Background - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
diff --git a/docs/py-modindex.html b/docs/py-modindex.html
index b1fe247..5d7d8b0 100644
--- a/docs/py-modindex.html
+++ b/docs/py-modindex.html
@@ -4,7 +4,7 @@
- Python Module Index - efficalc 1.2.1 documentation
+ Python Module Index - efficalc 1.2.3 documentation
@@ -124,7 +124,7 @@
-
+
diff --git a/docs/search.html b/docs/search.html
index 210a244..be35f37 100644
--- a/docs/search.html
+++ b/docs/search.html
@@ -4,7 +4,7 @@
- Search - efficalc 1.2.1 documentation
+ Search - efficalc 1.2.3 documentation
@@ -123,7 +123,7 @@
-
+
diff --git a/docs/searchindex.js b/docs/searchindex.js
index 62671a1..1be0afc 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["base_classes", "calculation_helpers", "canvas", "constants", "examples", "figures", "get_started", "index", "integration", "math_operations", "purpose", "section_properties", "styling", "testing"], "filenames": ["base_classes.rst", "calculation_helpers.rst", "canvas.rst", "constants.rst", "examples.rst", "figures.rst", "get_started.rst", "index.rst", "integration.rst", "math_operations.rst", "purpose.rst", "section_properties.rst", "styling.rst", "testing.rst"], "titles": ["Base Classes", "Calculation Helpers", "Drawing on a Canvas", "Constants and Unit Conversions", "Examples", "Figures in Calc Reports", "Quickstart", "efficalc", "Integrating and Extending efficalc", "Math Operations", "Purpose and Background", "Section Properties", "Styling Reports", "Testing Your Calculations"], "terms": {"sphinx": [], "quickstart": 7, "thu": [], "mar": [], "7": [0, 2, 8], "21": [], "03": [], "13": 2, "2024": [], "you": [0, 2, 5, 6, 7, 8, 10, 13], "can": [0, 1, 2, 5, 6, 7, 8, 10, 12, 13], "adapt": 13, "thi": [0, 1, 2, 3, 5, 6, 7, 8, 10, 11], "file": 1, "complet": [1, 10], "your": [0, 2, 5, 6, 7, 8, 10], "like": [7, 8, 10], "should": [0, 1, 2, 5], "least": [], "contain": [2, 8, 11], "root": 9, "toctre": [], "direct": 2, "_home": [], "A": [0, 1, 2, 7, 8, 11, 13], "featur": [7, 8], "rich": 7, "librari": [5, 7, 8], "reimagin": 7, "calcul": [0, 2, 3, 4, 5, 7, 10], "i": [0, 1, 2, 5, 6, 7, 8, 10, 11, 13], "design": [0, 6, 7, 8, 10, 11, 13], "transform": 7, "how": [1, 5, 6, 7, 8, 10], "engin": [7, 8, 10, 13], "approach": [7, 8, 10], "move": 7, "awai": 7, "from": [0, 1, 2, 3, 6, 7, 8, 10, 11], "tradit": [7, 10], "method": [1, 2, 7, 10], "manual": [7, 10], "spreadsheet": [7, 10, 13], "toward": 7, "effici": [7, 8, 10], "accur": 7, "collabor": 7, "process": [5, 7, 10], "built": 7, "modern": [7, 8], "mind": 7, "leverag": 7, "power": [7, 8, 9], "python": [0, 5, 7, 8, 10, 13], "offer": 7, "an": [0, 1, 2, 5, 6, 7, 8, 10, 11, 12, 13], "extens": [2, 7], "testabl": 7, "framework": [7, 13], "build": [6, 7, 8, 10], "ani": [0, 1, 2, 6, 7, 8, 10, 12, 13], "order": 7, "doesn": [7, 10], "t": [7, 10, 11], "lock": 7, "predefin": 7, "sequenc": [7, 12], "suit": 7, "project": [6, 7, 8, 10], "": [1, 2, 5, 6, 7, 8, 9, 10, 11], "need": [2, 5, 7, 10, 12, 13], "control": [0, 1, 7], "content": [2, 7], "decid": 7, "what": [7, 10], "displai": [0, 1, 2, 5, 7, 12], "report": [0, 1, 2, 3, 4, 7, 8, 10], "ensur": [7, 13], "onli": [0, 1, 2, 7, 8, 10], "relev": [1, 7], "inform": [7, 8], "commun": [7, 10], "make": [2, 6, 7, 8, 10, 13], "concis": 7, "detail": [7, 8, 10, 11], "desir": [1, 7], "autom": 7, "gener": [0, 1, 2, 4, 5, 7, 8, 10], "automat": 7, "creat": [1, 2, 5, 7, 10, 12, 13], "profession": 7, "crystal": 7, "clear": [1, 7, 8], "review": [7, 10], "ambigu": 7, "free": [7, 8], "submitt": 7, "specif": [7, 13], "out": [2, 7, 10], "box": [7, 11], "helper": [2, 7], "common": [2, 6, 7, 10, 12], "problem": [5, 7], "section": [0, 7, 8], "properti": [2, 7, 8], "databas": [7, 11], "unit": [0, 2, 7, 12], "reusabl": 7, "templat": [0, 7], "onc": 7, "reus": 7, "them": [5, 7, 10, 13], "across": 7, "multipl": [0, 1, 2, 7, 8, 9, 12], "open": [1, 7], "sourc": [2, 4, 5, 7], "ar": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13], "we": [4, 5, 6, 7, 8, 10, 13], "miss": 7, "wish": 7, "had": 7, "request": [2, 7, 8], "yourself": [7, 10], "so": [6, 7, 8, 10], "everyon": 7, "benefit": 7, "improv": [7, 10], "pleas": 7, "give": [6, 7, 10, 13], "try": [7, 10], "let": [5, 7], "u": [0, 5, 6, 7, 10], "know": [5, 7], "think": [7, 8], "purpos": [7, 11], "base": [1, 7, 8, 10], "class": [1, 5, 6, 7, 11], "math": 7, "oper": [0, 7], "constant": [0, 7, 11], "convers": 7, "style": [2, 7], "integr": [5, 7, 10], "extend": [2, 7, 10], "test": 7, "exampl": [6, 7, 8, 10, 12], "index": [], "modul": 1, "search": [], "page": [], "thing": [2, 10, 13], "don": 10, "about": [2, 8, 10, 11], "excel": [8, 10], "tabl": [0, 8], "To": [5, 6, 10], "err": 13, "human": 13, "realli": [8, 13], "foul": 13, "up": [1, 2, 8, 13], "comput": [5, 13], "paul": 13, "r": [2, 5, 13], "ehrlich": 13, "background": [2, 7], "efficalc": [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 13], "wa": [0, 8, 10, 11], "develop": [0, 10, 13], "provid": [0, 1, 8, 10, 13], "robust": 10, "flexibl": [5, 6, 10], "altern": 10, "which": [0, 1, 9, 10], "ha": [10, 11], "remain": 10, "industri": [10, 13], "standard": [10, 11, 12], "decad": [9, 10], "while": 10, "versatil": 10, "us": [0, 1, 5, 6, 8, 10, 11, 12, 13], "mani": [6, 8, 10, 12], "differ": [5, 6, 8, 10], "limit": 10, "its": [0, 1, 2, 10], "abil": 10, "furthermor": 10, "tool": 10, "particularli": 10, "good": [0, 10], "one": [0, 8, 10, 11, 13], "especi": [10, 13], "tailor": 10, "experi": 10, "work": [6, 8, 10, 13], "here": [2, 4, 5, 6, 8, 10, 12], "few": [4, 6, 10], "want": [6, 8, 10, 13], "fix": [8, 10], "If": [0, 1, 2, 5, 10, 11, 12], "write": [8, 10, 13], "ll": [6, 8, 10], "have": [0, 1, 2, 6, 8, 10], "some": [2, 8, 10, 12], "point": [2, 10, 11], "It": [0, 1, 10], "could": [8, 10], "debug": 10, "our": [6, 8, 10, 13], "own": 10, "understand": 10, "colleagu": 10, "share": [8, 10], "modifi": 10, "old": [10, 13], "repurpos": 10, "slightli": 10, "scenario": [8, 10], "when": [0, 5, 6, 8, 10, 13], "hard": 10, "follow": [5, 10, 11], "get": [1, 8, 10, 13], "wai": [5, 6, 8, 10, 13], "Not": [6, 8, 10], "tediou": 10, "annoi": 10, "lead": 10, "cost": 10, "time": [5, 9, 10, 13], "reput": 10, "potenti": 10, "licens": 10, "There": [6, 10], "also": [1, 8, 10], "other": [1, 8, 10, 12, 13], "check": [0, 10], "offici": 10, "peer": 10, "In": [8, 10, 13], "case": [8, 10, 12, 13], "error": [0, 8, 10], "ridden": 10, "host": 10, "implic": 10, "includ": [2, 10], "costli": 10, "delai": 10, "loss": 10, "rapport": 10, "import": [0, 2, 5, 6, 10], "client": 10, "take": [6, 10, 13], "look": [8, 10], "easier": 10, "imagin": 10, "all": [1, 2, 6, 8, 10, 13], "steel": 10, "floor": [9, 10], "beam": [8, 10], "favorit": [8, 10], "go": 10, "through": [8, 10], "input": [0, 1, 2, 3, 8, 10, 12, 13], "uniqu": [0, 10, 13], "dimens": [2, 10], "load": [5, 10], "copi": 10, "next": [10, 13], "But": [6, 8, 10, 13], "realiz": 10, "cell": 10, "mayb": 10, "chang": [0, 8, 10, 13], "type": [0, 1, 2, 5, 8, 10, 11], "avail": [8, 10], "updat": [6, 8, 10], "back": [10, 11, 13], "everi": [8, 10], "same": [6, 8, 10], "exact": 10, "howev": [8, 10], "actual": [6, 9, 10], "function": [1, 2, 10, 11, 13], "Then": [10, 13], "re": [8, 10], "run": [1, 5, 6, 8, 10, 13], "simplifi": [8, 10], "all_beam_configur": 10, "1": [0, 1, 2, 3, 5, 9, 10, 11, 12], "12": [2, 3, 8, 10], "3": [0, 2, 3, 5, 6, 8, 10, 11], "34": 10, "50": [2, 8, 10], "4": [0, 2, 5, 6, 8, 10, 11, 13], "15": [2, 10], "2": [0, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13], "55": 10, "25": [2, 10, 13], "def": [2, 5, 6, 8, 10, 13], "beam_calcul": 10, "name": [0, 1, 10, 11, 12], "span": [8, 10], "ultimate_load": 10, "steel_strength": 10, "insert": 10, "design_all_beam": 10, "configur": 10, "result": [0, 1, 2, 3, 8, 10, 12, 13], "print": [0, 1, 6, 8, 10], "return": [0, 1, 2, 5, 6, 9, 10, 11], "more": [4, 5, 6, 9, 10, 12, 13], "depth": [10, 11], "advanc": [6, 10], "At": 10, "end": [2, 10], "most": [6, 8, 10, 12], "submit": 10, "independ": 10, "author": 10, "noth": [9, 10], "just": [5, 8, 10], "bunch": 10, "number": [0, 10], "mai": [0, 2, 5, 6, 8, 10], "right": [2, 6, 8, 10], "often": 10, "facilit": 10, "proper": 10, "document": [1, 6, 10], "consum": 10, "By": [5, 10], "creation": [8, 10], "highli": 10, "readabl": [8, 10], "enabl": [8, 10], "spend": 10, "do": [6, 8, 10], "thei": [1, 10], "less": [3, 10], "calc": [2, 7, 10, 13], "focu": 10, "might": [8, 10], "veri": 10, "These": [8, 10], "dai": 10, "increas": [10, 13], "whether": [0, 2, 5, 10, 11], "csi": 10, "oapi": 10, "etab": 10, "analysi": 10, "grasshopp": 10, "rhino": 10, "script": 10, "parametr": 10, "model": 10, "without": [0, 1, 10], "lot": [5, 6, 8, 10], "past": 10, "date": 10, "intervent": 10, "nativ": 10, "plug": 10, "directli": [5, 10, 11], "bypass": 10, "friction": 10, "data": [0, 5, 10], "mention": [8, 10], "ideal": 10, "languag": 10, "larg": [10, 13], "amount": 10, "With": [8, 10, 13], "panda": 10, "numpi": 10, "matplotlib": 10, "manag": [2, 10], "set": [0, 1, 2, 8, 10], "save": [1, 5, 8, 10], "headach": 10, "v": [3, 8, 10], "idea": [8, 10], "aim": 10, "shift": 10, "code": [0, 2, 4, 6, 8, 10, 12], "driven": 10, "empow": 10, "user": 10, "reliabl": [10, 13], "transit": 10, "qualiti": 10, "better": [8, 10], "among": 10, "team": 10, "stakehold": 10, "new": [6, 8, 13], "releas": 6, "distribut": 6, "pypi": 6, "via": 6, "pip": 6, "best": [6, 8], "defin": [0, 1, 2, 6, 8, 11, 13], "The": [0, 1, 2, 5, 6, 8, 11, 13], "For": [4, 6, 8, 12], "pythagorean": 6, "theorem": 6, "perimet": [6, 11], "triangl": [6, 8], "titl": [0, 6, 8], "sqrt": [6, 8, 9], "descript": [0, 6, 8], "length": [0, 2, 6, 8], "side": 6, "b": [0, 6, 8, 11], "c": [0, 5, 6, 8, 11], "hypotenus": [6, 8], "p": 6, "produc": [6, 8], "browser": [1, 6], "someth": 6, "simpl": [5, 6, 8, 12], "report_build": [1, 6], "calculationreportbuild": [], "pythagorean_perimet": 6, "builder": [6, 8], "view_report": [1, 6, 8], "nice": 6, "now": [6, 8], "great": [6, 8], "easi": [6, 8, 13], "alwai": 6, "default": [0, 1, 2, 5, 6, 8], "gave": 6, "luckili": 6, "super": 6, "suppli": [5, 6], "overrid": [0, 1, 6], "second": [0, 6], "argument": [6, 8, 9], "new_input": 6, "5": [0, 2, 6, 8, 13], "6": [0, 2, 6, 8, 11], "show": [0, 3, 5, 6, 8], "And": 6, "well": [2, 6, 13], "real": 8, "life": 8, "overal": [6, 11], "pattern": 6, "matter": 6, "deeper": 6, "dive": 6, "api": 6, "see": [0, 5, 6, 8], "option": [0, 1, 2, 5, 6, 8], "perfect": [6, 8], "happi": 6, "equat": [10, 13], "stage": 10, "assumpt": [0, 1], "str": [0, 1, 2, 5, 11], "meant": 0, "clearli": 0, "declar": 0, "form": 0, "basi": 0, "paramet": [0, 1, 2, 5, 9, 11], "text": [0, 2, 12], "describ": 0, "seismic": 0, "provis": 0, "asc": 0, "16": [0, 2], "assum": 0, "variable_nam": 0, "express": [0, 1, 9], "variabl": [0, 1, 3, 8, 9, 12], "float": [0, 2, 8, 11], "int": 0, "none": [0, 1, 2, 5, 8], "refer": 0, "result_check": [0, 1, 13], "bool": [0, 1, 2, 5], "fals": [0, 1, 2, 5], "primari": 0, "object": [0, 1, 3, 5, 8, 9], "symbol": 0, "latex": [0, 9, 12], "format": [0, 1, 2, 12], "e": [0, 1, 2, 3, 5, 9], "physic": 0, "short": 0, "g": [0, 1, 5], "accompani": 0, "indic": [0, 11], "final": [0, 8], "true": [0, 1, 2, 13], "portal": 0, "version": 0, "ft": [0, 3, 8, 11], "1ft": 0, "4ft": 0, "5ft": 0, "estimate_display_length": 0, "calculationlength": 0, "estim": 0, "substitut": 0, "represent": [0, 2], "get_valu": [0, 8], "alia": [0, 9], "valueerror": [0, 11], "zerodivisionerror": 0, "0": [0, 2, 3, 8, 12], "messag": 0, "self": 0, "evalu": 0, "str_result_with_descript": 0, "string": [0, 1, 2], "symbolicexpr": 0, "str_substitut": 0, "valu": [0, 1, 2, 9, 11], "str_symbol": 0, "qualnam": 1, "start": [1, 2, 5], "boundari": 1, "comparison": [0, 1], "compar": 0, "liter": [0, 1, 2], "true_messag": 0, "ok": 0, "false_messag": 0, "explicit": 0, "against": 0, "specifi": [0, 1, 2, 11], "didplai": 0, "depend": 0, "first": 0, "comparis": 0, "desplai": 0, "get_messag": 0, "appropri": 0, "reult": 0, "NO": 0, "is_pass": 0, "comparisonstat": 0, "comparator2": 0, "doe": [0, 1, 2, 9], "given": [0, 1, 2, 8, 13], "rather": 0, "exactli": 0, "annot": 0, "embellish": 0, "els": [0, 8], "logic": 0, "third": 0, "requir": [0, 5], "pass": [0, 9], "head": 0, "head_level": 0, "8": [0, 2], "add": [0, 2, 5, 9], "auto": [0, 2], "increment": 0, "size": [0, 1, 2, 8, 11], "larger": 0, "higher": 0, "level": 0, "than": [0, 8], "lower": 0, "each": [0, 8], "correspond": 0, "posit": [0, 2], "would": 0, "befor": [0, 12], "anoth": 0, "default_valu": [0, 1], "input_typ": 0, "select": 0, "select_opt": 0, "list": [0, 1, 2, 12], "min_valu": 0, "max_valu": 0, "num_step": 0, "element": [0, 12, 13], "overridden": 0, "runner": 0, "html": [0, 1, 5], "applic": 0, "minimum": [0, 2, 9], "allow": [0, 2], "maximum": [0, 9], "interv": 0, "between": [0, 2, 8, 11], "legal": 0, "field": 0, "http": [0, 4, 8, 12], "mozilla": 0, "org": 0, "en": 0, "doc": 0, "web": [0, 1, 11], "attribut": 0, "step": 0, "note": [0, 11], "current": [0, 5], "str_result_with_nam": 0, "textblock": 0, "block": 0, "main": [0, 4], "bolder": 0, "save_calculation_item": 1, "item": 1, "global": 1, "store": [1, 5], "clear_saved_object": 1, "get_override_or_default_valu": 1, "input_nam": 1, "found": [1, 8, 11], "set_input_default_overrid": 1, "default_overrid": 1, "dict": [1, 13], "get_all_calc_object": 1, "clear_all_input_default_overrid": 1, "calculationrunn": [1, 13], "calc_funct": [1, 13], "callabl": 1, "input_v": 1, "execut": 1, "were": 1, "dure": 1, "instanti": 1, "perform": [1, 5], "necessari": [1, 8], "ignor": 1, "dictionari": 1, "empti": 1, "calculate_all_item": 1, "etc": [1, 2, 5], "calculate_result": [1, 13], "filter": 1, "those": [1, 13], "been": [1, 8], "mark": [1, 9], "where": [0, 1, 2, 5, 8, 11], "view": [1, 8], "immedi": 1, "accordingli": 1, "kei": 1, "get_html_as_str": 1, "save_report": 1, "folder_path": 1, "file_nam": 1, "calc_report": 1, "open_on_cr": 1, "locat": [1, 2], "exist": 1, "path": [1, 2, 5], "folder": [1, 4], "filepath": 1, "temporari": 1, "pdf": 1, "calculation_runn": 1, "all_aisc_wide_flange_nam": [], "immut": [], "constructor": [], "tupl": 2, "iter": [], "initi": [], "w44x335": [], "w44x290": [], "w44x262": [], "w40x655": [], "w44x230": [], "w40x503": [], "w40x593": [], "w40x431": [], "w40x397": [], "w40x372": [], "w40x297": [], "w40x362": [], "w40x277": [], "w40x249": [], "w40x215": [], "w40x199": [], "w40x324": [], "w40x392": [], "w40x331": [], "w40x327": [], "w40x294": [], "w40x278": [], "w40x264": [], "w40x235": [], "w40x211": [], "w40x183": [], "w40x149": [], "w40x167": [], "w36x853": [], "w36x802": [], "w36x723": [], "w36x652": [], "w36x529": [], "w36x487": [], "w36x925": [], "w36x441": [], "w36x395": [], "w36x361": [], "w36x330": [], "w36x302": [], "w36x262": [], "w36x282": [], "w36x231": [], "w36x247": [], "w36x256": [], "w36x232": [], "w36x210": [], "w36x194": [], "w36x182": [], "w36x170": [], "w36x160": [], "w36x150": [], "w36x135": [], "w33x387": [], "w33x354": [], "w33x291": [], "w33x318": [], "w33x241": [], "w33x263": [], "w33x221": [], "w33x201": [], "w33x169": [], "w33x152": [], "w33x141": [], "w33x130": [], "w33x118": [], "w30x357": [], "w30x391": [], "w30x326": [], "w30x292": [], "w30x235": [], "w30x261": [], "w30x191": [], "w30x211": [], "w30x173": [], "w30x148": [], "w30x124": [], "w30x132": [], "w30x116": [], "w30x108": [], "w30x99": [], "w30x90": [], "w27x368": [], "w27x539": [], "w27x336": [], "w27x307": [], "w27x281": [], "w27x258": [], "w27x235": [], "w27x194": [], "w27x217": [], "w27x178": [], "w27x161": [], "w27x129": [], "w27x146": [], "w27x114": [], "w27x102": [], "w27x84": [], "w24x370": [], "w27x94": [], "w24x335": [], "w24x306": [], "w24x279": [], "w24x250": [], "w24x229": [], "w24x192": [], "w24x207": [], "w24x176": [], "w24x162": [], "w24x146": [], "w24x117": [], "w24x131": [], "w24x104": [], "w24x94": [], "w24x103": [], "w24x84": [], "w24x68": [], "w24x76": [], "w24x62": [], "w24x55": [], "w21x275": [], "w21x248": [], "w21x201": [], "w21x223": [], "w21x182": [], "w21x166": [], "w21x147": [], "w21x132": [], "w21x111": [], "w21x93": [], "w21x73": [], "w21x122": [], "w21x83": [], "w21x68": [], "w21x62": [], "w21x101": [], "w21x55": [], "w21x48": [], "w21x50": [], "w21x57": [], "w18x311": [], "w21x44": [], "w18x283": [], "w18x258": [], "w18x234": [], "w18x192": [], "w18x211": [], "w18x175": [], "w18x158": [], "w18x143": [], "w18x130": [], "w18x119": [], "w18x106": [], "w18x86": [], "w18x97": [], "w18x76": [], "w18x71": [], "w18x65": [], "w18x55": [], "w18x60": [], "w18x50": [], "w18x46": [], "w18x40": [], "w18x35": [], "w16x100": [], "w16x89": [], "w16x67": [], "w16x77": [], "w16x57": [], "w16x50": [], "w16x40": [], "w16x45": [], "w16x36": [], "w16x31": [], "w16x26": [], "w14x873": [], "w14x808": [], "w14x730": [], "w14x665": [], "w14x550": [], "w14x605": [], "w14x500": [], "w14x455": [], "w14x426": [], "w14x398": [], "w14x370": [], "w14x311": [], "w14x342": [], "w14x283": [], "w14x257": [], "w14x233": [], "w14x211": [], "w14x193": [], "w14x176": [], "w14x159": [], "w14x145": [], "w14x132": [], "w14x120": [], "w14x99": [], "w14x109": [], "w14x90": [], "w14x82": [], "w14x74": [], "w14x68": [], "w14x61": [], "w14x53": [], "w14x48": [], "w14x43": [], "w14x38": [], "w14x34": [], "w14x30": [], "w14x26": [], "w14x22": [], "w12x336": [], "w12x305": [], "w12x279": [], "w12x252": [], "w12x230": [], "w12x210": [], "w12x190": [], "w12x170": [], "w12x152": [], "w12x136": [], "w12x120": [], "w12x106": [], "w12x87": [], "w12x96": [], "w12x79": [], "w12x72": [], "w12x65": [], "w12x58": [], "w12x53": [], "w12x50": [], "w12x45": [], "w12x35": [], "w12x40": [], "w12x30": 8, "w12x26": 8, "w12x22": [], "w12x19": 8, "w12x14": 8, "w12x16": [], "w10x112": [], "w10x100": [], "w10x77": [], "w10x88": [], "w10x68": [], "w10x60": [], "w10x54": [], "w10x45": [], "w10x49": 8, "w10x39": [], "w10x30": [], "w10x33": 8, "w10x26": [], "w10x22": [], "w10x19": 8, "w10x17": [], "w10x15": [], "w10x12": 8, "w8x67": [], "w8x48": [], "w8x58": [], "w8x40": 8, "w8x35": [], "w8x31": [], "w8x28": [], "w8x24": [], "w8x21": 8, "w8x18": [], "w8x15": 8, "w8x13": [], "w8x10": [], "w6x25": [], "w6x20": [], "w6x15": [], "w6x12": [], "w6x16": [], "w6x9": [], "w6x8": [], "w5x19": [], "w5x16": [], "w4x13": [], "m12": [], "5x12": [], "m12x11": [], "5x11": [], "m12x10": [], "m10x9": [], "m10x8": [], "m10x7": [], "m8x6": [], "m6x4": [], "m6x3": [], "m5x18": [], "9": [11, 12], "m4x4": [], "08": [], "m4x6": [], "m4x3": [], "45": [], "s24x106": [], "s24x121": [], "s24x90": [], "s24x100": [], "s24x80": [], "m3x2": [], "s20x96": [], "s20x86": [], "s20x66": [], "s20x75": [], "s18x70": [], "s18x54": [], "s15x50": [], "s15x42": [], "s12x50": [], "s12x40": [], "s12x31": [], "s12x35": [], "s10x35": [], "s10x25": [], "s8x23": [], "s8x18": [], "s6x17": [], "s6x12": [], "s5x10": [], "s4x9": [], "s4x7": [], "s3x7": [], "s3x5": [], "hp18x204": [], "hp18x181": [], "hp18x157": [], "hp18x135": [], "hp16x162": [], "hp16x183": [], "hp16x121": [], "hp16x141": [], "hp16x101": [], "hp16x88": [], "hp14x117": [], "hp14x102": [], "hp14x73": [], "hp14x89": [], "hp12x89": [], "hp12x84": [], "hp12x74": [], "hp12x53": [], "hp10x57": [], "hp10x42": [], "hp12x63": [], "hp8x36": [], "cd": [], "devic": [], "aiscangl": 11, "angl": [2, 9, 11], "aiscchannel": 11, "channel": 11, "aisccircular": 11, "circular": 11, "aiscdoubleangl": 11, "doubleangl": 11, "aiscrectangular": 11, "rectangular": 11, "aiscte": 11, "tee": 11, "aiscwideflang": 11, "wideflang": 11, "get_aisc_angl": 11, "section_s": [8, 11], "fetch": 11, "aisc": 11, "instanc": [3, 9, 11], "popul": 11, "aisc_nam": 11, "rais": [5, 11], "cannot": 11, "get_aisc_channel": 11, "get_aisc_circular": 11, "get_aisc_double_angl": 11, "doubl": 11, "get_aisc_rectangular": 11, "get_aisc_te": 11, "get_aisc_wide_flang": [8, 11], "wide": 11, "flang": 11, "cw": 11, "edi_std_nomenclatur": 11, "iw": 11, "ix": 11, "ii": 11, "iz": 11, "j": 11, "pa": 11, "pa2": 11, "pb": 11, "swa": 11, "swb": 11, "swc": 11, "sx": 11, "sy": 11, "sz": 11, "sza": 11, "szb": 11, "szc": 11, "t_f": 11, "w": [8, 11], "zx": [8, 11], "zy": 11, "b_t": 11, "d": 11, "kde": 11, "kdet": 11, "ro": 11, "rx": [2, 11], "ry": [2, 11], "rz": 11, "tana": 11, "wb": 11, "wc": 11, "x": [2, 11], "xp": 11, "y": [2, 11], "yp": 11, "za": 11, "zb": 11, "zc": 11, "dataclass": 11, "shape": [8, 11], "area": 11, "warp": 11, "edi": 11, "nomenclatur": 11, "moment": 11, "inertia": 11, "axi": [2, 11], "z": 11, "torsion": 11, "minu": [9, 11], "surfac": 11, "singl": [11, 12, 13], "long": [1, 11], "leg": 11, "guid": 11, "19": 11, "elast": 11, "modulu": 11, "addit": [2, 8, 9, 11], "f": 11, "nomin": 11, "weight": [8, 11], "lb": [3, 11], "plastic": 11, "width": [0, 1, 2, 5, 11], "longer": 11, "slender": 11, "ratio": 11, "shorter": 11, "distanc": [2, 11], "outer": 11, "face": 11, "toe": 11, "fillet": 11, "polar": 11, "radiu": [2, 11], "gyrat": 11, "shear": 11, "center": [2, 11], "thick": 11, "tangent": [9, 11], "ax": [5, 11], "graviti": 11, "along": 11, "horizont": [2, 11], "edg": 11, "member": 11, "neutral": 11, "vertic": [2, 11], "h": 11, "pc": 11, "pd": 11, "qf": 11, "qw": 11, "sw1": 11, "sw2": 11, "sw3": 11, "wgi": 11, "wno": 11, "bf": 11, "bfdet": 11, "ddet": 11, "eo": 11, "h_tw": 11, "ho": 11, "rt": 11, "tf": 11, "tfdet": 11, "tw": 11, "twdet": 11, "twdet_2": 11, "cross": 11, "flexur": 11, "static": 11, "abov": [8, 11], "mid": 11, "top": [2, 11], "bottom": [2, 11], "special": 11, "workabl": 11, "gage": 11, "inner": [0, 11], "fasten": 11, "hole": 11, "normal": 11, "centroid": 11, "effect": [11, 13], "d_t": 11, "od": 11, "tde": 11, "tnom": 11, "hss": 11, "round": [2, 9, 11], "pipe": 11, "outsid": 11, "diamet": 11, "wall": 11, "flat": [2, 11], "separ": 11, "bout": 11, "ht": 11, "bin": 11, "b_tde": 11, "h_tde": 11, "typic": 11, "repres": [2, 3, 11], "hollow": 11, "structur": 11, "bf_2tf": 11, "deriv": 11, "m": [11, 12], "cut": 11, "2tf": 11, "half": 11, "k1": 11, "line": [1, 11], "a_bracket": 9, "arg": 9, "bracket": 9, "wrap": [9, 12], "absolut": 9, "arg0": 9, "summat": 9, "arg1": 9, "arglast": 9, "r_bracket": 9, "c_bracket": 9, "curli": [9, 12], "co": 9, "cosinu": 9, "cosh": 9, "hyperbol": 9, "div": 9, "divis": 9, "frac": 9, "div2": 9, "within": [1, 8, 9, 12], "exp": 9, "ln": 9, "natur": [9, 12], "logarithm": 9, "log": 9, "log_arg0": 9, "log10": 9, "log_10": 9, "max": 9, "argn": 9, "min": [9, 12], "sub": 9, "mul": 9, "neg": [2, 9], "negat": 9, "plu": 9, "sum_el": 9, "po": 9, "positivit": 9, "squar": 9, "s_bracket": 9, "sin": 9, "sinu": 9, "sinh": 9, "sqr": 9, "subtract": 9, "tan": 9, "tanh": 9, "zero": 3, "latexexpr_efficalc": 3, "mathemat": [1, 12], "phyical": [], "fundament": [], "overload": [], "numer": [], "throw": [], "except": [], "divsion": [], "consid": [], "4g": [], "3f": [], "unit_format": [], "mathrm": [], "non": [], "ital": [], "insid": [], "mode": [], "expon": [], "scientif": [], "v1": [], "a_": [], "22": [], "mm": [], "v2": [], "876934835": [], "kn": [], "87693": [], "v3": [], "434": [], "cdot": [], "10": 2, "v8": [], "unit_convers": 3, "deg_to_rad": 3, "degre": [2, 3], "radian": 3, "divid": 3, "revers": [2, 3], "180": 3, "deg": 3, "rad": 3, "pi": 3, "180deg": 3, "142": 3, "ft_to_in": 3, "24": 3, "k_to_lb": 3, "kip": 3, "1000": [3, 8], "2000": 3, "reportbuild": [1, 6, 8], "ONE": 3, "two": [2, 3], "call": 8, "possibl": 8, "sometim": 8, "workflow": 8, "compat": 5, "both": 8, "sinc": [], "That": [2, 8], "shown": 8, "easiest": [], "pythagorean_with_param": 8, "default_a": 8, "default_b": 8, "equival": 8, "pythagorean_without_param": 8, "810249675906654": 8, "still": [8, 13], "batch": [5, 8], "collect": 8, "Be": [], "abl": [], "come": [2, 5, 13], "soon": [], "github": [4, 8], "issu": [5, 8], "link": [], "graph": 8, "figur": [2, 7, 8], "matric": 8, "notat": 12, "help": [2, 8, 12], "tip": 12, "charact": 12, "underscor": 12, "_1": 12, "definit": 12, "min_a": 12, "m_2": 12, "must": [2, 12], "brace": 12, "after": [12, 13], "_": 12, "min_": 12, "abc": 12, "m_": 12, "123": 12, "caret": 12, "circumflex": 12, "combin": 12, "www": 12, "overleaf": 12, "com": [4, 8, 12], "learn": 12, "list_of_greek_letters_and_math_symbol": 12, "phi_m": 12, "phi": 12, "squash": 12, "escap": 12, "forward": 12, "slash": 12, "todo": [], "intro": [], "column": 8, "whatev": 8, "highlight": 8, "over": [8, 13], "solut": 8, "As": 8, "bonu": 8, "find": 8, "constraint": 8, "beam_strength": 8, "default_s": 8, "default_span": 8, "default_fi": 8, "fy": 8, "f_y": 8, "ksi": 8, "size_nam": 8, "z_x": 8, "strength": 8, "complex": [8, 13], "m_p": 8, "k": 8, "optim": 8, "moment_strength": 8, "lightest": 8, "strong": 8, "enough": 8, "find_lightest_beam_for_demand": 8, "size_opt": 8, "moment_demand": 8, "lightest_beam": 8, "999999": 8, "strength_info": 8, "size_is_strong_enough": 8, "size_is_lighter_than_best": 8, "certain": 8, "available_beam_sect": 8, "moment_demand_on_beam": 8, "lightest_beam_s": 8, "digest": 8, "summari": 8, "demand": 8, "Or": 8, "extract": 8, "util": 8, "anyth": 8, "extra": 8, "invisible_square_sum": 8, "simpli": 8, "49": 8, "calculate_square_sum": 8, "sum": 8, "sup": [], "begin": [], "align": [], "4pt": [], "therefor": [], "left": 2, "\u00b2": 8, "standalon": 8, "resourc": [5, 8], "appreci": 8, "huge": 8, "ecosystem": 8, "conjunct": 8, "varieti": 8, "everydai": 8, "concept": 8, "youandvern": [4, 8], "feel": 8, "propos": 8, "pull": 8, "ve": 8, "plugin": 8, "elimin": 8, "necess": 8, "intend": 8, "incorpor": 8, "output": 8, "loop": 8, "previous": 8, "get_results_as_dict": [], "toler": 13, "mistak": 13, "slim": 13, "becom": 13, "digit": 13, "opportun": 13, "hundr": 13, "propag": 13, "affect": 13, "part": [2, 13], "unexpect": 13, "accuraci": 13, "evolv": 13, "confid": 13, "expect": 13, "rest": [5, 13], "behav": 13, "world": 13, "softwar": 13, "establish": 13, "disciplin": 13, "appli": [2, 13], "similar": 13, "principl": 13, "straightforward": 13, "assert": 13, "verifi": 13, "test_calc_funct": 13, "calc_function_simpl": 13, "pytest": 13, "prefer": 13, "regularli": 13, "ongo": 13, "continu": 4, "publish": 4, "repo": 4, "tree": 4, "visit": 4, "return_typ": 1, "either": 1, "calculate_results_as_dict": [], "save_fold": 1, "filenam": 1, "open_on_sav": 1, "support": 5, "three": 5, "imag": [2, 5], "caption": [2, 5], "figurefromfil": 5, "lazi": 5, "file_path": 5, "pathlik": 5, "full_width": [0, 2, 5], "tag": 5, "png": 5, "jpg": 5, "svg": [2, 5], "gif": 5, "full": [0, 2, 5], "load_image_data": 5, "my": 5, "pictur": 5, "calc_imag": 5, "popular": 5, "plot": 5, "figurefrommatplotlib": 5, "wrapper": 5, "around": [2, 5], "easili": 5, "pyplot": 5, "plt": 5, "draw_figure_with_matplotlib": 5, "fig": 5, "subplot": 5, "draw": [5, 7], "figurefrombyt": 5, "greater": 5, "throughout": 5, "becaus": 5, "entir": 5, "memori": 5, "figure_byt": 5, "generate_figure_byt": 5, "cloud": 0, "displi": 0, "nor": 0, "pure": 0, "str_result_with_unit": 0, "__str__": 0, "written": 2, "hand": 2, "usual": 2, "graphic": 2, "illustr": 2, "aspect": 2, "geometri": 2, "programmat": 2, "height": 2, "reinforc": 2, "cover": 2, "num_long_bar": 2, "long_bar_radiu": 2, "875": 2, "stirrup_diamet": 2, "375": 2, "stirrup_bend_radiu": 2, "stirrup_hook": 2, "scale": [1, 2], "30": 2, "default_element_stroke_width": 2, "outlin": 2, "beam_outlin": 2, "rectangl": 2, "fill": 2, "bdbdbd": 2, "stirrup": 2, "transvers": 2, "hook": 2, "corner_radiu": 2, "stroke_width": 2, "stroke": 2, "black": 2, "longitudin": 2, "blue": 2, "circl": 2, "long_bar_starting_x": 2, "long_bar_spac": 2, "long_bar_i": 2, "rang": 2, "004aad": 2, "placement": 2, "bar": 2, "placement_bar": 2, "red": 2, "bf211e": 2, "pin": 2, "create_pin_support": 2, "arrow": 2, "create_load_arrow": 2, "marker_end": 2, "arrowmark": 2, "cap": 2, "create_load_cap_lin": 2, "x1": 2, "x2": 2, "100": 2, "20": 2, "60": 2, "40": 2, "80": 2, "diagram": 2, "arrow_count_per_sect": 2, "space": 2, "background_color": 2, "border_width": 2, "border_color": 2, "default_element_fil": 2, "default_element_strok": 2, "canvasel": 2, "ad": 2, "to_svg": 2, "convert": 2, "cx": 2, "cy": 2, "kwarg": 2, "ellips": 2, "y1": 2, "y2": 2, "marker_start": 2, "marker_mid": 2, "to_path_command": 2, "command": 2, "corner": 2, "orient": 2, "circlemark": 2, "get_common_svg_style_el": 2, "context": 2, "canva": 7, "hold": 2, "backdrop": 2, "drawn": 2, "color": 2, "white": 2, "border": 2, "coordin": 2, "param": [], "midpoint": 2, "fit": [1, 2], "match": 2, "connect": 2, "rel": 2, "system": 2, "down": [1, 2], "min_xi": 2, "display_typ": 2, "font_siz": 2, "rotat": 2, "horizontal_bas": 2, "vertical_bas": 2, "middl": 2, "render": 2, "font": [1, 2], "clockwis": 2, "gap": 2, "offset": 2, "text_posit": 2, "text_siz": 2, "being": 2, "parallel": 2, "upward": 2, "downward": 2, "factor": 2, "leader": 2, "marker_x": 2, "marker_i": 2, "text_x": 2, "text_i": 2, "landing_len": 2, "land": 2, "relationship": 2, "elementwithmark": 2, "subclass": 2, "implement": 2, "_get_mark": 2, "get_mark": 2, "header": 0, "stripe": 0, "2d": 0, "row": 0, "act": 0, "inputt": 0, "default_data": 0, "accept": 0, "dynam": 0, "identifi": 0, "long_calc_displai": 1, "longcalcdisplaytyp": 1, "alter": 1, "linebreak": 1, "break": 1, "enumer": 1}, "objects": {"efficalc": [[0, 0, 1, "", "Assumption"], [0, 0, 1, "", "Calculation"], [0, 0, 1, "", "Comparison"], [0, 0, 1, "", "ComparisonStatement"], [5, 0, 1, "", "FigureFromBytes"], [5, 0, 1, "", "FigureFromFile"], [5, 0, 1, "", "FigureFromMatplotlib"], [0, 0, 1, "", "Heading"], [0, 0, 1, "", "Input"], [0, 0, 1, "", "InputTable"], [0, 0, 1, "", "Symbolic"], [0, 0, 1, "", "Table"], [0, 0, 1, "", "TextBlock"], [0, 0, 1, "", "Title"], [9, 2, 1, "", "a_brackets"], [9, 2, 1, "", "absolute"], [9, 2, 1, "", "add"], [9, 2, 1, "", "brackets"], [9, 2, 1, "", "c_brackets"], [1, 2, 1, "", "clear_all_input_default_overrides"], [1, 2, 1, "", "clear_saved_objects"], [3, 3, 0, "-", "constants"], [9, 2, 1, "", "cos"], [9, 2, 1, "", "cosh"], [9, 2, 1, "", "div"], [9, 2, 1, "", "div2"], [9, 2, 1, "", "exp"], [1, 2, 1, "", "get_all_calc_objects"], [1, 2, 1, "", "get_override_or_default_value"], [9, 2, 1, "", "ln"], [9, 2, 1, "", "log"], [9, 2, 1, "", "log10"], [9, 2, 1, "", "maximum"], [9, 2, 1, "", "minimum"], [9, 2, 1, "", "minus"], [9, 2, 1, "", "mul"], [9, 2, 1, "", "neg"], [9, 2, 1, "", "plus"], [9, 2, 1, "", "pos"], [9, 2, 1, "", "power"], [9, 2, 1, "", "r_brackets"], [9, 2, 1, "", "root"], [9, 2, 1, "", "s_brackets"], [1, 2, 1, "", "save_calculation_item"], [1, 2, 1, "", "set_input_default_overrides"], [9, 2, 1, "", "sin"], [9, 2, 1, "", "sinh"], [9, 2, 1, "", "sqr"], [9, 2, 1, "", "sqrt"], [9, 2, 1, "", "sub"], [9, 2, 1, "", "tan"], [9, 2, 1, "", "tanh"], [9, 2, 1, "", "times"], [3, 3, 0, "-", "unit_conversions"]], "efficalc.Calculation": [[0, 1, 1, "", "estimate_display_length"], [0, 1, 1, "", "get_value"], [0, 1, 1, "", "result"], [0, 1, 1, "", "str_result_with_description"], [0, 1, 1, "", "str_substituted"], [0, 1, 1, "", "str_symbolic"]], "efficalc.Comparison": [[0, 1, 1, "", "get_message"], [0, 1, 1, "", "get_value"], [0, 1, 1, "", "is_passing"], [0, 1, 1, "", "result"], [0, 1, 1, "", "str_substituted"], [0, 1, 1, "", "str_symbolic"]], "efficalc.ComparisonStatement": [[0, 1, 1, "", "str_symbolic"]], "efficalc.FigureFromBytes": [[5, 1, 1, "", "load_image_data"]], "efficalc.FigureFromFile": [[5, 1, 1, "", "load_image_data"]], "efficalc.FigureFromMatplotlib": [[5, 1, 1, "", "load_image_data"]], "efficalc.Input": [[0, 1, 1, "", "get_value"], [0, 1, 1, "", "str_result_with_name"]], "efficalc.Symbolic": [[0, 1, 1, "", "estimate_display_length"], [0, 1, 1, "", "get_value"], [0, 1, 1, "", "result"], [0, 1, 1, "", "str_result_with_description"], [0, 1, 1, "", "str_result_with_unit"], [0, 1, 1, "", "str_substituted"], [0, 1, 1, "", "str_symbolic"]], "efficalc.calculation_runner": [[1, 0, 1, "", "CalculationRunner"]], "efficalc.calculation_runner.CalculationRunner": [[1, 1, 1, "", "calculate_all_items"], [1, 1, 1, "", "calculate_results"]], "efficalc.canvas": [[2, 0, 1, "", "ArrowMarker"], [2, 0, 1, "", "Canvas"], [2, 0, 1, "", "CanvasElement"], [2, 0, 1, "", "Circle"], [2, 0, 1, "", "CircleMarker"], [2, 0, 1, "", "Dimension"], [2, 0, 1, "", "ElementWithMarkers"], [2, 0, 1, "", "Ellipse"], [2, 0, 1, "", "Leader"], [2, 0, 1, "", "Line"], [2, 0, 1, "", "Marker"], [2, 0, 1, "", "Polyline"], [2, 0, 1, "", "Rectangle"], [2, 0, 1, "", "Text"]], "efficalc.canvas.ArrowMarker": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Canvas": [[2, 1, 1, "", "add"], [2, 1, 1, "", "to_svg"]], "efficalc.canvas.CanvasElement": [[2, 1, 1, "", "get_common_svg_style_elements"], [2, 1, 1, "", "to_svg"]], "efficalc.canvas.Circle": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.CircleMarker": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Dimension": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.ElementWithMarkers": [[2, 1, 1, "", "get_markers"]], "efficalc.canvas.Ellipse": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Leader": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Line": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Polyline": [[2, 1, 1, "", "to_path_commands"], [2, 1, 1, "", "to_svg"]], "efficalc.canvas.Rectangle": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Text": [[2, 1, 1, "", "to_svg"]], "efficalc.constants": [[3, 4, 1, "", "E"], [3, 4, 1, "", "ONE"], [3, 4, 1, "", "PI"], [3, 4, 1, "", "TWO"], [3, 4, 1, "", "ZERO"]], "efficalc.report_builder": [[1, 0, 1, "", "LongCalcDisplayType"], [1, 0, 1, "", "ReportBuilder"]], "efficalc.report_builder.ReportBuilder": [[1, 1, 1, "", "get_html_as_str"], [1, 1, 1, "", "save_report"], [1, 1, 1, "", "view_report"]], "efficalc.sections": [[11, 0, 1, "", "AiscAngle"], [11, 0, 1, "", "AiscChannel"], [11, 0, 1, "", "AiscCircular"], [11, 0, 1, "", "AiscDoubleAngle"], [11, 0, 1, "", "AiscRectangular"], [11, 0, 1, "", "AiscTee"], [11, 0, 1, "", "AiscWideFlange"], [11, 2, 1, "", "get_aisc_angle"], [11, 2, 1, "", "get_aisc_channel"], [11, 2, 1, "", "get_aisc_circular"], [11, 2, 1, "", "get_aisc_double_angle"], [11, 2, 1, "", "get_aisc_rectangular"], [11, 2, 1, "", "get_aisc_tee"], [11, 2, 1, "", "get_aisc_wide_flange"]], "efficalc.unit_conversions": [[3, 4, 1, "", "deg_to_rad"], [3, 4, 1, "", "ft_to_in"], [3, 4, 1, "", "k_to_lb"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function", "3": "py:module", "4": "py:data"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"], "3": ["py", "module", "Python module"], "4": ["py", "data", "Python data"]}, "titleterms": {"base": [0, 2], "class": [0, 2], "calcul": [1, 6, 8, 13], "helper": [1, 8], "constant": 3, "unit": 3, "convers": 3, "exampl": [2, 4, 5], "get": 7, "start": 7, "efficalc": [7, 8], "api": [2, 5, 7], "document": 7, "more": [7, 8], "indic": [], "tabl": [], "integr": 8, "extend": 8, "math": 9, "oper": 9, "purpos": 10, "section": [2, 11], "properti": 11, "style": 12, "report": [5, 6, 12], "test": 13, "your": 13, "about": [], "todo": [], "add": [], "simpl": 4, "graphic": [], "anim": [], "see": [], "librari": [], "action": [], "background": 10, "find": 10, "mistak": 10, "autom": 10, "scalabl": 10, "format": 10, "submitt": 10, "modern": 10, "workflow": 10, "A": 10, "new": 10, "era": 10, "instal": 6, "first": 6, "function": [6, 8], "view": 6, "run": [], "differ": [], "input": 6, "valu": [6, 8], "quickstart": 6, "chang": 6, "paramet": 8, "return": 8, "calc": [5, 8], "option": [], "1": [], "recommend": [], "2": [], "subscript": 12, "superscript": 12, "greek": 12, "letter": 12, "symbol": 12, "ad": 12, "space": 12, "hundr": 8, "One": 8, "invis": 8, "come": 8, "soon": 8, "why": 13, "matter": 13, "how": 13, "To": 13, "concret": [2, 4], "beam": [2, 4], "neutral": 4, "axi": 4, "advanc": 4, "steel": 4, "moment": 4, "strength": 4, "figur": 5, "from": 5, "file": 5, "doc": [2, 5], "matplotlib": 5, "raw": 5, "byte": 5, "draw": 2, "canva": 2, "cross": 2, "support": 2, "load": 2, "scheme": 2, "element": 2, "line": 2, "polylin": 2, "marker": 2}, "envversion": {"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": 60}, "alltitles": {"Constants and Unit Conversions": [[3, "constants-and-unit-conversions"]], "Unit Conversions": [[3, "module-efficalc.unit_conversions"]], "Constants": [[3, "id1"]], "Examples": [[4, "examples"], [2, "examples"]], "Simple": [[4, "simple"]], "Concrete Beam Neutral Axis": [[4, "concrete-beam-neutral-axis"]], "Advanced": [[4, "advanced"]], "Steel Beam Moment Strength": [[4, "steel-beam-moment-strength"]], "Quickstart": [[6, "quickstart"]], "Installation": [[6, "installation"]], "First Calculation Function": [[6, "first-calculation-function"]], "View Reports": [[6, "view-reports"]], "Change Input Values": [[6, "change-input-values"]], "efficalc": [[7, "efficalc"]], "Get Started": [[7, "get-started"]], "API Documentation": [[7, "api-documentation"]], "More": [[7, "more"]], "Calculation Helpers": [[8, "calculation-helpers"], [1, "calculation-helpers"]], "Integrating and Extending efficalc": [[8, "integrating-and-extending-efficalc"]], "Parameters and Return Values in Calc Functions": [[8, "parameters-and-return-values-in-calc-functions"]], "Hundreds of Calculations with One Function": [[8, "hundreds-of-calculations-with-one-function"]], "Helper Functions": [[8, "helper-functions"]], "Invisible Helpers": [[8, "invisible-helpers"]], "More coming soon": [[8, "more-coming-soon"]], "Math Operations": [[9, "math-operations"]], "Purpose and Background": [[10, "purpose-and-background"]], "Finding mistakes": [[10, "finding-mistakes"]], "Automation and Scalability": [[10, "automation-and-scalability"]], "Formatting and Submittal": [[10, "formatting-and-submittal"]], "Modern Workflows": [[10, "modern-workflows"]], "A New Era": [[10, "a-new-era"]], "Section Properties": [[11, "section-properties"]], "Styling Reports": [[12, "styling-reports"]], "Subscripts": [[12, "subscripts"]], "Superscripts": [[12, "superscripts"]], "Greek Letters and Symbols": [[12, "greek-letters-and-symbols"]], "Adding Spaces": [[12, "adding-spaces"]], "Testing Your Calculations": [[13, "testing-your-calculations"]], "Why Testing Matters": [[13, "why-testing-matters"]], "How To Test Your Calculations": [[13, "how-to-test-your-calculations"]], "Base Classes": [[0, "base-classes"], [2, "base-classes"]], "Drawing on a Canvas": [[2, "drawing-on-a-canvas"]], "Concrete beam cross-section": [[2, "concrete-beam-cross-section"]], "Beam support and loading scheme": [[2, "beam-support-and-loading-scheme"]], "API docs": [[2, "api-docs"], [5, "api-docs"], [5, "id1"], [5, "id3"]], "Canvas": [[2, "id1"]], "Canvas Elements": [[2, "canvas-elements"]], "Line/Polyline Markers": [[2, "line-polyline-markers"]], "Figures in Calc Reports": [[5, "figures-in-calc-reports"]], "Figure from a file": [[5, "figure-from-a-file"]], "Example": [[5, "example"], [5, "id2"], [5, "id4"]], "Figure from a matplotlib figure": [[5, "figure-from-a-matplotlib-figure"]], "Figure from raw bytes": [[5, "figure-from-raw-bytes"]]}, "indexentries": {"assumption (class in efficalc)": [[0, "efficalc.Assumption"]], "calculation (class in efficalc)": [[0, "efficalc.Calculation"]], "comparison (class in efficalc)": [[0, "efficalc.Comparison"]], "comparisonstatement (class in efficalc)": [[0, "efficalc.ComparisonStatement"]], "heading (class in efficalc)": [[0, "efficalc.Heading"]], "input (class in efficalc)": [[0, "efficalc.Input"]], "inputtable (class in efficalc)": [[0, "efficalc.InputTable"]], "symbolic (class in efficalc)": [[0, "efficalc.Symbolic"]], "table (class in efficalc)": [[0, "efficalc.Table"]], "textblock (class in efficalc)": [[0, "efficalc.TextBlock"]], "title (class in efficalc)": [[0, "efficalc.Title"]], "estimate_display_length() (efficalc.calculation method)": [[0, "efficalc.Calculation.estimate_display_length"]], "estimate_display_length() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.estimate_display_length"]], "get_message() (efficalc.comparison method)": [[0, "efficalc.Comparison.get_message"]], "get_value() (efficalc.calculation method)": [[0, "efficalc.Calculation.get_value"]], "get_value() (efficalc.comparison method)": [[0, "efficalc.Comparison.get_value"]], "get_value() (efficalc.input method)": [[0, "efficalc.Input.get_value"]], "get_value() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.get_value"]], "is_passing() (efficalc.comparison method)": [[0, "efficalc.Comparison.is_passing"]], "result() (efficalc.calculation method)": [[0, "efficalc.Calculation.result"]], "result() (efficalc.comparison method)": [[0, "efficalc.Comparison.result"]], "result() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.result"]], "str_result_with_description() (efficalc.calculation method)": [[0, "efficalc.Calculation.str_result_with_description"]], "str_result_with_description() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.str_result_with_description"]], "str_result_with_name() (efficalc.input method)": [[0, "efficalc.Input.str_result_with_name"]], "str_result_with_unit() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.str_result_with_unit"]], "str_substituted() (efficalc.calculation method)": [[0, "efficalc.Calculation.str_substituted"]], "str_substituted() (efficalc.comparison method)": [[0, "efficalc.Comparison.str_substituted"]], "str_substituted() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.str_substituted"]], "str_symbolic() (efficalc.calculation method)": [[0, "efficalc.Calculation.str_symbolic"]], "str_symbolic() (efficalc.comparison method)": [[0, "efficalc.Comparison.str_symbolic"]], "str_symbolic() (efficalc.comparisonstatement method)": [[0, "efficalc.ComparisonStatement.str_symbolic"]], "str_symbolic() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.str_symbolic"]], "calculationrunner (class in efficalc.calculation_runner)": [[1, "efficalc.calculation_runner.CalculationRunner"]], "longcalcdisplaytype (class in efficalc.report_builder)": [[1, "efficalc.report_builder.LongCalcDisplayType"]], "reportbuilder (class in efficalc.report_builder)": [[1, "efficalc.report_builder.ReportBuilder"]], "calculate_all_items() (efficalc.calculation_runner.calculationrunner method)": [[1, "efficalc.calculation_runner.CalculationRunner.calculate_all_items"]], "calculate_results() (efficalc.calculation_runner.calculationrunner method)": [[1, "efficalc.calculation_runner.CalculationRunner.calculate_results"]], "clear_all_input_default_overrides() (in module efficalc)": [[1, "efficalc.clear_all_input_default_overrides"]], "clear_saved_objects() (in module efficalc)": [[1, "efficalc.clear_saved_objects"]], "get_all_calc_objects() (in module efficalc)": [[1, "efficalc.get_all_calc_objects"]], "get_html_as_str() (efficalc.report_builder.reportbuilder method)": [[1, "efficalc.report_builder.ReportBuilder.get_html_as_str"]], "get_override_or_default_value() (in module efficalc)": [[1, "efficalc.get_override_or_default_value"]], "save_calculation_item() (in module efficalc)": [[1, "efficalc.save_calculation_item"]], "save_report() (efficalc.report_builder.reportbuilder method)": [[1, "efficalc.report_builder.ReportBuilder.save_report"]], "set_input_default_overrides() (in module efficalc)": [[1, "efficalc.set_input_default_overrides"]], "view_report() (efficalc.report_builder.reportbuilder method)": [[1, "efficalc.report_builder.ReportBuilder.view_report"]], "arrowmarker (class in efficalc.canvas)": [[2, "efficalc.canvas.ArrowMarker"]], "canvas (class in efficalc.canvas)": [[2, "efficalc.canvas.Canvas"]], "canvaselement (class in efficalc.canvas)": [[2, "efficalc.canvas.CanvasElement"]], "circle (class in efficalc.canvas)": [[2, "efficalc.canvas.Circle"]], "circlemarker (class in efficalc.canvas)": [[2, "efficalc.canvas.CircleMarker"]], "dimension (class in efficalc.canvas)": [[2, "efficalc.canvas.Dimension"]], "elementwithmarkers (class in efficalc.canvas)": [[2, "efficalc.canvas.ElementWithMarkers"]], "ellipse (class in efficalc.canvas)": [[2, "efficalc.canvas.Ellipse"]], "leader (class in efficalc.canvas)": [[2, "efficalc.canvas.Leader"]], "line (class in efficalc.canvas)": [[2, "efficalc.canvas.Line"]], "marker (class in efficalc.canvas)": [[2, "efficalc.canvas.Marker"]], "polyline (class in efficalc.canvas)": [[2, "efficalc.canvas.Polyline"]], "rectangle (class in efficalc.canvas)": [[2, "efficalc.canvas.Rectangle"]], "text (class in efficalc.canvas)": [[2, "efficalc.canvas.Text"]], "add() (efficalc.canvas.canvas method)": [[2, "efficalc.canvas.Canvas.add"]], "get_common_svg_style_elements() (efficalc.canvas.canvaselement method)": [[2, "efficalc.canvas.CanvasElement.get_common_svg_style_elements"]], "get_markers() (efficalc.canvas.elementwithmarkers method)": [[2, "efficalc.canvas.ElementWithMarkers.get_markers"]], "to_path_commands() (efficalc.canvas.polyline method)": [[2, "efficalc.canvas.Polyline.to_path_commands"]], "to_svg() (efficalc.canvas.arrowmarker method)": [[2, "efficalc.canvas.ArrowMarker.to_svg"]], "to_svg() (efficalc.canvas.canvas method)": [[2, "efficalc.canvas.Canvas.to_svg"]], "to_svg() (efficalc.canvas.canvaselement method)": [[2, "efficalc.canvas.CanvasElement.to_svg"]], "to_svg() (efficalc.canvas.circle method)": [[2, "efficalc.canvas.Circle.to_svg"]], "to_svg() (efficalc.canvas.circlemarker method)": [[2, "efficalc.canvas.CircleMarker.to_svg"]], "to_svg() (efficalc.canvas.dimension method)": [[2, "efficalc.canvas.Dimension.to_svg"]], "to_svg() (efficalc.canvas.ellipse method)": [[2, "efficalc.canvas.Ellipse.to_svg"]], "to_svg() (efficalc.canvas.leader method)": [[2, "efficalc.canvas.Leader.to_svg"]], "to_svg() (efficalc.canvas.line method)": [[2, "efficalc.canvas.Line.to_svg"]], "to_svg() (efficalc.canvas.polyline method)": [[2, "efficalc.canvas.Polyline.to_svg"]], "to_svg() (efficalc.canvas.rectangle method)": [[2, "efficalc.canvas.Rectangle.to_svg"]], "to_svg() (efficalc.canvas.text method)": [[2, "efficalc.canvas.Text.to_svg"]], "figurefrombytes (class in efficalc)": [[5, "efficalc.FigureFromBytes"]], "figurefromfile (class in efficalc)": [[5, "efficalc.FigureFromFile"]], "figurefrommatplotlib (class in efficalc)": [[5, "efficalc.FigureFromMatplotlib"]], "load_image_data() (efficalc.figurefrombytes method)": [[5, "efficalc.FigureFromBytes.load_image_data"]], "load_image_data() (efficalc.figurefromfile method)": [[5, "efficalc.FigureFromFile.load_image_data"]], "load_image_data() (efficalc.figurefrommatplotlib method)": [[5, "efficalc.FigureFromMatplotlib.load_image_data"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["base_classes", "calculation_helpers", "canvas", "constants", "examples", "figures", "get_started", "index", "integration", "math_operations", "purpose", "section_properties", "styling", "testing"], "filenames": ["base_classes.rst", "calculation_helpers.rst", "canvas.rst", "constants.rst", "examples.rst", "figures.rst", "get_started.rst", "index.rst", "integration.rst", "math_operations.rst", "purpose.rst", "section_properties.rst", "styling.rst", "testing.rst"], "titles": ["Base Classes", "Calculation Helpers", "Drawing on a Canvas", "Constants and Unit Conversions", "Examples", "Figures in Calc Reports", "Quickstart", "efficalc", "Integrating and Extending efficalc", "Math Operations", "Purpose and Background", "Section Properties", "Styling Reports", "Testing Your Calculations"], "terms": {"sphinx": [], "quickstart": 7, "thu": [], "mar": [], "7": [0, 2, 8], "21": [], "03": [], "13": 2, "2024": [], "you": [0, 2, 5, 6, 7, 8, 10, 13], "can": [0, 1, 2, 5, 6, 7, 8, 10, 12, 13], "adapt": 13, "thi": [0, 1, 2, 3, 5, 6, 7, 8, 10, 11], "file": 1, "complet": [1, 10], "your": [0, 2, 5, 6, 7, 8, 10], "like": [7, 8, 10], "should": [0, 1, 2, 5], "least": [], "contain": [2, 8, 11], "root": 9, "toctre": [], "direct": 2, "_home": [], "A": [0, 1, 2, 7, 8, 11, 13], "featur": [7, 8], "rich": 7, "librari": [5, 7, 8], "reimagin": 7, "calcul": [0, 2, 3, 4, 5, 7, 10], "i": [0, 1, 2, 5, 6, 7, 8, 10, 11, 13], "design": [0, 6, 7, 8, 10, 11, 13], "transform": 7, "how": [1, 5, 6, 7, 8, 10], "engin": [7, 8, 10, 13], "approach": [7, 8, 10], "move": 7, "awai": 7, "from": [0, 1, 2, 3, 6, 7, 8, 10, 11], "tradit": [7, 10], "method": [1, 2, 7, 10], "manual": [7, 10], "spreadsheet": [7, 10, 13], "toward": 7, "effici": [7, 8, 10], "accur": 7, "collabor": 7, "process": [5, 7, 10], "built": 7, "modern": [7, 8], "mind": 7, "leverag": 7, "power": [7, 8, 9], "python": [0, 5, 7, 8, 10, 13], "offer": 7, "an": [0, 1, 2, 5, 6, 7, 8, 10, 11, 12, 13], "extens": [2, 7], "testabl": 7, "framework": [7, 13], "build": [6, 7, 8, 10], "ani": [0, 1, 2, 6, 7, 8, 10, 12, 13], "order": 7, "doesn": [7, 10], "t": [7, 10, 11], "lock": 7, "predefin": 7, "sequenc": [7, 12], "suit": 7, "project": [6, 7, 8, 10], "": [1, 2, 5, 6, 7, 8, 9, 10, 11], "need": [2, 5, 7, 10, 12, 13], "control": [0, 1, 7], "content": [2, 7], "decid": 7, "what": [7, 10], "displai": [0, 1, 2, 5, 7, 12], "report": [0, 1, 2, 3, 4, 7, 8, 10], "ensur": [7, 13], "onli": [0, 1, 2, 7, 8, 10], "relev": [1, 7], "inform": [7, 8], "commun": [7, 10], "make": [2, 6, 7, 8, 10, 13], "concis": 7, "detail": [7, 8, 10, 11], "desir": [1, 7], "autom": 7, "gener": [0, 1, 2, 4, 5, 7, 8, 10], "automat": 7, "creat": [1, 2, 5, 7, 10, 12, 13], "profession": 7, "crystal": 7, "clear": [1, 7, 8], "review": [7, 10], "ambigu": 7, "free": [7, 8], "submitt": 7, "specif": [7, 13], "out": [2, 7, 10], "box": [7, 11], "helper": [2, 7], "common": [2, 6, 7, 10, 12], "problem": [5, 7], "section": [0, 7, 8], "properti": [2, 7, 8], "databas": [7, 11], "unit": [0, 2, 7, 12], "reusabl": 7, "templat": [0, 7], "onc": 7, "reus": 7, "them": [5, 7, 10, 13], "across": 7, "multipl": [0, 1, 2, 7, 8, 9, 12], "open": [1, 7], "sourc": [2, 4, 5, 7], "ar": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13], "we": [4, 5, 6, 7, 8, 10, 13], "miss": 7, "wish": 7, "had": 7, "request": [2, 7, 8], "yourself": [7, 10], "so": [6, 7, 8, 10], "everyon": 7, "benefit": 7, "improv": [7, 10], "pleas": 7, "give": [6, 7, 10, 13], "try": [7, 10], "let": [5, 7], "u": [0, 5, 6, 7, 10], "know": [5, 7], "think": [7, 8], "purpos": [7, 11], "base": [1, 7, 8, 10], "class": [1, 5, 6, 7, 11], "math": 7, "oper": [0, 7], "constant": [0, 7, 11], "convers": 7, "style": [2, 7], "integr": [5, 7, 10], "extend": [2, 7, 10], "test": 7, "exampl": [6, 7, 8, 10, 12], "index": [], "modul": 1, "search": [], "page": [], "thing": [2, 10, 13], "don": 10, "about": [2, 8, 10, 11], "excel": [8, 10], "tabl": [0, 8], "To": [5, 6, 10], "err": 13, "human": 13, "realli": [8, 13], "foul": 13, "up": [1, 2, 8, 13], "comput": [5, 13], "paul": 13, "r": [2, 5, 13], "ehrlich": 13, "background": [2, 7], "efficalc": [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 13], "wa": [0, 8, 10, 11], "develop": [0, 10, 13], "provid": [0, 1, 8, 10, 13], "robust": 10, "flexibl": [5, 6, 10], "altern": 10, "which": [0, 1, 9, 10], "ha": [10, 11], "remain": 10, "industri": [10, 13], "standard": [10, 11, 12], "decad": [9, 10], "while": 10, "versatil": 10, "us": [0, 1, 5, 6, 8, 10, 11, 12, 13], "mani": [6, 8, 10, 12], "differ": [5, 6, 8, 10], "limit": 10, "its": [0, 1, 2, 10], "abil": 10, "furthermor": 10, "tool": 10, "particularli": 10, "good": [0, 10], "one": [0, 8, 10, 11, 13], "especi": [10, 13], "tailor": 10, "experi": 10, "work": [6, 8, 10, 13], "here": [2, 4, 5, 6, 8, 10, 12], "few": [4, 6, 10], "want": [6, 8, 10, 13], "fix": [8, 10], "If": [0, 1, 2, 5, 10, 11, 12], "write": [8, 10, 13], "ll": [6, 8, 10], "have": [0, 1, 2, 6, 8, 10], "some": [2, 8, 10, 12], "point": [2, 10, 11], "It": [0, 1, 10], "could": [8, 10], "debug": 10, "our": [6, 8, 10, 13], "own": 10, "understand": 10, "colleagu": 10, "share": [8, 10], "modifi": 10, "old": [10, 13], "repurpos": 10, "slightli": 10, "scenario": [8, 10], "when": [0, 5, 6, 8, 10, 13], "hard": 10, "follow": [5, 10, 11], "get": [1, 8, 10, 13], "wai": [5, 6, 8, 10, 13], "Not": [6, 8, 10], "tediou": 10, "annoi": 10, "lead": 10, "cost": 10, "time": [5, 9, 10, 13], "reput": 10, "potenti": 10, "licens": 10, "There": [6, 10], "also": [1, 8, 10], "other": [1, 8, 10, 12, 13], "check": [0, 10], "offici": 10, "peer": 10, "In": [8, 10, 13], "case": [8, 10, 12, 13], "error": [0, 8, 10], "ridden": 10, "host": 10, "implic": 10, "includ": [2, 10], "costli": 10, "delai": 10, "loss": 10, "rapport": 10, "import": [0, 2, 5, 6, 10], "client": 10, "take": [6, 10, 13], "look": [8, 10], "easier": 10, "imagin": 10, "all": [1, 2, 6, 8, 10, 13], "steel": 10, "floor": [9, 10], "beam": [8, 10], "favorit": [8, 10], "go": 10, "through": [8, 10], "input": [0, 1, 2, 3, 8, 10, 12, 13], "uniqu": [0, 10, 13], "dimens": [2, 10], "load": [5, 10], "copi": 10, "next": [10, 13], "But": [6, 8, 10, 13], "realiz": 10, "cell": 10, "mayb": 10, "chang": [0, 8, 10, 13], "type": [0, 1, 2, 5, 8, 10, 11], "avail": [8, 10], "updat": [6, 8, 10], "back": [10, 11, 13], "everi": [8, 10], "same": [6, 8, 10], "exact": 10, "howev": [8, 10], "actual": [6, 9, 10], "function": [1, 2, 10, 11, 13], "Then": [10, 13], "re": [8, 10], "run": [1, 5, 6, 8, 10, 13], "simplifi": [8, 10], "all_beam_configur": 10, "1": [0, 1, 2, 3, 5, 9, 10, 11, 12], "12": [2, 3, 8, 10], "3": [0, 2, 3, 5, 6, 8, 10, 11], "34": 10, "50": [2, 8, 10], "4": [0, 2, 5, 6, 8, 10, 11, 13], "15": [2, 10], "2": [0, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13], "55": 10, "25": [2, 10, 13], "def": [2, 5, 6, 8, 10, 13], "beam_calcul": 10, "name": [0, 1, 10, 11, 12], "span": [8, 10], "ultimate_load": 10, "steel_strength": 10, "insert": 10, "design_all_beam": 10, "configur": 10, "result": [0, 1, 2, 3, 8, 10, 12, 13], "print": [0, 1, 6, 8, 10], "return": [0, 1, 2, 5, 6, 9, 10, 11], "more": [4, 5, 6, 9, 10, 12, 13], "depth": [10, 11], "advanc": [6, 10], "At": 10, "end": [2, 10], "most": [6, 8, 10, 12], "submit": 10, "independ": 10, "author": 10, "noth": [9, 10], "just": [5, 8, 10], "bunch": 10, "number": [0, 10], "mai": [0, 2, 5, 6, 8, 10], "right": [2, 6, 8, 10], "often": 10, "facilit": 10, "proper": 10, "document": [1, 6, 10], "consum": 10, "By": [5, 10], "creation": [8, 10], "highli": 10, "readabl": [8, 10], "enabl": [8, 10], "spend": 10, "do": [6, 8, 10], "thei": [1, 10], "less": [3, 10], "calc": [2, 7, 10, 13], "focu": 10, "might": [8, 10], "veri": 10, "These": [8, 10], "dai": 10, "increas": [10, 13], "whether": [0, 2, 5, 10, 11], "csi": 10, "oapi": 10, "etab": 10, "analysi": 10, "grasshopp": 10, "rhino": 10, "script": 10, "parametr": 10, "model": 10, "without": [0, 1, 10], "lot": [5, 6, 8, 10], "past": 10, "date": 10, "intervent": 10, "nativ": 10, "plug": 10, "directli": [5, 10, 11], "bypass": 10, "friction": 10, "data": [0, 5, 10], "mention": [8, 10], "ideal": 10, "languag": 10, "larg": [10, 13], "amount": 10, "With": [8, 10, 13], "panda": 10, "numpi": 10, "matplotlib": 10, "manag": [2, 10], "set": [0, 1, 2, 8, 10], "save": [1, 5, 8, 10], "headach": 10, "v": [3, 8, 10], "idea": [8, 10], "aim": 10, "shift": 10, "code": [0, 2, 4, 6, 8, 10, 12], "driven": 10, "empow": 10, "user": 10, "reliabl": [10, 13], "transit": 10, "qualiti": 10, "better": [8, 10], "among": 10, "team": 10, "stakehold": 10, "new": [6, 8, 13], "releas": 6, "distribut": 6, "pypi": 6, "via": 6, "pip": 6, "best": [6, 8], "defin": [0, 1, 2, 6, 8, 11, 13], "The": [0, 1, 2, 5, 6, 8, 11, 13], "For": [4, 6, 8, 12], "pythagorean": 6, "theorem": 6, "perimet": [6, 11], "triangl": [6, 8], "titl": [0, 6, 8], "sqrt": [6, 8, 9], "descript": [0, 6, 8], "length": [0, 2, 6, 8], "side": 6, "b": [0, 6, 8, 11], "c": [0, 5, 6, 8, 11], "hypotenus": [6, 8], "p": 6, "produc": [6, 8], "browser": [1, 6], "someth": 6, "simpl": [5, 6, 8, 12], "report_build": [1, 6], "calculationreportbuild": [], "pythagorean_perimet": 6, "builder": [6, 8], "view_report": [1, 6, 8], "nice": 6, "now": [6, 8], "great": [6, 8], "easi": [6, 8, 13], "alwai": 6, "default": [0, 1, 2, 5, 6, 8], "gave": 6, "luckili": 6, "super": 6, "suppli": [5, 6], "overrid": [0, 1, 6], "second": [0, 6], "argument": [6, 8, 9], "new_input": 6, "5": [0, 2, 6, 8, 13], "6": [0, 2, 6, 8, 11], "show": [0, 3, 5, 6, 8], "And": 6, "well": [2, 6, 13], "real": 8, "life": 8, "overal": [6, 11], "pattern": 6, "matter": 6, "deeper": 6, "dive": 6, "api": 6, "see": [0, 5, 6, 8], "option": [0, 1, 2, 5, 6, 8], "perfect": [6, 8], "happi": 6, "equat": [10, 13], "stage": 10, "assumpt": [0, 1], "str": [0, 1, 2, 5, 11], "meant": 0, "clearli": 0, "declar": 0, "form": 0, "basi": 0, "paramet": [0, 1, 2, 5, 9, 11], "text": [0, 2, 12], "describ": 0, "seismic": 0, "provis": 0, "asc": 0, "16": [0, 2], "assum": 0, "variable_nam": 0, "express": [0, 1, 9], "variabl": [0, 1, 3, 8, 9, 12], "float": [0, 2, 8, 11], "int": 0, "none": [0, 1, 2, 5, 8], "refer": 0, "result_check": [0, 1, 13], "bool": [0, 1, 2, 5], "fals": [0, 1, 2, 5], "primari": 0, "object": [0, 1, 3, 5, 8, 9], "symbol": 0, "latex": [0, 9, 12], "format": [0, 1, 2, 12], "e": [0, 1, 2, 3, 5, 9], "physic": 0, "short": 0, "g": [0, 1, 5], "accompani": 0, "indic": [0, 11], "final": [0, 8], "true": [0, 1, 2, 13], "portal": 0, "version": 0, "ft": [0, 3, 8, 11], "1ft": 0, "4ft": 0, "5ft": 0, "estimate_display_length": 0, "calculationlength": 0, "estim": 0, "substitut": 0, "represent": [0, 2], "get_valu": [0, 8], "alia": [0, 9], "valueerror": [0, 11], "zerodivisionerror": 0, "0": [0, 2, 3, 8, 12], "messag": 0, "self": 0, "evalu": 0, "str_result_with_descript": 0, "string": [0, 1, 2], "symbolicexpr": 0, "str_substitut": 0, "valu": [0, 1, 2, 9, 11], "str_symbol": 0, "qualnam": 1, "start": [0, 1, 2, 5], "boundari": 1, "comparison": [0, 1], "compar": 0, "liter": [0, 1, 2], "true_messag": 0, "ok": 0, "false_messag": 0, "explicit": 0, "against": 0, "specifi": [0, 1, 2, 11], "didplai": 0, "depend": 0, "first": 0, "comparis": 0, "desplai": 0, "get_messag": 0, "appropri": 0, "reult": 0, "NO": 0, "is_pass": 0, "comparisonstat": 0, "comparator2": 0, "doe": [0, 1, 2, 9], "given": [0, 1, 2, 8, 13], "rather": 0, "exactli": 0, "annot": 0, "embellish": 0, "els": [0, 8], "logic": 0, "third": 0, "requir": [0, 5], "pass": [0, 9], "head": 0, "head_level": 0, "8": [0, 2], "add": [0, 2, 5, 9], "auto": [0, 2], "increment": 0, "size": [0, 1, 2, 8, 11], "larger": 0, "higher": 0, "level": 0, "than": [0, 8], "lower": 0, "each": [0, 8], "correspond": 0, "posit": [0, 2], "would": 0, "befor": [0, 12], "anoth": 0, "default_valu": [0, 1], "input_typ": 0, "select": 0, "select_opt": 0, "list": [0, 1, 2, 12], "min_valu": 0, "max_valu": 0, "num_step": 0, "element": [0, 12, 13], "overridden": 0, "runner": 0, "html": [0, 1, 5], "applic": 0, "minimum": [0, 2, 9], "allow": [0, 2], "maximum": [0, 9], "interv": 0, "between": [0, 2, 8, 11], "legal": 0, "field": 0, "http": [0, 4, 8, 12], "mozilla": 0, "org": 0, "en": 0, "doc": 0, "web": [0, 1, 11], "attribut": 0, "step": 0, "note": [0, 11], "current": [0, 5], "str_result_with_nam": 0, "textblock": 0, "block": 0, "main": [0, 4], "bolder": 0, "save_calculation_item": 1, "item": 1, "global": 1, "store": [1, 5], "clear_saved_object": 1, "get_override_or_default_valu": 1, "input_nam": 1, "found": [1, 8, 11], "set_input_default_overrid": 1, "default_overrid": 1, "dict": [1, 13], "get_all_calc_object": 1, "clear_all_input_default_overrid": 1, "calculationrunn": [1, 13], "calc_funct": [1, 13], "callabl": 1, "input_v": 1, "execut": 1, "were": 1, "dure": 1, "instanti": 1, "perform": [1, 5], "necessari": [1, 8], "ignor": 1, "dictionari": 1, "empti": 1, "calculate_all_item": 1, "etc": [1, 2, 5], "calculate_result": [1, 13], "filter": 1, "those": [1, 13], "been": [1, 8], "mark": [1, 9], "where": [0, 1, 2, 5, 8, 11], "view": [1, 8], "immedi": 1, "accordingli": 1, "kei": 1, "get_html_as_str": 1, "save_report": 1, "folder_path": 1, "file_nam": 1, "calc_report": 1, "open_on_cr": 1, "locat": [1, 2], "exist": 1, "path": [1, 2, 5], "folder": [1, 4], "filepath": 1, "temporari": 1, "pdf": 1, "calculation_runn": 1, "all_aisc_wide_flange_nam": [], "immut": [], "constructor": [], "tupl": 2, "iter": [], "initi": [], "w44x335": [], "w44x290": [], "w44x262": [], "w40x655": [], "w44x230": [], "w40x503": [], "w40x593": [], "w40x431": [], "w40x397": [], "w40x372": [], "w40x297": [], "w40x362": [], "w40x277": [], "w40x249": [], "w40x215": [], "w40x199": [], "w40x324": [], "w40x392": [], "w40x331": [], "w40x327": [], "w40x294": [], "w40x278": [], "w40x264": [], "w40x235": [], "w40x211": [], "w40x183": [], "w40x149": [], "w40x167": [], "w36x853": [], "w36x802": [], "w36x723": [], "w36x652": [], "w36x529": [], "w36x487": [], "w36x925": [], "w36x441": [], "w36x395": [], "w36x361": [], "w36x330": [], "w36x302": [], "w36x262": [], "w36x282": [], "w36x231": [], "w36x247": [], "w36x256": [], "w36x232": [], "w36x210": [], "w36x194": [], "w36x182": [], "w36x170": [], "w36x160": [], "w36x150": [], "w36x135": [], "w33x387": [], "w33x354": [], "w33x291": [], "w33x318": [], "w33x241": [], "w33x263": [], "w33x221": [], "w33x201": [], "w33x169": [], "w33x152": [], "w33x141": [], "w33x130": [], "w33x118": [], "w30x357": [], "w30x391": [], "w30x326": [], "w30x292": [], "w30x235": [], "w30x261": [], "w30x191": [], "w30x211": [], "w30x173": [], "w30x148": [], "w30x124": [], "w30x132": [], "w30x116": [], "w30x108": [], "w30x99": [], "w30x90": [], "w27x368": [], "w27x539": [], "w27x336": [], "w27x307": [], "w27x281": [], "w27x258": [], "w27x235": [], "w27x194": [], "w27x217": [], "w27x178": [], "w27x161": [], "w27x129": [], "w27x146": [], "w27x114": [], "w27x102": [], "w27x84": [], "w24x370": [], "w27x94": [], "w24x335": [], "w24x306": [], "w24x279": [], "w24x250": [], "w24x229": [], "w24x192": [], "w24x207": [], "w24x176": [], "w24x162": [], "w24x146": [], "w24x117": [], "w24x131": [], "w24x104": [], "w24x94": [], "w24x103": [], "w24x84": [], "w24x68": [], "w24x76": [], "w24x62": [], "w24x55": [], "w21x275": [], "w21x248": [], "w21x201": [], "w21x223": [], "w21x182": [], "w21x166": [], "w21x147": [], "w21x132": [], "w21x111": [], "w21x93": [], "w21x73": [], "w21x122": [], "w21x83": [], "w21x68": [], "w21x62": [], "w21x101": [], "w21x55": [], "w21x48": [], "w21x50": [], "w21x57": [], "w18x311": [], "w21x44": [], "w18x283": [], "w18x258": [], "w18x234": [], "w18x192": [], "w18x211": [], "w18x175": [], "w18x158": [], "w18x143": [], "w18x130": [], "w18x119": [], "w18x106": [], "w18x86": [], "w18x97": [], "w18x76": [], "w18x71": [], "w18x65": [], "w18x55": [], "w18x60": [], "w18x50": [], "w18x46": [], "w18x40": [], "w18x35": [], "w16x100": [], "w16x89": [], "w16x67": [], "w16x77": [], "w16x57": [], "w16x50": [], "w16x40": [], "w16x45": [], "w16x36": [], "w16x31": [], "w16x26": [], "w14x873": [], "w14x808": [], "w14x730": [], "w14x665": [], "w14x550": [], "w14x605": [], "w14x500": [], "w14x455": [], "w14x426": [], "w14x398": [], "w14x370": [], "w14x311": [], "w14x342": [], "w14x283": [], "w14x257": [], "w14x233": [], "w14x211": [], "w14x193": [], "w14x176": [], "w14x159": [], "w14x145": [], "w14x132": [], "w14x120": [], "w14x99": [], "w14x109": [], "w14x90": [], "w14x82": [], "w14x74": [], "w14x68": [], "w14x61": [], "w14x53": [], "w14x48": [], "w14x43": [], "w14x38": [], "w14x34": [], "w14x30": [], "w14x26": [], "w14x22": [], "w12x336": [], "w12x305": [], "w12x279": [], "w12x252": [], "w12x230": [], "w12x210": [], "w12x190": [], "w12x170": [], "w12x152": [], "w12x136": [], "w12x120": [], "w12x106": [], "w12x87": [], "w12x96": [], "w12x79": [], "w12x72": [], "w12x65": [], "w12x58": [], "w12x53": [], "w12x50": [], "w12x45": [], "w12x35": [], "w12x40": [], "w12x30": 8, "w12x26": 8, "w12x22": [], "w12x19": 8, "w12x14": 8, "w12x16": [], "w10x112": [], "w10x100": [], "w10x77": [], "w10x88": [], "w10x68": [], "w10x60": [], "w10x54": [], "w10x45": [], "w10x49": 8, "w10x39": [], "w10x30": [], "w10x33": 8, "w10x26": [], "w10x22": [], "w10x19": 8, "w10x17": [], "w10x15": [], "w10x12": 8, "w8x67": [], "w8x48": [], "w8x58": [], "w8x40": 8, "w8x35": [], "w8x31": [], "w8x28": [], "w8x24": [], "w8x21": 8, "w8x18": [], "w8x15": 8, "w8x13": [], "w8x10": [], "w6x25": [], "w6x20": [], "w6x15": [], "w6x12": [], "w6x16": [], "w6x9": [], "w6x8": [], "w5x19": [], "w5x16": [], "w4x13": [], "m12": [], "5x12": [], "m12x11": [], "5x11": [], "m12x10": [], "m10x9": [], "m10x8": [], "m10x7": [], "m8x6": [], "m6x4": [], "m6x3": [], "m5x18": [], "9": [11, 12], "m4x4": [], "08": [], "m4x6": [], "m4x3": [], "45": [], "s24x106": [], "s24x121": [], "s24x90": [], "s24x100": [], "s24x80": [], "m3x2": [], "s20x96": [], "s20x86": [], "s20x66": [], "s20x75": [], "s18x70": [], "s18x54": [], "s15x50": [], "s15x42": [], "s12x50": [], "s12x40": [], "s12x31": [], "s12x35": [], "s10x35": [], "s10x25": [], "s8x23": [], "s8x18": [], "s6x17": [], "s6x12": [], "s5x10": [], "s4x9": [], "s4x7": [], "s3x7": [], "s3x5": [], "hp18x204": [], "hp18x181": [], "hp18x157": [], "hp18x135": [], "hp16x162": [], "hp16x183": [], "hp16x121": [], "hp16x141": [], "hp16x101": [], "hp16x88": [], "hp14x117": [], "hp14x102": [], "hp14x73": [], "hp14x89": [], "hp12x89": [], "hp12x84": [], "hp12x74": [], "hp12x53": [], "hp10x57": [], "hp10x42": [], "hp12x63": [], "hp8x36": [], "cd": [], "devic": [], "aiscangl": 11, "angl": [2, 9, 11], "aiscchannel": 11, "channel": 11, "aisccircular": 11, "circular": 11, "aiscdoubleangl": 11, "doubleangl": 11, "aiscrectangular": 11, "rectangular": 11, "aiscte": 11, "tee": 11, "aiscwideflang": 11, "wideflang": 11, "get_aisc_angl": 11, "section_s": [8, 11], "fetch": 11, "aisc": 11, "instanc": [3, 9, 11], "popul": 11, "aisc_nam": 11, "rais": [5, 11], "cannot": 11, "get_aisc_channel": 11, "get_aisc_circular": 11, "get_aisc_double_angl": 11, "doubl": 11, "get_aisc_rectangular": 11, "get_aisc_te": 11, "get_aisc_wide_flang": [8, 11], "wide": 11, "flang": 11, "cw": 11, "edi_std_nomenclatur": 11, "iw": 11, "ix": 11, "ii": 11, "iz": 11, "j": 11, "pa": 11, "pa2": 11, "pb": 11, "swa": 11, "swb": 11, "swc": 11, "sx": 11, "sy": 11, "sz": 11, "sza": 11, "szb": 11, "szc": 11, "t_f": 11, "w": [8, 11], "zx": [8, 11], "zy": 11, "b_t": 11, "d": 11, "kde": 11, "kdet": 11, "ro": 11, "rx": [2, 11], "ry": [2, 11], "rz": 11, "tana": 11, "wb": 11, "wc": 11, "x": [2, 11], "xp": 11, "y": [2, 11], "yp": 11, "za": 11, "zb": 11, "zc": 11, "dataclass": 11, "shape": [8, 11], "area": 11, "warp": 11, "edi": 11, "nomenclatur": 11, "moment": 11, "inertia": 11, "axi": [2, 11], "z": 11, "torsion": 11, "minu": [9, 11], "surfac": 11, "singl": [11, 12, 13], "long": [1, 11], "leg": 11, "guid": 11, "19": 11, "elast": 11, "modulu": 11, "addit": [2, 8, 9, 11], "f": 11, "nomin": 11, "weight": [8, 11], "lb": [3, 11], "plastic": 11, "width": [0, 1, 2, 5, 11], "longer": 11, "slender": 11, "ratio": 11, "shorter": 11, "distanc": [2, 11], "outer": 11, "face": 11, "toe": 11, "fillet": 11, "polar": 11, "radiu": [2, 11], "gyrat": 11, "shear": 11, "center": [2, 11], "thick": 11, "tangent": [9, 11], "ax": [5, 11], "graviti": 11, "along": 11, "horizont": [2, 11], "edg": 11, "member": 11, "neutral": 11, "vertic": [2, 11], "h": 11, "pc": 11, "pd": 11, "qf": 11, "qw": 11, "sw1": 11, "sw2": 11, "sw3": 11, "wgi": 11, "wno": 11, "bf": 11, "bfdet": 11, "ddet": 11, "eo": 11, "h_tw": 11, "ho": 11, "rt": 11, "tf": 11, "tfdet": 11, "tw": 11, "twdet": 11, "twdet_2": 11, "cross": 11, "flexur": 11, "static": 11, "abov": [8, 11], "mid": 11, "top": [2, 11], "bottom": [2, 11], "special": 11, "workabl": 11, "gage": 11, "inner": [0, 11], "fasten": 11, "hole": 11, "normal": 11, "centroid": 11, "effect": [11, 13], "d_t": 11, "od": 11, "tde": 11, "tnom": 11, "hss": 11, "round": [2, 9, 11], "pipe": 11, "outsid": 11, "diamet": 11, "wall": 11, "flat": [2, 11], "separ": 11, "bout": 11, "ht": 11, "bin": 11, "b_tde": 11, "h_tde": 11, "typic": 11, "repres": [2, 3, 11], "hollow": 11, "structur": 11, "bf_2tf": 11, "deriv": 11, "m": [11, 12], "cut": 11, "2tf": 11, "half": 11, "k1": 11, "line": [1, 11], "a_bracket": 9, "arg": 9, "bracket": 9, "wrap": [9, 12], "absolut": 9, "arg0": 9, "summat": 9, "arg1": 9, "arglast": 9, "r_bracket": 9, "c_bracket": 9, "curli": [9, 12], "co": 9, "cosinu": 9, "cosh": 9, "hyperbol": 9, "div": 9, "divis": 9, "frac": 9, "div2": 9, "within": [1, 8, 9, 12], "exp": 9, "ln": 9, "natur": [9, 12], "logarithm": 9, "log": 9, "log_arg0": 9, "log10": 9, "log_10": 9, "max": 9, "argn": 9, "min": [9, 12], "sub": 9, "mul": 9, "neg": [2, 9], "negat": 9, "plu": 9, "sum_el": 9, "po": 9, "positivit": 9, "squar": 9, "s_bracket": 9, "sin": 9, "sinu": 9, "sinh": 9, "sqr": 9, "subtract": 9, "tan": 9, "tanh": 9, "zero": 3, "latexexpr_efficalc": 3, "mathemat": [1, 12], "phyical": [], "fundament": [], "overload": [], "numer": [], "throw": [], "except": [], "divsion": [], "consid": [], "4g": [], "3f": [], "unit_format": [], "mathrm": [], "non": [], "ital": [], "insid": [], "mode": [], "expon": [], "scientif": [], "v1": [], "a_": [], "22": [], "mm": [], "v2": [], "876934835": [], "kn": [], "87693": [], "v3": [], "434": [], "cdot": [], "10": 2, "v8": [], "unit_convers": 3, "deg_to_rad": 3, "degre": [2, 3], "radian": 3, "divid": 3, "revers": [2, 3], "180": 3, "deg": 3, "rad": 3, "pi": 3, "180deg": 3, "142": 3, "ft_to_in": 3, "24": 3, "k_to_lb": 3, "kip": 3, "1000": [3, 8], "2000": 3, "reportbuild": [1, 6, 8], "ONE": 3, "two": [2, 3], "call": 8, "possibl": 8, "sometim": 8, "workflow": 8, "compat": 5, "both": 8, "sinc": [], "That": [2, 8], "shown": 8, "easiest": [], "pythagorean_with_param": 8, "default_a": 8, "default_b": 8, "equival": 8, "pythagorean_without_param": 8, "810249675906654": 8, "still": [8, 13], "batch": [5, 8], "collect": 8, "Be": [], "abl": [], "come": [2, 5, 13], "soon": [], "github": [4, 8], "issu": [5, 8], "link": [], "graph": 8, "figur": [2, 7, 8], "matric": 8, "notat": 12, "help": [2, 8, 12], "tip": 12, "charact": 12, "underscor": 12, "_1": 12, "definit": 12, "min_a": 12, "m_2": 12, "must": [2, 12], "brace": 12, "after": [12, 13], "_": 12, "min_": 12, "abc": 12, "m_": 12, "123": 12, "caret": 12, "circumflex": 12, "combin": 12, "www": 12, "overleaf": 12, "com": [4, 8, 12], "learn": 12, "list_of_greek_letters_and_math_symbol": 12, "phi_m": 12, "phi": 12, "squash": 12, "escap": 12, "forward": 12, "slash": 12, "todo": [], "intro": [], "column": 8, "whatev": 8, "highlight": 8, "over": [8, 13], "solut": 8, "As": 8, "bonu": 8, "find": 8, "constraint": 8, "beam_strength": 8, "default_s": 8, "default_span": 8, "default_fi": 8, "fy": 8, "f_y": 8, "ksi": 8, "size_nam": 8, "z_x": 8, "strength": 8, "complex": [8, 13], "m_p": 8, "k": 8, "optim": 8, "moment_strength": 8, "lightest": 8, "strong": 8, "enough": 8, "find_lightest_beam_for_demand": 8, "size_opt": 8, "moment_demand": 8, "lightest_beam": 8, "999999": 8, "strength_info": 8, "size_is_strong_enough": 8, "size_is_lighter_than_best": 8, "certain": 8, "available_beam_sect": 8, "moment_demand_on_beam": 8, "lightest_beam_s": 8, "digest": 8, "summari": 8, "demand": 8, "Or": 8, "extract": 8, "util": 8, "anyth": 8, "extra": 8, "invisible_square_sum": 8, "simpli": 8, "49": 8, "calculate_square_sum": 8, "sum": 8, "sup": [], "begin": [], "align": [], "4pt": [], "therefor": [], "left": 2, "\u00b2": 8, "standalon": 8, "resourc": [5, 8], "appreci": 8, "huge": 8, "ecosystem": 8, "conjunct": 8, "varieti": 8, "everydai": 8, "concept": 8, "youandvern": [4, 8], "feel": 8, "propos": 8, "pull": 8, "ve": 8, "plugin": 8, "elimin": 8, "necess": 8, "intend": 8, "incorpor": 8, "output": 8, "loop": 8, "previous": 8, "get_results_as_dict": [], "toler": 13, "mistak": 13, "slim": 13, "becom": 13, "digit": 13, "opportun": 13, "hundr": 13, "propag": 13, "affect": 13, "part": [2, 13], "unexpect": 13, "accuraci": 13, "evolv": 13, "confid": 13, "expect": 13, "rest": [5, 13], "behav": 13, "world": 13, "softwar": 13, "establish": 13, "disciplin": 13, "appli": [2, 13], "similar": 13, "principl": 13, "straightforward": 13, "assert": 13, "verifi": 13, "test_calc_funct": 13, "calc_function_simpl": 13, "pytest": 13, "prefer": 13, "regularli": 13, "ongo": 13, "continu": 4, "publish": 4, "repo": 4, "tree": 4, "visit": 4, "return_typ": 1, "either": 1, "calculate_results_as_dict": [], "save_fold": 1, "filenam": 1, "open_on_sav": 1, "support": 5, "three": 5, "imag": [2, 5], "caption": [2, 5], "figurefromfil": 5, "lazi": 5, "file_path": 5, "pathlik": 5, "full_width": [0, 2, 5], "tag": 5, "png": 5, "jpg": 5, "svg": [2, 5], "gif": 5, "full": [0, 2, 5], "load_image_data": 5, "my": 5, "pictur": 5, "calc_imag": 5, "popular": 5, "plot": 5, "figurefrommatplotlib": 5, "wrapper": 5, "around": [2, 5], "easili": 5, "pyplot": 5, "plt": 5, "draw_figure_with_matplotlib": 5, "fig": 5, "subplot": 5, "draw": [5, 7], "figurefrombyt": 5, "greater": 5, "throughout": 5, "becaus": 5, "entir": 5, "memori": 5, "figure_byt": 5, "generate_figure_byt": 5, "cloud": 0, "displi": 0, "nor": 0, "pure": 0, "str_result_with_unit": 0, "__str__": 0, "written": 2, "hand": 2, "usual": 2, "graphic": 2, "illustr": 2, "aspect": 2, "geometri": 2, "programmat": 2, "height": 2, "reinforc": 2, "cover": 2, "num_long_bar": 2, "long_bar_radiu": 2, "875": 2, "stirrup_diamet": 2, "375": 2, "stirrup_bend_radiu": 2, "stirrup_hook": 2, "scale": [1, 2], "30": 2, "default_element_stroke_width": 2, "outlin": 2, "beam_outlin": 2, "rectangl": 2, "fill": 2, "bdbdbd": 2, "stirrup": 2, "transvers": 2, "hook": 2, "corner_radiu": 2, "stroke_width": 2, "stroke": 2, "black": 2, "longitudin": 2, "blue": 2, "circl": 2, "long_bar_starting_x": 2, "long_bar_spac": 2, "long_bar_i": 2, "rang": 2, "004aad": 2, "placement": 2, "bar": 2, "placement_bar": 2, "red": 2, "bf211e": 2, "pin": 2, "create_pin_support": 2, "arrow": 2, "create_load_arrow": 2, "marker_end": 2, "arrowmark": 2, "cap": 2, "create_load_cap_lin": 2, "x1": 2, "x2": 2, "100": 2, "20": 2, "60": 2, "40": 2, "80": 2, "diagram": 2, "arrow_count_per_sect": 2, "space": 2, "background_color": 2, "border_width": 2, "border_color": 2, "default_element_fil": 2, "default_element_strok": 2, "canvasel": 2, "ad": 2, "to_svg": 2, "convert": 2, "cx": 2, "cy": 2, "kwarg": 2, "ellips": 2, "y1": 2, "y2": 2, "marker_start": 2, "marker_mid": 2, "to_path_command": 2, "command": 2, "corner": 2, "orient": 2, "circlemark": 2, "get_common_svg_style_el": 2, "context": 2, "canva": 7, "hold": 2, "backdrop": 2, "drawn": 2, "color": 2, "white": 2, "border": 2, "coordin": 2, "param": [], "midpoint": 2, "fit": [1, 2], "match": 2, "connect": 2, "rel": 2, "system": 2, "down": [1, 2], "min_xi": 2, "display_typ": 2, "font_siz": 2, "rotat": 2, "horizontal_bas": 2, "vertical_bas": 2, "middl": 2, "render": 2, "font": [1, 2], "clockwis": 2, "gap": 2, "offset": 2, "text_posit": 2, "text_siz": 2, "being": 2, "parallel": 2, "upward": 2, "downward": 2, "factor": 2, "leader": 2, "marker_x": 2, "marker_i": 2, "text_x": 2, "text_i": 2, "landing_len": 2, "land": 2, "relationship": 2, "elementwithmark": 2, "subclass": 2, "implement": 2, "_get_mark": 2, "get_mark": 2, "header": 0, "stripe": 0, "2d": 0, "row": 0, "act": 0, "inputt": 0, "default_data": 0, "accept": 0, "dynam": 0, "identifi": 0, "long_calc_displai": 1, "longcalcdisplaytyp": 1, "alter": 1, "linebreak": 1, "break": 1, "enumer": 1, "numbered_row": 0}, "objects": {"efficalc": [[0, 0, 1, "", "Assumption"], [0, 0, 1, "", "Calculation"], [0, 0, 1, "", "Comparison"], [0, 0, 1, "", "ComparisonStatement"], [5, 0, 1, "", "FigureFromBytes"], [5, 0, 1, "", "FigureFromFile"], [5, 0, 1, "", "FigureFromMatplotlib"], [0, 0, 1, "", "Heading"], [0, 0, 1, "", "Input"], [0, 0, 1, "", "InputTable"], [0, 0, 1, "", "Symbolic"], [0, 0, 1, "", "Table"], [0, 0, 1, "", "TextBlock"], [0, 0, 1, "", "Title"], [9, 2, 1, "", "a_brackets"], [9, 2, 1, "", "absolute"], [9, 2, 1, "", "add"], [9, 2, 1, "", "brackets"], [9, 2, 1, "", "c_brackets"], [1, 2, 1, "", "clear_all_input_default_overrides"], [1, 2, 1, "", "clear_saved_objects"], [3, 3, 0, "-", "constants"], [9, 2, 1, "", "cos"], [9, 2, 1, "", "cosh"], [9, 2, 1, "", "div"], [9, 2, 1, "", "div2"], [9, 2, 1, "", "exp"], [1, 2, 1, "", "get_all_calc_objects"], [1, 2, 1, "", "get_override_or_default_value"], [9, 2, 1, "", "ln"], [9, 2, 1, "", "log"], [9, 2, 1, "", "log10"], [9, 2, 1, "", "maximum"], [9, 2, 1, "", "minimum"], [9, 2, 1, "", "minus"], [9, 2, 1, "", "mul"], [9, 2, 1, "", "neg"], [9, 2, 1, "", "plus"], [9, 2, 1, "", "pos"], [9, 2, 1, "", "power"], [9, 2, 1, "", "r_brackets"], [9, 2, 1, "", "root"], [9, 2, 1, "", "s_brackets"], [1, 2, 1, "", "save_calculation_item"], [1, 2, 1, "", "set_input_default_overrides"], [9, 2, 1, "", "sin"], [9, 2, 1, "", "sinh"], [9, 2, 1, "", "sqr"], [9, 2, 1, "", "sqrt"], [9, 2, 1, "", "sub"], [9, 2, 1, "", "tan"], [9, 2, 1, "", "tanh"], [9, 2, 1, "", "times"], [3, 3, 0, "-", "unit_conversions"]], "efficalc.Calculation": [[0, 1, 1, "", "estimate_display_length"], [0, 1, 1, "", "get_value"], [0, 1, 1, "", "result"], [0, 1, 1, "", "str_result_with_description"], [0, 1, 1, "", "str_substituted"], [0, 1, 1, "", "str_symbolic"]], "efficalc.Comparison": [[0, 1, 1, "", "get_message"], [0, 1, 1, "", "get_value"], [0, 1, 1, "", "is_passing"], [0, 1, 1, "", "result"], [0, 1, 1, "", "str_substituted"], [0, 1, 1, "", "str_symbolic"]], "efficalc.ComparisonStatement": [[0, 1, 1, "", "str_symbolic"]], "efficalc.FigureFromBytes": [[5, 1, 1, "", "load_image_data"]], "efficalc.FigureFromFile": [[5, 1, 1, "", "load_image_data"]], "efficalc.FigureFromMatplotlib": [[5, 1, 1, "", "load_image_data"]], "efficalc.Input": [[0, 1, 1, "", "get_value"], [0, 1, 1, "", "str_result_with_name"]], "efficalc.Symbolic": [[0, 1, 1, "", "estimate_display_length"], [0, 1, 1, "", "get_value"], [0, 1, 1, "", "result"], [0, 1, 1, "", "str_result_with_description"], [0, 1, 1, "", "str_result_with_unit"], [0, 1, 1, "", "str_substituted"], [0, 1, 1, "", "str_symbolic"]], "efficalc.calculation_runner": [[1, 0, 1, "", "CalculationRunner"]], "efficalc.calculation_runner.CalculationRunner": [[1, 1, 1, "", "calculate_all_items"], [1, 1, 1, "", "calculate_results"]], "efficalc.canvas": [[2, 0, 1, "", "ArrowMarker"], [2, 0, 1, "", "Canvas"], [2, 0, 1, "", "CanvasElement"], [2, 0, 1, "", "Circle"], [2, 0, 1, "", "CircleMarker"], [2, 0, 1, "", "Dimension"], [2, 0, 1, "", "ElementWithMarkers"], [2, 0, 1, "", "Ellipse"], [2, 0, 1, "", "Leader"], [2, 0, 1, "", "Line"], [2, 0, 1, "", "Marker"], [2, 0, 1, "", "Polyline"], [2, 0, 1, "", "Rectangle"], [2, 0, 1, "", "Text"]], "efficalc.canvas.ArrowMarker": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Canvas": [[2, 1, 1, "", "add"], [2, 1, 1, "", "to_svg"]], "efficalc.canvas.CanvasElement": [[2, 1, 1, "", "get_common_svg_style_elements"], [2, 1, 1, "", "to_svg"]], "efficalc.canvas.Circle": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.CircleMarker": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Dimension": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.ElementWithMarkers": [[2, 1, 1, "", "get_markers"]], "efficalc.canvas.Ellipse": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Leader": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Line": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Polyline": [[2, 1, 1, "", "to_path_commands"], [2, 1, 1, "", "to_svg"]], "efficalc.canvas.Rectangle": [[2, 1, 1, "", "to_svg"]], "efficalc.canvas.Text": [[2, 1, 1, "", "to_svg"]], "efficalc.constants": [[3, 4, 1, "", "E"], [3, 4, 1, "", "ONE"], [3, 4, 1, "", "PI"], [3, 4, 1, "", "TWO"], [3, 4, 1, "", "ZERO"]], "efficalc.report_builder": [[1, 0, 1, "", "LongCalcDisplayType"], [1, 0, 1, "", "ReportBuilder"]], "efficalc.report_builder.ReportBuilder": [[1, 1, 1, "", "get_html_as_str"], [1, 1, 1, "", "save_report"], [1, 1, 1, "", "view_report"]], "efficalc.sections": [[11, 0, 1, "", "AiscAngle"], [11, 0, 1, "", "AiscChannel"], [11, 0, 1, "", "AiscCircular"], [11, 0, 1, "", "AiscDoubleAngle"], [11, 0, 1, "", "AiscRectangular"], [11, 0, 1, "", "AiscTee"], [11, 0, 1, "", "AiscWideFlange"], [11, 2, 1, "", "get_aisc_angle"], [11, 2, 1, "", "get_aisc_channel"], [11, 2, 1, "", "get_aisc_circular"], [11, 2, 1, "", "get_aisc_double_angle"], [11, 2, 1, "", "get_aisc_rectangular"], [11, 2, 1, "", "get_aisc_tee"], [11, 2, 1, "", "get_aisc_wide_flange"]], "efficalc.unit_conversions": [[3, 4, 1, "", "deg_to_rad"], [3, 4, 1, "", "ft_to_in"], [3, 4, 1, "", "k_to_lb"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function", "3": "py:module", "4": "py:data"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"], "3": ["py", "module", "Python module"], "4": ["py", "data", "Python data"]}, "titleterms": {"base": [0, 2], "class": [0, 2], "calcul": [1, 6, 8, 13], "helper": [1, 8], "constant": 3, "unit": 3, "convers": 3, "exampl": [2, 4, 5], "get": 7, "start": 7, "efficalc": [7, 8], "api": [2, 5, 7], "document": 7, "more": [7, 8], "indic": [], "tabl": [], "integr": 8, "extend": 8, "math": 9, "oper": 9, "purpos": 10, "section": [2, 11], "properti": 11, "style": 12, "report": [5, 6, 12], "test": 13, "your": 13, "about": [], "todo": [], "add": [], "simpl": 4, "graphic": [], "anim": [], "see": [], "librari": [], "action": [], "background": 10, "find": 10, "mistak": 10, "autom": 10, "scalabl": 10, "format": 10, "submitt": 10, "modern": 10, "workflow": 10, "A": 10, "new": 10, "era": 10, "instal": 6, "first": 6, "function": [6, 8], "view": 6, "run": [], "differ": [], "input": 6, "valu": [6, 8], "quickstart": 6, "chang": 6, "paramet": 8, "return": 8, "calc": [5, 8], "option": [], "1": [], "recommend": [], "2": [], "subscript": 12, "superscript": 12, "greek": 12, "letter": 12, "symbol": 12, "ad": 12, "space": 12, "hundr": 8, "One": 8, "invis": 8, "come": 8, "soon": 8, "why": 13, "matter": 13, "how": 13, "To": 13, "concret": [2, 4], "beam": [2, 4], "neutral": 4, "axi": 4, "advanc": 4, "steel": 4, "moment": 4, "strength": 4, "figur": 5, "from": 5, "file": 5, "doc": [2, 5], "matplotlib": 5, "raw": 5, "byte": 5, "draw": 2, "canva": 2, "cross": 2, "support": 2, "load": 2, "scheme": 2, "element": 2, "line": 2, "polylin": 2, "marker": 2}, "envversion": {"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": 60}, "alltitles": {"Base Classes": [[0, "base-classes"], [2, "base-classes"]], "Calculation Helpers": [[1, "calculation-helpers"], [8, "calculation-helpers"]], "Drawing on a Canvas": [[2, "drawing-on-a-canvas"]], "Examples": [[2, "examples"], [4, "examples"]], "Concrete beam cross-section": [[2, "concrete-beam-cross-section"]], "Beam support and loading scheme": [[2, "beam-support-and-loading-scheme"]], "API docs": [[2, "api-docs"], [5, "api-docs"], [5, "id1"], [5, "id3"]], "Canvas": [[2, "id1"]], "Canvas Elements": [[2, "canvas-elements"]], "Line/Polyline Markers": [[2, "line-polyline-markers"]], "Constants and Unit Conversions": [[3, "constants-and-unit-conversions"]], "Unit Conversions": [[3, "module-efficalc.unit_conversions"]], "Constants": [[3, "id1"]], "Simple": [[4, "simple"]], "Concrete Beam Neutral Axis": [[4, "concrete-beam-neutral-axis"]], "Advanced": [[4, "advanced"]], "Steel Beam Moment Strength": [[4, "steel-beam-moment-strength"]], "Figures in Calc Reports": [[5, "figures-in-calc-reports"]], "Figure from a file": [[5, "figure-from-a-file"]], "Example": [[5, "example"], [5, "id2"], [5, "id4"]], "Figure from a matplotlib figure": [[5, "figure-from-a-matplotlib-figure"]], "Figure from raw bytes": [[5, "figure-from-raw-bytes"]], "Quickstart": [[6, "quickstart"]], "Installation": [[6, "installation"]], "First Calculation Function": [[6, "first-calculation-function"]], "View Reports": [[6, "view-reports"]], "Change Input Values": [[6, "change-input-values"]], "efficalc": [[7, "efficalc"]], "Get Started": [[7, "get-started"]], "API Documentation": [[7, "api-documentation"]], "More": [[7, "more"]], "Integrating and Extending efficalc": [[8, "integrating-and-extending-efficalc"]], "Parameters and Return Values in Calc Functions": [[8, "parameters-and-return-values-in-calc-functions"]], "Hundreds of Calculations with One Function": [[8, "hundreds-of-calculations-with-one-function"]], "Helper Functions": [[8, "helper-functions"]], "Invisible Helpers": [[8, "invisible-helpers"]], "More coming soon": [[8, "more-coming-soon"]], "Math Operations": [[9, "math-operations"]], "Purpose and Background": [[10, "purpose-and-background"]], "Finding mistakes": [[10, "finding-mistakes"]], "Automation and Scalability": [[10, "automation-and-scalability"]], "Formatting and Submittal": [[10, "formatting-and-submittal"]], "Modern Workflows": [[10, "modern-workflows"]], "A New Era": [[10, "a-new-era"]], "Section Properties": [[11, "section-properties"]], "Styling Reports": [[12, "styling-reports"]], "Subscripts": [[12, "subscripts"]], "Superscripts": [[12, "superscripts"]], "Greek Letters and Symbols": [[12, "greek-letters-and-symbols"]], "Adding Spaces": [[12, "adding-spaces"]], "Testing Your Calculations": [[13, "testing-your-calculations"]], "Why Testing Matters": [[13, "why-testing-matters"]], "How To Test Your Calculations": [[13, "how-to-test-your-calculations"]]}, "indexentries": {"assumption (class in efficalc)": [[0, "efficalc.Assumption"]], "calculation (class in efficalc)": [[0, "efficalc.Calculation"]], "comparison (class in efficalc)": [[0, "efficalc.Comparison"]], "comparisonstatement (class in efficalc)": [[0, "efficalc.ComparisonStatement"]], "heading (class in efficalc)": [[0, "efficalc.Heading"]], "input (class in efficalc)": [[0, "efficalc.Input"]], "inputtable (class in efficalc)": [[0, "efficalc.InputTable"]], "symbolic (class in efficalc)": [[0, "efficalc.Symbolic"]], "table (class in efficalc)": [[0, "efficalc.Table"]], "textblock (class in efficalc)": [[0, "efficalc.TextBlock"]], "title (class in efficalc)": [[0, "efficalc.Title"]], "estimate_display_length() (efficalc.calculation method)": [[0, "efficalc.Calculation.estimate_display_length"]], "estimate_display_length() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.estimate_display_length"]], "get_message() (efficalc.comparison method)": [[0, "efficalc.Comparison.get_message"]], "get_value() (efficalc.calculation method)": [[0, "efficalc.Calculation.get_value"]], "get_value() (efficalc.comparison method)": [[0, "efficalc.Comparison.get_value"]], "get_value() (efficalc.input method)": [[0, "efficalc.Input.get_value"]], "get_value() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.get_value"]], "is_passing() (efficalc.comparison method)": [[0, "efficalc.Comparison.is_passing"]], "result() (efficalc.calculation method)": [[0, "efficalc.Calculation.result"]], "result() (efficalc.comparison method)": [[0, "efficalc.Comparison.result"]], "result() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.result"]], "str_result_with_description() (efficalc.calculation method)": [[0, "efficalc.Calculation.str_result_with_description"]], "str_result_with_description() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.str_result_with_description"]], "str_result_with_name() (efficalc.input method)": [[0, "efficalc.Input.str_result_with_name"]], "str_result_with_unit() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.str_result_with_unit"]], "str_substituted() (efficalc.calculation method)": [[0, "efficalc.Calculation.str_substituted"]], "str_substituted() (efficalc.comparison method)": [[0, "efficalc.Comparison.str_substituted"]], "str_substituted() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.str_substituted"]], "str_symbolic() (efficalc.calculation method)": [[0, "efficalc.Calculation.str_symbolic"]], "str_symbolic() (efficalc.comparison method)": [[0, "efficalc.Comparison.str_symbolic"]], "str_symbolic() (efficalc.comparisonstatement method)": [[0, "efficalc.ComparisonStatement.str_symbolic"]], "str_symbolic() (efficalc.symbolic method)": [[0, "efficalc.Symbolic.str_symbolic"]], "calculationrunner (class in efficalc.calculation_runner)": [[1, "efficalc.calculation_runner.CalculationRunner"]], "longcalcdisplaytype (class in efficalc.report_builder)": [[1, "efficalc.report_builder.LongCalcDisplayType"]], "reportbuilder (class in efficalc.report_builder)": [[1, "efficalc.report_builder.ReportBuilder"]], "calculate_all_items() (efficalc.calculation_runner.calculationrunner method)": [[1, "efficalc.calculation_runner.CalculationRunner.calculate_all_items"]], "calculate_results() (efficalc.calculation_runner.calculationrunner method)": [[1, "efficalc.calculation_runner.CalculationRunner.calculate_results"]], "clear_all_input_default_overrides() (in module efficalc)": [[1, "efficalc.clear_all_input_default_overrides"]], "clear_saved_objects() (in module efficalc)": [[1, "efficalc.clear_saved_objects"]], "get_all_calc_objects() (in module efficalc)": [[1, "efficalc.get_all_calc_objects"]], "get_html_as_str() (efficalc.report_builder.reportbuilder method)": [[1, "efficalc.report_builder.ReportBuilder.get_html_as_str"]], "get_override_or_default_value() (in module efficalc)": [[1, "efficalc.get_override_or_default_value"]], "save_calculation_item() (in module efficalc)": [[1, "efficalc.save_calculation_item"]], "save_report() (efficalc.report_builder.reportbuilder method)": [[1, "efficalc.report_builder.ReportBuilder.save_report"]], "set_input_default_overrides() (in module efficalc)": [[1, "efficalc.set_input_default_overrides"]], "view_report() (efficalc.report_builder.reportbuilder method)": [[1, "efficalc.report_builder.ReportBuilder.view_report"]], "arrowmarker (class in efficalc.canvas)": [[2, "efficalc.canvas.ArrowMarker"]], "canvas (class in efficalc.canvas)": [[2, "efficalc.canvas.Canvas"]], "canvaselement (class in efficalc.canvas)": [[2, "efficalc.canvas.CanvasElement"]], "circle (class in efficalc.canvas)": [[2, "efficalc.canvas.Circle"]], "circlemarker (class in efficalc.canvas)": [[2, "efficalc.canvas.CircleMarker"]], "dimension (class in efficalc.canvas)": [[2, "efficalc.canvas.Dimension"]], "elementwithmarkers (class in efficalc.canvas)": [[2, "efficalc.canvas.ElementWithMarkers"]], "ellipse (class in efficalc.canvas)": [[2, "efficalc.canvas.Ellipse"]], "leader (class in efficalc.canvas)": [[2, "efficalc.canvas.Leader"]], "line (class in efficalc.canvas)": [[2, "efficalc.canvas.Line"]], "marker (class in efficalc.canvas)": [[2, "efficalc.canvas.Marker"]], "polyline (class in efficalc.canvas)": [[2, "efficalc.canvas.Polyline"]], "rectangle (class in efficalc.canvas)": [[2, "efficalc.canvas.Rectangle"]], "text (class in efficalc.canvas)": [[2, "efficalc.canvas.Text"]], "add() (efficalc.canvas.canvas method)": [[2, "efficalc.canvas.Canvas.add"]], "get_common_svg_style_elements() (efficalc.canvas.canvaselement method)": [[2, "efficalc.canvas.CanvasElement.get_common_svg_style_elements"]], "get_markers() (efficalc.canvas.elementwithmarkers method)": [[2, "efficalc.canvas.ElementWithMarkers.get_markers"]], "to_path_commands() (efficalc.canvas.polyline method)": [[2, "efficalc.canvas.Polyline.to_path_commands"]], "to_svg() (efficalc.canvas.arrowmarker method)": [[2, "efficalc.canvas.ArrowMarker.to_svg"]], "to_svg() (efficalc.canvas.canvas method)": [[2, "efficalc.canvas.Canvas.to_svg"]], "to_svg() (efficalc.canvas.canvaselement method)": [[2, "efficalc.canvas.CanvasElement.to_svg"]], "to_svg() (efficalc.canvas.circle method)": [[2, "efficalc.canvas.Circle.to_svg"]], "to_svg() (efficalc.canvas.circlemarker method)": [[2, "efficalc.canvas.CircleMarker.to_svg"]], "to_svg() (efficalc.canvas.dimension method)": [[2, "efficalc.canvas.Dimension.to_svg"]], "to_svg() (efficalc.canvas.ellipse method)": [[2, "efficalc.canvas.Ellipse.to_svg"]], "to_svg() (efficalc.canvas.leader method)": [[2, "efficalc.canvas.Leader.to_svg"]], "to_svg() (efficalc.canvas.line method)": [[2, "efficalc.canvas.Line.to_svg"]], "to_svg() (efficalc.canvas.polyline method)": [[2, "efficalc.canvas.Polyline.to_svg"]], "to_svg() (efficalc.canvas.rectangle method)": [[2, "efficalc.canvas.Rectangle.to_svg"]], "to_svg() (efficalc.canvas.text method)": [[2, "efficalc.canvas.Text.to_svg"]], "e (in module efficalc.constants)": [[3, "efficalc.constants.E"]], "one (in module efficalc.constants)": [[3, "efficalc.constants.ONE"]], "pi (in module efficalc.constants)": [[3, "efficalc.constants.PI"]], "two (in module efficalc.constants)": [[3, "efficalc.constants.TWO"]], "zero (in module efficalc.constants)": [[3, "efficalc.constants.ZERO"]], "deg_to_rad (in module efficalc.unit_conversions)": [[3, "efficalc.unit_conversions.deg_to_rad"]], "efficalc.constants": [[3, "module-efficalc.constants"]], "efficalc.unit_conversions": [[3, "module-efficalc.unit_conversions"]], "ft_to_in (in module efficalc.unit_conversions)": [[3, "efficalc.unit_conversions.ft_to_in"]], "k_to_lb (in module efficalc.unit_conversions)": [[3, "efficalc.unit_conversions.k_to_lb"]], "module": [[3, "module-efficalc.constants"], [3, "module-efficalc.unit_conversions"]], "figurefrombytes (class in efficalc)": [[5, "efficalc.FigureFromBytes"]], "figurefromfile (class in efficalc)": [[5, "efficalc.FigureFromFile"]], "figurefrommatplotlib (class in efficalc)": [[5, "efficalc.FigureFromMatplotlib"]], "load_image_data() (efficalc.figurefrombytes method)": [[5, "efficalc.FigureFromBytes.load_image_data"]], "load_image_data() (efficalc.figurefromfile method)": [[5, "efficalc.FigureFromFile.load_image_data"]], "load_image_data() (efficalc.figurefrommatplotlib method)": [[5, "efficalc.FigureFromMatplotlib.load_image_data"]], "a_brackets() (in module efficalc)": [[9, "efficalc.a_brackets"]], "absolute() (in module efficalc)": [[9, "efficalc.absolute"]], "add() (in module efficalc)": [[9, "efficalc.add"]], "brackets() (in module efficalc)": [[9, "efficalc.brackets"]], "c_brackets() (in module efficalc)": [[9, "efficalc.c_brackets"]], "cos() (in module efficalc)": [[9, "efficalc.cos"]], "cosh() (in module efficalc)": [[9, "efficalc.cosh"]], "div() (in module efficalc)": [[9, "efficalc.div"]], "div2() (in module efficalc)": [[9, "efficalc.div2"]], "exp() (in module efficalc)": [[9, "efficalc.exp"]], "ln() (in module efficalc)": [[9, "efficalc.ln"]], "log() (in module efficalc)": [[9, "efficalc.log"]], "log10() (in module efficalc)": [[9, "efficalc.log10"]], "maximum() (in module efficalc)": [[9, "efficalc.maximum"]], "minimum() (in module efficalc)": [[9, "efficalc.minimum"]], "minus() (in module efficalc)": [[9, "efficalc.minus"]], "mul() (in module efficalc)": [[9, "efficalc.mul"]], "neg() (in module efficalc)": [[9, "efficalc.neg"]], "plus() (in module efficalc)": [[9, "efficalc.plus"]], "pos() (in module efficalc)": [[9, "efficalc.pos"]], "power() (in module efficalc)": [[9, "efficalc.power"]], "r_brackets() (in module efficalc)": [[9, "efficalc.r_brackets"]], "root() (in module efficalc)": [[9, "efficalc.root"]], "s_brackets() (in module efficalc)": [[9, "efficalc.s_brackets"]], "sin() (in module efficalc)": [[9, "efficalc.sin"]], "sinh() (in module efficalc)": [[9, "efficalc.sinh"]], "sqr() (in module efficalc)": [[9, "efficalc.sqr"]], "sqrt() (in module efficalc)": [[9, "efficalc.sqrt"]], "sub() (in module efficalc)": [[9, "efficalc.sub"]], "tan() (in module efficalc)": [[9, "efficalc.tan"]], "tanh() (in module efficalc)": [[9, "efficalc.tanh"]], "times() (in module efficalc)": [[9, "efficalc.times"]], "aiscangle (class in efficalc.sections)": [[11, "efficalc.sections.AiscAngle"]], "aiscchannel (class in efficalc.sections)": [[11, "efficalc.sections.AiscChannel"]], "aisccircular (class in efficalc.sections)": [[11, "efficalc.sections.AiscCircular"]], "aiscdoubleangle (class in efficalc.sections)": [[11, "efficalc.sections.AiscDoubleAngle"]], "aiscrectangular (class in efficalc.sections)": [[11, "efficalc.sections.AiscRectangular"]], "aisctee (class in efficalc.sections)": [[11, "efficalc.sections.AiscTee"]], "aiscwideflange (class in efficalc.sections)": [[11, "efficalc.sections.AiscWideFlange"]], "get_aisc_angle() (in module efficalc.sections)": [[11, "efficalc.sections.get_aisc_angle"]], "get_aisc_channel() (in module efficalc.sections)": [[11, "efficalc.sections.get_aisc_channel"]], "get_aisc_circular() (in module efficalc.sections)": [[11, "efficalc.sections.get_aisc_circular"]], "get_aisc_double_angle() (in module efficalc.sections)": [[11, "efficalc.sections.get_aisc_double_angle"]], "get_aisc_rectangular() (in module efficalc.sections)": [[11, "efficalc.sections.get_aisc_rectangular"]], "get_aisc_tee() (in module efficalc.sections)": [[11, "efficalc.sections.get_aisc_tee"]], "get_aisc_wide_flange() (in module efficalc.sections)": [[11, "efficalc.sections.get_aisc_wide_flange"]]}})
\ No newline at end of file
diff --git a/docs/section_properties.html b/docs/section_properties.html
index 0a1d2d9..8791514 100644
--- a/docs/section_properties.html
+++ b/docs/section_properties.html
@@ -6,7 +6,7 @@
- Section Properties - efficalc 1.2.1 documentation
+ Section Properties - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
-
+
diff --git a/docs/styling.html b/docs/styling.html
index c85c6b9..74d65f4 100644
--- a/docs/styling.html
+++ b/docs/styling.html
@@ -6,7 +6,7 @@
- Styling Reports - efficalc 1.2.1 documentation
+ Styling Reports - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
diff --git a/docs/testing.html b/docs/testing.html
index 740e6b1..26a22a8 100644
--- a/docs/testing.html
+++ b/docs/testing.html
@@ -6,7 +6,7 @@
- Testing Your Calculations - efficalc 1.2.1 documentation
+ Testing Your Calculations - efficalc 1.2.3 documentation
@@ -126,7 +126,7 @@
diff --git a/docs_src/conf.py b/docs_src/conf.py
index ee42d19..f338d71 100644
--- a/docs_src/conf.py
+++ b/docs_src/conf.py
@@ -14,7 +14,7 @@
project = "efficalc"
copyright = "2024, Andrew Young"
author = "Andrew Young"
-release = "1.2.1"
+release = "1.2.3"
html_favicon = "_static/favicon.ico"
# -- General configuration ---------------------------------------------------
diff --git a/efficalc/base_definitions/table.py b/efficalc/base_definitions/table.py
index 47212be..2334359 100644
--- a/efficalc/base_definitions/table.py
+++ b/efficalc/base_definitions/table.py
@@ -25,6 +25,8 @@ class Table(CalculationItem):
of your calculation template. When set to True, this :class:`.Table` will be displayed in the "Results"
section of your design portal in the cloud version of efficalc, defaults to False
:type result_check: bool, optional
+ :param numbered_rows: Whether to add row numbers (starting at 1) to each row, defaults to False
+ :type numbered_rows: bool, optional
"""
@@ -36,6 +38,7 @@ def __init__(
striped: bool = False,
full_width: bool = False,
result_check: bool = False,
+ numbered_rows: bool = False,
) -> None:
self.data = data
self.headers = headers
@@ -43,6 +46,7 @@ def __init__(
self.striped = striped
self.full_width = full_width
self.result_check = result_check
+ self.numbered_rows = numbered_rows
save_calculation_item(self)
def __str__(self) -> str:
@@ -63,6 +67,8 @@ class InputTable(Table):
:type striped: bool, optional
:param full_width: Whether the table should be full width, defaults to True
:type full_width: bool, optional
+ :param numbered_rows: Whether to add row numbers (starting at 1) to each row, defaults to False
+ :type numbered_rows: bool, optional
"""
def __init__(
@@ -71,11 +77,13 @@ def __init__(
headers: List[any],
title: Optional[str] = None,
striped: bool = False,
- full_width: bool = True,
+ full_width: bool = False,
+ numbered_rows: bool = False,
) -> None:
- super().__init__(default_data, headers, title, striped, full_width)
+ super().__init__(
+ default_data, headers, title, striped, full_width, False, numbered_rows
+ )
self.data = get_override_or_default_value(self.identifier, default_data)
- self.result_check = False
@property
def identifier(self):
diff --git a/efficalc/generate_html.py b/efficalc/generate_html.py
index abb6be2..736efd9 100644
--- a/efficalc/generate_html.py
+++ b/efficalc/generate_html.py
@@ -223,12 +223,16 @@ def _generate_result_table_html(item: Table) -> str:
table_html += f"{item.title} "
if item.headers:
table_html += ""
+ if item.numbered_rows:
+ table_html += " "
for header in item.headers:
table_html += f"{header} "
table_html += " "
table_html += ""
- for row in item.data:
+ for row_num, row in enumerate(item.data):
table_html += ""
+ if item.numbered_rows:
+ table_html += f"{row_num+1} "
for cell in row:
table_html += f"{cell} "
table_html += " "
@@ -314,8 +318,10 @@ def _wrap_with_reference(primary_content: str, reference: str | None) -> str:
"display: flex; flex-direction: column; justify-content: center;"
)
+ ref_only_styles = "margin-left:1rem;text-wrap:no-wrap;"
+
return _wrap_div(
- f"{_wrap_div(primary_content, vertical_justified)} {_wrap_div(ref, vertical_justified)}",
+ f"{_wrap_div(primary_content, vertical_justified)} {_wrap_div(ref, vertical_justified+ref_only_styles)}",
f"display:flex; flex-direction:row; justify-content:space-between; {CALC_MARGIN}",
)
diff --git a/pyproject.toml b/pyproject.toml
index 9781261..8d63a52 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "efficalc"
-version = "1.2.1"
+version = "1.2.2"
authors = [
{ name="Andrew Young", email="youandvern@gmail.com" },
]
@@ -28,7 +28,7 @@ Documentation = "https://youandvern.github.io/efficalc"
Issues = "https://github.com/youandvern/efficalc/issues"
[tool.setuptools.packages]
-find = { include = ["efficalc", "efficalc.sections", "efficalc.base_definitions"] }
+find = { include = ["efficalc", "efficalc.sections", "efficalc.base_definitions", "efficalc.canvas"] }
[tool.setuptools]
package-data = {"efficalc.sections" = ["section_properties.db"]}
diff --git a/tests/base_definitions/test_table.py b/tests/base_definitions/test_table.py
index 755e608..8a95d39 100644
--- a/tests/base_definitions/test_table.py
+++ b/tests/base_definitions/test_table.py
@@ -26,6 +26,7 @@ def test_default_values(common_setup_teardown):
assert a.striped is False
assert a.full_width is False
assert a.result_check is False
+ assert a.numbered_rows is False
def test_set_values(common_setup_teardown):
@@ -36,6 +37,7 @@ def test_set_values(common_setup_teardown):
striped=True,
full_width=False,
result_check=True,
+ numbered_rows=True,
)
assert a.data == [[1, 2, 3, 4], [5, 6, 7, 8]]
assert a.headers == ["a", "b", "c", "d"]
@@ -43,6 +45,7 @@ def test_set_values(common_setup_teardown):
assert a.striped is True
assert a.full_width is False
assert a.result_check is True
+ assert a.numbered_rows is True
def test_save_calc_item(common_setup_teardown):
@@ -66,6 +69,7 @@ def test_input_table_set_values(common_setup_teardown):
title="my table",
striped=True,
full_width=False,
+ numbered_rows=True,
)
assert a.data == [[1, 2, 3, 4], [5, 6, 7, "test"]]
assert a.headers == ["a", "b", "c", "d"]
@@ -73,6 +77,7 @@ def test_input_table_set_values(common_setup_teardown):
assert a.striped is True
assert a.full_width is False
assert a.result_check is False
+ assert a.numbered_rows is True
def test_input_table_identifier(common_setup_teardown):
diff --git a/tests/test_generate_html.py b/tests/test_generate_html.py
index 10b3909..ae03b96 100644
--- a/tests/test_generate_html.py
+++ b/tests/test_generate_html.py
@@ -466,6 +466,7 @@ def test_table_with_all_styling(common_setup_teardown):
result = generate_html_for_calc_items([table])
assert '" in result
+ assert "1" not in result
def test_table_with_no_styling(common_setup_teardown):
@@ -475,6 +476,7 @@ def test_table_with_no_styling(common_setup_teardown):
''
in result
)
+ assert "1" not in result
def test_table_no_data(common_setup_teardown):
@@ -486,3 +488,29 @@ def test_table_no_data(common_setup_teardown):
"greeks numbers "
" "
) in result
+ assert "1" not in result
+
+
+def test_table_with_row_numbers(common_setup_teardown):
+ table = Table(
+ [["f", "g"], ["i", "j"], ["l", "m"]],
+ ["greeks", "numbers"],
+ numbered_rows=True,
+ )
+
+ result = generate_html_for_calc_items([table])
+ assert "greeks numbers " in result
+ assert "1 f g " in result
+ assert "2 i " in result
+ assert "3 l " in result
+
+
+def test_table_with_row_numbers_without_headers(common_setup_teardown):
+ table = Table([["f"]], numbered_rows=True)
+
+ result = generate_html_for_calc_items([table])
+ assert "1 f " in result
+ assert "2" not in result