Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

rivtlib is alpha software. Some features are not complete and the program has bugs.

rivt is an extensible, open source tool for writing and sharing engineering documents. This has always been a challenge because engineering documents are complex. They may include text, images, tables, calculations, models and computer code.

A rivt file is a Python file (.py) that imports the rivtlib Python package and includes rivt markup. Markup publishes the file as a text, PDF or HTML doc that can be assembled and linked, with other docs, into a rivt report.

The primary use case for rivt is producing clear, acurate engineering documents that are:

  1. Easier to write and format than LaTeX, Excel, Word or other general purpose word processors.

  2. Do not need to be formatted to the precise standards of a formal journal publication.

A second use case is when documents may need to be produced in a variety of formats from the same input file. For futher details please refer to the rivt user manual.

Use Cases

In addition to publishing engineering documents for:

  1. internal communication.

  2. research documentation.

  3. government permits.

  4. technical reports.

  5. funding applications.

  6. teaching.

  7. presentations.

rivt can:

  1. function as a front and back end for external software.

  2. be used for real time collaboration.

The table below compares limitations between different software programs. rivt is designed to address these limitations and serve as a complement or replacement to existing software.

Software Comparison

Program

Rep [1]

Ver [2]

Txt [3]

Comp [4]

CP [5]

Collab [6]

Matlab

no

no

no

no

no

no

Mathcad

no

no

no

no

no

no

Mathematica

no

no

no

no

no

no

Cloud SaaS

limited

no

no

no

yes

limited

Excel

limited

no

no

yes

no

yes

Jupyter

no

no

no

yes

yes

yes

rivt

yes

yes

yes

yes

yes

yes

Modules - Summary

=========================================================
Module Name: rvapi.py   | Total Lines: 428
=========================================================

IMPORTS:
- import fnmatch
- import logging
- import os
- import sys
- import warnings
- from importlib.metadata import version
- from pathlib import Path
- import __main__
- import rivtlib.rvunits as rvunit
- from rivtlib import rvdoc, rvparse

CLASSES & METHODS:

TOP-LEVEL FUNCTIONS:
- cmdhelp() -> 12 lines
- doc_parse() -> 23 lines
- R() -> 36 lines
- I() -> 34 lines
- V() -> 30 lines
- T() -> 33 lines
- D() -> 10 lines
- S() -> 8 lines
- X() -> 9 lines
=========================================================

=========================================================
Module Name: rvparse.py   | Total Lines: 336
=========================================================

IMPORTS:
- import logging
- import os
- import sys
- import warnings
- from io import StringIO
- from pathlib import Path
- import tabulate
- from fastcore.utils import store_attr
- import __main__
- from . import rvcmd, rvtag

CLASSES & METHODS:
    Class: Rs (317 lines total)
    └─ Method: __init__() -> 110 lines
    └─ Method: content() -> 177 lines
    └─ Method: prt_tabl() -> 22 lines

TOP-LEVEL FUNCTIONS:
=========================================================

=========================================================
Module Name: rvtag.py   | Total Lines: 352
=========================================================

IMPORTS:
- import csv
- import textwrap
- from pathlib import Path
- import docutils.parsers.rst.tableparser
- import docutils.statemachine
- import sympy as sp
- import tabulate
- from fastcore.utils import store_attr
- from numpy import *
- from sympy.abc import _clash2

CLASSES & METHODS:
    Class: Tag (337 lines total)
    └─ Method: __init__() -> 22 lines
    └─ Method: taglx() -> 173 lines
    └─ Method: tagbx() -> 108 lines
    └─ Method: parse_simple_rst_table() -> 23 lines

TOP-LEVEL FUNCTIONS:
=========================================================

=========================================================
Module Name: rvcmd.py   | Total Lines: 976
=========================================================

IMPORTS:
- import csv
- import sys
- import textwrap
- from io import StringIO
- from pathlib import Path
- import numpy as np
- import pandas as pd
- import sympy as sp
- import tabulate
- from fastcore.utils import store_attr
- from IPython.display import display as _display
- from PIL import Image
- from sympy.abc import _clash2
- from rivtlib.rvunits import *
- from rivtlib.unum.core import Unum

