Simple Unit (Python implementation)
This package is the Python Reference Implementation (RI) of the Simple Unit specification. Nevertheless, it also contains some extensions to the specification standard.
Standard usage
The standard usage refers to methods and classes defined in the Simple Unit specification.
Usage of transformed units:
import unit_simple as su
m = su.FundamentalUnit()
km = m.scale_multiply(1000)
cm = m.scale_divide(100)
cmToKm = cm.get_converter_to(km)
cmToKm.convert(3) # 0.00003
cmToKm.inverse().convert(0.00003) # 3
Usage of derived units:
import unit_simple as su
m = su.FundamentalUnit()
km = m.scale_multiply(1000)
km2 = su.DerivedUnit(km.factor(2))
cm = m.scale_divide(100)
cm2 = su.DerivedUnit(cm.factor(2))
km2Tocm2 = km2.get_converter_to(cm2)
km2Tocm2.convert(3) # 30000000000
km2Tocm2.inverse().convert(30000000000) # 3
Usage of derived units combining dimensions:
import unit_simple as su
m = su.FundamentalUnit()
kg = su.FundamentalUnit()
g = kg.scale_divide(1000)
ton = kg.scale_multiply(1000)
gPerM2 = su.DerivedUnit(g, m.factor(-2))
km = m.scale_multiply(1000)
tonPerKm2 = su.DerivedUnit(ton, km.factor(-2))
cm = m.scale_divide(100)
tonPerCm2 = su.DerivedUnit(ton, cm.factor(-2))
gPerM2ToTonPerKm2 = gPerM2.get_converter_to(tonPerKm2)
gPerM2ToTonPerCm2 = gPerM2.get_converter_to(tonPerCm2)
gPerM2ToTonPerKm2.convert(1) # 1
gPerM2ToTonPerKm2.inverse().convert(3) # 3
gPerM2ToTonPerCm2.convert(1) # 1e-4
gPerM2ToTonPerCm2.convert(3) # 3e-10
gPerM2ToTonPerCm2.offset() # 0.0
gPerM2ToTonPerCm2.scale() # 1e-10
gPerM2ToTonPerCm2.inverse().offset() # -0.0
gPerM2ToTonPerCm2.inverse().convert(3e-10) # 3
Usage of temperatures (affine and linear conversions):
import unit_simple as su
k = su.FundamentalUnit()
c = k.shift(273.15)
kToC = k.get_converter_to(c)
kToC.convert(0) # -273.15
kToC.inverse().convert(0) # 273.15
# combined with other units, temperatures only keep their linear conversion part
m = su.FundamentalUnit()
cPerM = su.DerivedUnit(c, m.factor(-1))
kPerM = su.DerivedUnit(k, m.factor(-1))
kPerMToCPerM = kPerM.get_converter_to(cPerM)
kPerMToCPerM.convert(3) # 3
kPerMToCPerM.inverse().convert(3) # 3
Usage of non-decimal conversions:
import unit_simple as su
m = su.FundamentalUnit()
km = m.scale_multiply(1000.)
s = su.FundamentalUnit()
h = s.scale_multiply(3600.)
ms = su.DerivedUnit(m, s.factor(-1))
kmh = su.DerivedUnit(km, h.factor(-1))
msToKmh = ms.get_converter_to(kmh)
msToKmh.convert(100.) # 360
msToKmh.inverse().convert(18.) # 5
Operator overloading usage
The Simple Unit Python implementation provides an extension of the base specification to overloads some language operators.
Usage of transformed units:
import unit_simple as su
m = su.FundamentalUnit()
km = m * 1000
cm = m / 100
cmToKm = cm >> km
cmToKm(3) # 0.00003
(~cmToKm)(0.00003) # 3
Usage of derived Units:
import unit_simple as su
m = su.FundamentalUnit()
km = m * 1000
km2 = km ** 2
cm = m / 100
cm2 = cm ** 2
km2Tocm2 = km2 >> cm2
km2Tocm2(3) # 30000000000
(~km2Tocm2)(30000000000) # 3
Usage of derived units combining dimensions:
import unit_simple as su
m = su.FundamentalUnit()
kg = su.FundamentalUnit()
g = kg / 1000
ton = kg * 1000
gPerM2 = g / m ** 2
km = m * 1000
tonPerKm2 = ton * ~km ** 2
cm = m / 100
tonPerCm2 = ton / cm ** 2
gPerM2ToTonPerKm2 = gPerM2 >> tonPerKm2
gPerM2ToTonPerCm2 = tonPerCm2 << gPerM2
gPerM2ToTonPerKm2(1) # 1
(~gPerM2ToTonPerKm2)(3) # 3
gPerM2ToTonPerCm2(1) # 1e-10
gPerM2ToTonPerCm2(3) # 3e-10
gPerM2ToTonPerCm2.offset() # 0.0
gPerM2ToTonPerCm2.scale() # 1e-10
(~gPerM2ToTonPerCm2).offset() # -0.0
(~gPerM2ToTonPerCm2)(3e-10) # 3
Usage of temperatures (affine and linear conversions):
import unit_simple as su
k = su.FundamentalUnit()
c = k + 273.15
kToC = k >> c
kToC(0) # -273.15
(~kToC)(0) # 273.15
# combined with other units, temperatures only keep their linear conversion part
m = su.FundamentalUnit()
cPerM = c / m
kPerM = k / m
kPerMToCPerM = kPerM >> cPerM
kPerMToCPerM(3) # 3
(~kPerMToCPerM)(3) # 3
Usage of non-decimal conversions:
import unit_simple as su
m = su.FundamentalUnit()
km = m * 1000.
s = su.FundamentalUnit()
h = s * 3600.
ms = m / s
kmh = km / h
msToKmh = ms >> kmh
msToKmh(100.) # 360
(~msToKmh)(18.) # 5
Documentation
Metadata
Release files for unit-simple 1.0.26
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| unit_simple-1.0.26.tar.gz | 9.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| unit_simple-1.0.26-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.8 kB
Release files / unit_simple-1.0.26.tar.gz
| Download URL | unit_simple-1.0.26.tar.gz |
|---|---|
| Size | 9.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8163376d93dcd2f64b7e671eaf3a31b23f7610f2860aa1129614adc41e78bd3f
|
|
BLAKE2b-256 checksum How to use checksums |
0ef2486828a0b72857d412ca26e64d4e85ab39cdbcc1b3096d8f646a5f18bc49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.9
|
Release files / unit_simple-1.0.26-py3-none-any.whl
| Download URL | unit_simple-1.0.26-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
96f37ddec9b6bbf913701c6243a0fa45c7ca00b6dc1e3b81cfa4f23af75cd674
|
|
BLAKE2b-256 checksum How to use checksums |
d4adb27c61b076946f04c9152f2042b05e13bf5bdf4d08554c114450908892aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.9
|