Skip to main content

Dimensional Analysis and Unit Tracking Library

Project description

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.0b6

  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.

Project details


Download files

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

Source Distribution

siquant-4.0.0b6.tar.gz (19.5 kB view hashes)

Uploaded Source

Built Distribution

siquant-4.0.0b6-py3-none-any.whl (10.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page