G.0 | Quick Ref#
[1] API#
API functions
API Function |
Name |
Purpose |
|---|---|---|
rv.R (rS) |
Run |
Run scripts and markup |
rv.I (rS) |
Insert |
Insert static sources |
rv.V (rS) |
Values |
Calculate values |
rv.T (rS) |
Tools |
Execute shell scripts and external programs |
rv.D (rS) |
Doc |
Publish docs |
rv.S;X (rS) |
Skip |
Skip section or exit (comments and debugging) |
where rS is a rivt string. The first line of a rivt string (rS) is the header substring.
Header substrings
rv.I("""A New Section | private, doc, section
Content text
...
""")
The default privacy setting may be changed in the rivt file comment settings shown below
import rivtlib.rvapi as rv
# rv private = false ; default section parameter changed to public (true)
# rv no_tag = true ; API type is added to section number (true)
# rv set_width = true character width of text output (80
Individual sections may be set back to private in the header substring after changing the default.
Header substring defaults
API |
private; public |
doc; stored |
section; merge |
pdfpage; nopage |
markup |
|---|---|---|---|---|---|
rv.R |
private |
stored |
section |
nopage |
type |
rv.I |
private |
doc |
section |
nopage |
NA |
rv.V |
private |
doc |
section |
nopage |
NA |
rv.T |
private |
stored |
merge [1] |
nopage |
NA |
rv.D |
private |
stored only |
NA |
NA |
NA |
rv.S |
NA |
NA |
NA |
NA |
NA |
rv.X |
NA |
NA |
NA |
NA |
NA |
[4] Assignment Summary#
Assign values to expressions
API Scope |
Command |
Description |
|---|---|---|
rv.V |
a ==: 1*IN | unit1, unit2, decimal | label |
|
rv.V |
c <=: expression | unit1, unit2, decimal | label |
|
rv.V |
c :=: func(x,y) | unit1, unit2, decimal | label |
|
rv.V |
a <= c | unit, decimal, text1, text2 | label |
[5] Commands#
Commands format files and equations
API Scope |
Command |
Description |
|---|---|---|
rv.I, V |
| TABLE | rel path | title,width,head;nohead,num;non |
|
rv.I, V |
| IMAGE | rel path | caption, scale, num;non, time;not |
|
rv.I, V |
| IMAGE2 | rel path1, rel path2 | c1,c2,s1,s2,n1,n2 |
|
rv.V |
| PYTHON | rel path | rivt;namespace |
|
rv.V |
| VALTABLE | rel path | title, width, num;non |
|
rv.V |
| FUNCTION | function, arg, var, type | label |
|
rv.T |
| COPY | abs src path | abs dest path | file pattern |
|
rv.T |
| SHELL | abs path | os, wait |
|
rv.D |
| ATTACHPDF | rel path | front;back, title |
|
rv.D |
| PUBLISH | doc title | type |
Parent Paths for Commands
See here for the folder structure.
Command |
Parent Path [1] |
R/W |
|---|---|---|
| SHELL | |
rivt-report/ |
R |
| IMAGE | |
rivt-report/ |
R |
| IMAGE2 | |
rivt-report/ |
R |
| TABLE | |
rivt-report/ |
R |
| VALTABLE | |
rivt-report/ [2] |
R |
| VALTABLE | |
rivt-report/ [3] |
R |
| PYTHON | |
rivt-report/ |
R |
| MARKUP | |
rivt-report/ |
R |
| ATTACHPDF | |
rivt-report/ |
R |
| PUBLISH | |
/_published/ [4] |
W |
[1} file paths begin with rvsrc/ and may include subdirectories [2] values are read from rvsrc/ and its subdirectories [3] values written by rivt are read from rv_stor/vals [4] docs are written to subdirectories of _published
[5] rivt Report Folders#
rivt Report Top Level Folders
[rivt-]Report-Label/ report folder
├── .vscode/ optional VSCode settings
├── README.txt rivt-generated report
├── [_rivt-public]/ public subset of rivt files
├── rv_stor/
├── rvsrc/
├── README.txt
├── rv-101-filename1.py
├── rv-102-filename2.py
├── rv-201-filename3.py
...
└── [rivt-report]/ report folder
├── [_published]/ published docs and reports
├── [_rstdocs]/ restructured text files
├── [rv_stor]/ rivt generated source files
├── [rvsrc]/ author provided source files
├── [rv101-]filename1.py rivt file
├── [rv102-]filename2.py rivt file
├── [rv201-]filename3.py rivt file
...
rivt Report Expanded Folders
[rivt-]Report-Label/ report folder
├── .vscode/ optional VSCode settings
├── README.txt rivt-generated text report
├── [_rivt-public]/ rivt-generated public files
├── rvsrc/ author source files
├── rv-101-filename1.py public rivt file
├── rv-102-filename2.py public rivt file
├── rv-201-filename3.py public rivt file
...
├── [rivt-report]/ report folder
├── [rivt-report]-1.py report generating script
├── [rv101-]filename1.py rivt file
├── [rv102-]filename2.py rivt file
├── [rv201-]filename3.py rivt file
...
├── [rvsrc]/ author provided files and folders
├── [downloads]/ files to download
└── conc-vals.txt
├── [img]/ page layout images
├── favicon.png
├── covlogo1.png
└── runlogo1.png
├── [data]/ tables
└── steel-vals.csv
├── tools/ OS shell commands
└── opensees.sh
├── fig1.png
└── fig2.jpg
├── [rv_stor]/ rivt-generated source files
├── [logs]/ log files
├── rv101-log.txt
└── rv102-log.txt
├── [sect]/ sections not printed
├── rv202-5d.txt
├── rv103-4t.txt
└── rv301-2r.txt
├── [temp]/ temp files
└── rv101-label3.tex
├── output.dat
├── v101-2.csv
└── v102-3.csv
├── [_published]/ rivt-published docs and reports
├── [docs]/ html docs
├── html auxiliary folders
├── index.html
├── rv101-filename1.html
├── rv102-filename2.html
├── rv201-filename3.html
...
├── [pdfdocs]/ pdf docs
├── pdf auxiliary folders
├── report-title.pdf
├── rv101-filename1.pdf
├── rv102-filename1.pdf
├── rv201-filename3.pdf
...
└── [txtdocs]/ text docs
├── report-title.txt
├── rv101-filename1.txt
├── rv102-filename1.txt
├── rv201-filename3.txt
...
└── [_rstdocs]/ rivt-generated rst files
├── _downloads/
├── _static/
├── rv101-filename1.rst
├── rv102-filename2.rst
├── rv201-filename3.rst
...
[6] rivtbook Folders#
rivtbook Top Level Folders
[rivtbk-]Book-Label/ rivtbook report folder
├── .vscode/ optional VSCode settings
├── README.txt rivt-generated book as text
├── [_rivtbk-public]/ public subset of rivt files
├── [_rstdocs]/ restructured text files
├── [_pdfdocs]/ PDF docs and report
├── [rvbk101-]folder name rivtbook folder
├── [rvbk102-]folder name rivtbook folder
├── [rvbk201-]folder name rivtbook folder
...
rivtbook Expanded Folders
[rivtbk-]Book-Label/ rivtbook report folder
├── .vscode/ optional VSCode settings
├── README.txt rivt-generated book as text
├── [rivtbook-report]-1.py rivtbook generating script
├── [_rivtbk-public]/ public subset of rivt files
├── [rvbk-101-]folder name rivtbook folder
├── [rvbk-102-]folder name rivtbook folder
├── [rvbk-201-]folder name rivtbook folder
...
└── [_rstdocs]/ rivt-generated rst files
├── _downloads/
├── _static/
├── rv101-filename1.rst
├── rv102-filename2.rst
├── rv201-filename3.rst
...
├── [_pdfdocs]/ pdf docs and rivtbook report
├── pdf auxiliary folders
├── report-title.pdf
├── rv101-filename1.pdf
├── rv102-filename1.pdf
├── rv201-filename3.pdf
...
├── [rvbk101-]folder name rivtbook folder
├── [rv101-]filename1.py rivt file
├── [rvsrc]/ author provided files and folders
├── [downloads]/ files to download
└── conc-vals.txt
├── [img]/ page layout images
├── favicon.png
├── covlogo1.png
├── runlogo1.png
└── fig1.png
├── [data]/ tables
└── steel-vals.csv
├── tools/ OS shell commands
└── opensees.sh
├── [rv_stor]/ rivt-generated source files
├── [logs]/ log files
├── rv101-log.txt
└── rv102-log.txt
├── [sect]/ sections not printed
├── rv202-5d.txt
├── rv103-4t.txt
└── rv301-2r.txt
├── [temp]/ temp files
└── rv101-label3.tex
├── output.dat
├── v101-2.csv
└── v102-3.csv
├── [rvbk102-]folder name rivtbook subdivision folder
...
└─── [rvbk201-]folder name rivtbook subdivision folder
...
[7] Unit Definitions#
# standard SI units ==== DO NOT MODIFY BETWEEN DOUBLE LINES ============
#
# temperature - relative degree, not offset
K = new_unit("K", 0, "kelvin")
CELSIUS = new_unit("deg C", K, "degree Celsius")
FAHR = new_unit("degF", K * 9.0 / 5, "degree Fahrenheit")
# time
sec = S = new_unit("sec", 0, "second")
HZ = new_unit("Hz", 1 / S, "hertz")
# length
m = M = new_unit("m", 0, "meter")
nm = new_unit("nm", 10**-9 * M, "nanometer")
um = new_unit("um", 10**-6 * M, "micrometer")
mm = new_unit("mm", 10**-3 * M, "millimeter")
cm = new_unit("cm", 10**-2 * M, "centimeter")
dm = new_unit("dm", 10**-1 * M, "decimeter")
# mass
kg = KG = new_unit("kg", 0, "kilogram")
gram = new_unit("gram", 10**-3 * KG, "gram")
rad = new_unit("rad", M / M, "radian")
sr = new_unit("sr", M**2 / M**2, "steradian")
mol = new_unit("mol", 0, "mole")
# force
N = new_unit("N", M * KG / S**2, "newton")
cd = new_unit("cd", 0, "candela")
lm = new_unit("lm", cd * sr, "lumen")
lx = new_unit("lx", lm / M**2, "lux")
# charge
J = new_unit("J", N * M, "joule")
W = new_unit("W", J / S, "watt")
A = new_unit("A", 0, "ampere")
mA = new_unit("mA", 10**-3 * A, "milliampere")
C = new_unit("C", S * A, "coulomb")
VO = new_unit("V", W / A, "volt")
F = new_unit("F", C / VO, "farad")
OHM = new_unit("ohm", VO / A, "ohm")
SIEMENS = new_unit("siemens", A / VO, "siemens")
WB = new_unit("Wb", VO * SIEMENS, "weber")
TS = new_unit("TS", WB / M**2, "tesla")
HENRY = new_unit("H", WB / A, "henry")
#
#
# ============ DO NOT MODIFY FILE ABOVE THIS LINE ===========================
#
# --------------------------------------------------- metric
#
g = new_unit("G", 9.80665 * M / S**2, "gravity acceleration")
# pressure
PA = new_unit("PA", N / M**2, "pascal")
MPA = new_unit("MPA", PA * (10**6), "megapascals")
kPA = new_unit("kPA", PA * (10**3), "kilopascals")
# force
kN = new_unit("kN", N * (10**3), "kilonewton")
MN = new_unit("mN", N * (10**6), "meganewton")
km = new_unit("kM", M * (10**3), "kilometer")
kN_m3 = new_unit("kN_m3", kN / (M**3), "kilonewton per cubic meter")
kN_m = new_unit("kN_m", kN / M, "kilonewton per meter")
kN_cm = new_unit("kN_cm", kN / cm, "kilonewton per centimeter")
mkN = new_unit("mkN", (kN * M), "meter-kilonewton")
# area
sqm = new_unit("sqm", (M**2), "square meter")
cm2 = new_unit("cm2", (cm**2), "square centimeter")
cm3 = new_unit("cm3", (cm**3), "cubic centimeter")
cm4 = new_unit("cm4", (cm**4), "cm to fourth power")
#
# ------------------------------------------------- imperial
#
# length
inch = new_unit("inch", M / 39.370079, "inch")
ft = new_unit("ft", M / 3.2808399, "foot")
miles = new_unit("miles", ft * 5280, "miles")
# mass
lbm = new_unit("lbm", KG / 2.2046226, "pound-mass")
# force
lbf = new_unit("lbf", 4.4482216 * N, "pound-force")
kips = new_unit("kips", lbf * 1000.0, "kilopound")
ftkips = new_unit("ft-kip", ft * lbf * 1000.0, "foot-kips")
inkips = new_unit("in-kips", inch * lbf * 1000.0, "inch-kips")
k_in = new_unit("k_in", kips / inch, "kips per inch")
k_ft = new_unit("k_ft", kips / ft, "kips per foot")
p_in = new_unit("lb_in", lbf / inch, "pounds per inch")
p_ft = new_unit("lb_ft", lbf / ft, "pounds per foot")
# area
sf = new_unit("sf", ft**2, "square feet")
in2 = new_unit("in2", inch**2, "square inches")
in3 = new_unit("in3", inch**3, "cubic inches")
in4 = new_unit("in4", inch**4, "inches to fourth")
# pressure
p_sf = new_unit("p_sf", lbf / ft**2, "pounds per square foot")
p_si = new_unit("p_si", lbf / inch**2, "pounds per square inch")
k_sf = new_unit("k_sf", kips / ft**2, "kips per square foot")
k_si = new_unit("k_si", kips / inch**2, "kips per square inch")
# density
p_ci = new_unit("p_ci", lbf / inch**3, "pounds per cubic inch")
p_cf = new_unit("p_cf", lbf / ft**3, "pounds per cubic ft")
# time
hr = new_unit("hr", 60 * 60 * sec, "hours")
# velocity
mph = new_unit("mph", miles / hr, "miles per hour")
fps = new_unit("fps", ft / sec, "feet per second")
[8] Python Requirements#
The minimum Python version is 3.14. rivt project packages include the following categories:
formatting
numerical analysis
symbolic processing
visualization
IDE
Dependency |
description |
|---|---|
“pyzo>=4.20.0” |
a lightweight IDE |
“pyside6>=6.10.1” |
QT bindings |
“fastcore>=1.8.16” |
code simplification |
“tabulate>=0.9.0” |
format tables |
“pillow>=11.2.1” |
image processing |
“matplotlib>=3.10.1” |
data visualization |
“sympy>=1.13.3” |
symbolic analysis |
“numpy>=2.2.5” |
numerical processing |
“scipy>=1.16.3” |
numerical analysis |
“pandas>=2.2.3” |
data analysis |
“docutils>=0.21.2” |
reStructuredText processing |
“ipython>=8.16.2” |
interactive Python shell |
“ipykernel>=6.28.1” |
Jupyter kernel for Python |
“reportlab>=4.4.0” |
PDF document generation |
“rst2pdf>=0.103.1” |
PDF document generation |
“pypdf>=1.0.3” |
PDF document manipulation |
“Sphinx>=8.2.3” |
HTML document generation |
“pydata-sphinx-theme>=0.16.1” |
HTML document generation |
“sphinx-copybutton>=0.5.2” |
HTML document generation |
“sphinx_design>=0.6.1” |
HTML document generation |
“sphinx-favicon>=1.0.1” |
HTML document generation |
“sphinx-togglebutton>=0.3.2” |
HTML document generation |
“sphinxcontrib-applehelp>=2.0.0” |
HTML document generation |
“sphinxcontrib-devhelp>=2.0.0” |
HTML document generation |
“sphinxcontrib-email>=0.3.6” |
HTML document generation |
“sphinxcontrib-htmlhelp>=2.1.0” |
HTML document generation |
“sphinxcontrib-jquery>=4.1” |
HTML document generation |
“sphinxcontrib-jsmath>=1.0.1” |
HTML document generation |
“sphinxcontrib-qthelp>=2.0.0” |
HTML document generation |
“sphinxcontrib-serializinghtml>=2.0.0” |
HTML document generation |
[9] VSCode Settings#
Workspace extension and other settings are stored in the .vscode folder and should be included as part of a report folder. Settings that affect the rivt editing and execution environment incldue:
rivt.code-snippets
settings.json (extension settings)
tasks.json
launch.json
Global settings can be exported and imported using VSCode Profiles. VSCode rivt extensions and settings may be installed from this link.
Extension |
description |
|---|---|
BUTTONS |
— |
tombonnike.vscode-status-bar-format-toggle |
format button |
gsppvo.vscode-commandbar |
command buttons |
AdamAnand.adamstool |
command buttons |
nanlei.save-all |
save all button |
Ho-Wan.setting-toggle |
toggle settings |
yasukotelin.toggle-panel |
toggle panel |
fabiospampinato.vscode-commands |
user command buttons |
jerrygoyal.shortcut-menu-bar |
menu bar |
EDITING |
— |
henryclayton.context-menu-toggle-comments |
toggle comments |
TroelsDamgaard.reflow-paragraph |
wrap paragraph |
streetsidesoftware.code-spell-checker |
spell check |
jmviz.quote-list |
quote elements in a list |
njpwerner.autodocstring |
insert doc string |
oijaz.unicode-latex |
unicode symbols from latex |
jsynowiec.vscode-insertdatestring |
insert date string |
janisdd.vscode-edit-csv |
csv editor |
VIEWS |
— |
GrapeCity.gc-excelviewer |
excel viewer |
SimonSiefke.svg-preview |
svg viewer |
tomoki1207.pdf |
pdf viewer |
RandomFractalsInc.vscode-data-preview |
data viewing tools |
Fr43nk.seito-openfile |
open file from path |
vikyd.vscode-fold-level |
line folding tool |
file-icons.file-icons |
icon library |
tintinweb.vscode-inline-bookmarks |
inline bookmarks |
MANAGEMENT |
— |
alefragnani.project-manager |
folder, project management |
Anjali.clipboard-history |
clipboard history |
dionmunk.vscode-notes |
notepad |
hbenl.vscode-test-explorer |
test explorer |
mightycoco.fsdeploy |
save file to second location |
lyzerk.linecounter |
count lines in files |
sandcastle.vscode-open |
open files in default app |
zjffun.snippetsmanager |
snippet manager |
spmeesseman.vscode-taskexplorer |
task explorer |
GITHUB |
— |
GitHub.codespaces |
run files in codespaces |
GitHub.remotehub |
run remote files |
ettoreciprian.vscode-websearch |
search github within VSCode |
donjayamanne.githistory |
git history |
MichaelCurrin.auto-commit-msg |
git auto commit message |
github.vscode-github-actions |
github actions |
GitHub.vscode-pull-request-github |
github pull request |
k9982874.github-gist-explorer |
gist explorer |
vsls-contrib.gistfs |
gist tools |
PYTHON |
— |
ms-python.autopep8 |
python pep8 formatting |
ms-python.isort |
python sort imports |
donjayamanne.python-environment-manager |
python library list |
ms-python.python |
python tools |
ms-python.vscode-pylance |
python language server |
ms-toolsai.jupyter |
jupyter tools |
ms-toolsai.jupyter-keymap |
jupyter tools |
ms-toolsai.jupyter-renderers |
jupyter tools |
ms-toolsai.vscode-jupyter-cell-tags |
jupyter tools |
ms-toolsai.vscode-jupyter-slideshow |
jupyter tools |
LANGUAGES |
— |
qwtel.sqlite-viewer |
sqlite tools |
RDebugger.r-debugger |
R tools |
REditorSupport.r |
R tools |
ms-vscode-remote.remote-wsl |
windows linux tools |
James-Yu.latex-workshop |
latex tools |
lextudio.restructuredtext |
restructured text tools |
trond-snekvik.simple-rst |
restructured syntax |
yzane.markdown-pdf |
markdown to pdf |
yzhang.markdown-all-in-one |
markdown tools |
Snippets and extensions
Keystrokes |
Description |
|---|---|
api |
insert import statement for API |
rvr |
API Run |
rvi |
API Insert |
rvv |
API Values |
rvt |
API Tools |
rvd |
API Docs |
at
|
attach command |
im
|
image command |
i2
|
side by side image command |
pu
|
publish command |
ta
|
table command |
va
|
value command |
va
|
value table command |
_ce |
center bold line of text |
_ma |
utf-8 text math |
_la |
LaTeX math |
_ta |
number table |
_ur |
URL link |
_gl |
glossary term link |
_se |
section link |
_en |
endnote link |
_do |
download link |
_[m |
markup block |
_[p |
python block |
_[e |
end block |
alt+ctrl+c |
insert cell marker with label above API function |
alt+q |
rewrap paragraph with hard line feeds (80 default) |
alt+p |
open file under cursor |
alt+. |
select correct spelling under cursor |
alt+8 |
insert date |
alt+9 |
insert time |
ctl+1 |
focus on first editor |
ctl+2 |
focus on next editor |
ctl+3 |
focus on previous editor |
ctl+8 |
focus on explorer pane |
ctl+9 |
focus on github pane |
ctl+alt+x |
reload window |
ctl+alt+[ |
reload window |
ctl+alt+] |
unfold all code |
ctl+alt+u |
unfold all code |
ctl+alt+f |
fold code level 2 (rivt sections visible) |
ctl+alt+a |
fold code - all levels |
ctl+alt+t |
toggle local fold |
ctl+alt+e |
toggle explorer sort order |
ctl+alt+s |
toggle spell check |
ctl+alt+g |
next editor group |
ctl+shift+u |
open URL under cursor in browser |
ctl+shift+s |
open GitHub README search for rivt |
ctl+shift+a |
commit all |
ctl+shift+z |
commit the current editor |
ctl+shift+x |
post to remote |
Modified Keyboard Shortcuts
Keystroke |
Description |
|---|---|
alt+q |
rewrap paragraph with hard line feeds (80 default) |
alt+p |
open file under cursor |
alt+. |
select correct spelling under cursor |
alt+8 |
insert date |
alt+9 |
insert time |
ctl+1 |
focus on first editor |
ctl+2 |
focus on next editor |
ctl+3 |
focus on previous editor |
ctl+8 |
focus on explorer pane |
ctl+9 |
focus on github pane |
ctl+alt+x |
reload window |
ctl+alt+u |
unfold all code |
ctl+alt+f |
fold code level 2 (rivt sections visible) |
ctl+alt+a |
fold code - all levels |
ctl+alt+t |
toggle local fold |
ctl+alt+e |
toggle explorer sort order |
ctl+alt+s |
toggle spell check |
ctl+alt+g |
next editor group |
ctl+shift+u |
open URL under cursor in browser |
ctl+shift+s |
open GitHub rivt README search |
ctl+shift+a |
commit all |
ctl+shift+z |
commit current editor |
ctl+shift+x |
post to remote |