Dimensional Analysis and Unit Tracking Library
Project description
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
Install siquant
pip3 install siquant==4.0.0b1
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
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
Projected Details
siquant releases are hosted on the pypi package repository.
Project details
Release history Release notifications | RSS feed
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.0b2.tar.gz
(19.8 kB
view hashes)
Built Distribution
siquant-4.0.0b2-py3-none-any.whl
(10.7 kB
view hashes)
Close
Hashes for siquant-4.0.0b2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f20c7a53db23aba3c2613a580664799deca80d034a3edb55a97e67888e61cfd |
|
MD5 | 203876c32a5128ae57b2ef814f2888fa |
|
BLAKE2b-256 | 3af294b5453158d850423cfe711c1b565e951fda85058634a8fe1dba34f32baf |