SI units and quantities library


License
MIT
Install
pip install siquant==2.4.0

Documentation

siquant: Dimensional Analysis

Documentation Status PyPi Package Build Status Code Coverage

siquant is a simple pure python 3 library to make dimensional analysis painless.

It is a small, flexible codebase aimed at 2 specific related problems: implicit unit tracking, and ensuring semantic correctness (fail fast) with minimal overhead.

Getting Started

  1. Install siquant

pip3 install siquant==4.0.0b13

  1. Implicit Unit Tracking:
>>> from siquant import si
>>> a = 10 * si.millimeters
>>> b = 10 * si.kilometers
>>> ab = a * b
>>> ab.quantity
100
>>> str(ab.units)
'1*m**2'
>>> ab.get_as(si.millimeters ** 2)
100000000.0
  1. Dimensional Analysis:
>>> from siquant.dimensions import area_t
>>> from siquant import imperial, si

>>> def real_estate_price(area):
...     assert area.is_of(area_t) #  or raise if at application/lib dmz
...     monies_per_square_foot = 100 / imperial.feet ** 2
...     return area * monies_per_square_foot
...
>>> house_price = real_estate_price(100 * si.meters ** 2)
>>> house_price
Quantity(10000, SIUnit(10.763910, (0, 0, 0, 0, 0, 0, 0)))
>>> round(house_price.get_as(si.unity))
107639

Online Resources

siquant is released under the MIT LICENSE.

Releases are hosted in the pypi package repository.

More detailed documentation and examples can be found on readthedocs.