CLASSES & METHODS:
    Class: Cmd (954 lines total)
    └─ Method: __init__() -> 34 lines
    └─ Method: cmdx() -> 13 lines
    └─ Method: vdefine() -> 51 lines
    └─ Method: vassign() -> 109 lines
    └─ Method: vfunc() -> 114 lines
    └─ Method: vcompare() -> 114 lines
    └─ Method: IMAGE() -> 44 lines
    └─ Method: IMAGE2() -> 79 lines
    └─ Method: TABLE() -> 76 lines
    └─ Method: TEXT() -> 12 lines
    └─ Method: VALTABLE() -> 105 lines
    └─ Method: PYTHON() -> 70 lines
    └─ Method: LATEX() -> 5 lines
    └─ Method: WIN() -> 19 lines
    └─ Method: OSX() -> 19 lines
    └─ Method: LINUX() -> 19 lines
    └─ Method: wrap_pad() -> 15 lines

TOP-LEVEL FUNCTIONS:
=========================================================

=========================================================
Module Name: rvdoc.py   | Total Lines: 973
=========================================================

IMPORTS:
- import configparser
- import logging
- import os
- import shutil
- import subprocess
- import warnings
- from datetime import datetime
- from pathlib import Path
- from fastcore.utils import store_attr
- import __main__

CLASSES & METHODS:
    Class: Cmdp (959 lines total)
    └─ Method: __init__() -> 34 lines
    └─ Method: cmdx() -> 73 lines
    └─ Method: htmlx() -> 76 lines
    └─ Method: pdfx() -> 74 lines
    └─ Method: textx() -> 28 lines
    └─ Method: metadatax() -> 26 lines
    └─ Method: attachpdfx() -> 5 lines
    └─ Method: confpy() -> 136 lines
    └─ Method: rivtstyS() -> 376 lines
    └─ Method: coverS() -> 63 lines
    └─ Method: genreport() -> 2 lines
    └─ Method: latexx() -> 32 lines

TOP-LEVEL FUNCTIONS:
=========================================================

=========================================================
Module Name: rvreport.py   | Total Lines: 1076
=========================================================

IMPORTS:
- import configparser
- import glob
- import logging
- import os
- import shutil
- import subprocess
- import sys
- import warnings
- from datetime import datetime
- from itertools import groupby
- from pathlib import Path
- import __main__

CLASSES & METHODS:

TOP-LEVEL FUNCTIONS:
- htmlx() -> 71 lines
- pdfx() -> 34 lines
- textx() -> 27 lines
- confpy() -> 138 lines
- yamlS() -> 376 lines
- pdfcoverS() -> 77 lines
- pdfindex() -> 78 lines
- htmlindex() -> 95 lines
- get_readme() -> 8 lines
=========================================================


=========================================================
Module Name: rvunits.py   | Total Lines: 134
=========================================================

IMPORTS:
- import importlib.util
- import sys
- from pathlib import Path
- from rivtlib.unum.core import Unum, new_unit

CLASSES & METHODS:

TOP-LEVEL FUNCTIONS:
=========================================================

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rivtlib-1.0.0a13.tar.gz (53.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rivtlib-1.0.0a13-py3-none-any.whl (66.3 kB view details)

Uploaded Python 3

File details

Details for the file rivtlib-1.0.0a13.tar.gz.

File metadata

  • Download URL: rivtlib-1.0.0a13.tar.gz
  • Upload date:
  • Size: 53.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for rivtlib-1.0.0a13.tar.gz
Algorithm Hash digest
SHA256 6a08a374fdf64537be220cb7d150c447f626fdbfdaf38350f17ac109363037f0
MD5 107e32294433d8ef3cb78d6ce2a118eb
BLAKE2b-256 1a6f9997bc46d6e7a172c9ad52ea959fb45fcf045a091d8f3c8c6488855fc70e

See more details on using hashes here.

File details

Details for the file rivtlib-1.0.0a13-py3-none-any.whl.

File metadata

  • Download URL: rivtlib-1.0.0a13-py3-none-any.whl
  • Upload date:
  • Size: 66.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for rivtlib-1.0.0a13-py3-none-any.whl
Algorithm Hash digest
SHA256 a482dbd8481fa136a1e9a842e2c0efd30e0a880f91d9158c65dd7ea65a80684c
MD5 bd9b6e5c2ea086b6d11b605205704db2
BLAKE2b-256 f4e7f442df0e227f15d178962e2d3d97fb854e5be21314aa3a813ad1ce44d60c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page