Skip to main content

image image image

SI Units

This is a library used to symbolically manipulate SI units. It comprises a BaseUnit type, used for base SI units like kilogram, meter etc, a DerivedUnit type, for units derived from them, and a Composite type, for when numerical coefficients are included. Python version 3.7 or greater is required. There are no dependencies.

This library is useful for dimensional analysis. It relies on the concept that SI units are all composed of varying exponents of 7 base units. We can think of all other units as linear combinations of base units.

You can perform normal multiplication, division, and power operations on units provided by this lib, and between them and ints and floats. You can check equality, based on the resulting combination of base units.

Install

pip install siunits

In Linux, you may need to use something like pip3 install siunits, or python3.7 -m pip install siunits.

Examples

A base unit:

import siunits as u

u.kg
>>> kilogram (kg), mass

A derived unit:

u.v
>>> volt (V), [kg: 1, m: 2, s: -3, A: -1]

Multiplication:

u.kg * u.s
>>> kilogram·second (kg·s), [kg: 1, s: 1]

Division:

u.j / u.m**2
>>> joule / meter² (kg·s⁻²), [kg: 1, s: -2]

u.s**2 / u.kg**3
>>> second²·kilogram⁻³ (s²·kg⁻³), [s: 2, kg: -3]

With numerical coefficients:

2*u.a**2 * 3*u.v**2
>>> 6kg²·m⁴·s⁻⁶

Equality testing is based on composition of base units:

u.w == u.v * u.a == u.kg * u.m**2 / u.s**3
>>> True

Todo

  • Infer composite types that match a given custom (eg multiplied) unit
  • Apply arithmetic to quantities as well (eg energy, work etc), and display them
  • Addition and subtraction

Scope

This project doesn't aim to provide conversions with other unit systems, like cgs and imperial, nor does it provide physical constants. For these tasks, try scipy.constants.

Why add another unit library?

The clean symbolic manipulation this library provides doesn't appear to exist in any existing one.

Metadata

Release files for siunits 0.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for siunits 0.0.6
File Size Uploaded
siunits-0.0.6.tar.gz 6.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for siunits 0.0.6
File Interpreter ABI Platform
siunits-0.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 15.2 kB

Release files / siunits-0.0.6.tar.gz

Download URL siunits-0.0.6.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
649f4910f2eb47c2c5a2b4387c76a99bb241f21947728497aa22ed7b4d9a82fd
BLAKE2b-256 checksum
How to use checksums
4758afc8be69af36f425b99f87aeb62723bda4e93d25a6bf167e799e409fc516
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.3

Release files / siunits-0.0.6-py3-none-any.whl

Download URL siunits-0.0.6-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
962146ed26387b768696a619444c459bf04d3951ab3c4228906df87cd298f05e
BLAKE2b-256 checksum
How to use checksums
2266ee4a14b29263feee3629dcc00b72755a9b48336f77b73244deda807389af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.3

Release history Release notifications | RSS feed

This release

0.0.6 This release

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page