Skip to main content

Work with physical measurements and constants

Project description

Noether

523 units, 60 prefixes

PyPI

Noether is a unit-enriched Python package, akin to Wolfram Alpha or gnu units. It has a large (and expanding) catalogue of up-to-date units and constants, allowing code to be written directly in the units they are concerned with while also ensuring e.g. you don't mistakenly add an energy to a length.

Just grab Python 3.10 or later and pip install noether to run!

Development is ongoing, especially in expanding the unit catalogue and improving unit display mechanisms.

Usage

Noether can be used as a Python package or as a CLI:

$ alias noe='python -im noether'
$ noe marathon
marathon  # length, 42195 m, Race length based on Greek legend, set by convention from 1908 Summer Olympics
$ noether 23degC @ degF
73.4 °F  # temperature
$ noether 'horsepower @ dB(kW)'
-1.33418061 dB(kW)  # power, 0.73549875 kW

The CLI allows a few niceties such as slightly terser syntax, but otherwise behaves identically to Python:

$ noether 5cm @ in --value
1.9685039370078738
$ python
>>> from noether import *
>>> 5*cm @ inch
1.9685039370078738 in  # length

In addition to @ for display, you can more permanently set display units:

>>> display(inch)
>>> 5 * cm
>>> mile
mile  # length, 63360 in

Units propagate uncertainty automatically under most operations:

>>> m(5, 0.1)**3
125 ± 7.5 m**3  # volume

You can define your own units and dimensions:

>>> foo = Unit(3e11 * furlong / fortnight, 'foo')
>>> c @ foo
6.008724999284181 foo  # speed

>>> health = Dimension.new('health', 'H')
>>> apple = Unit(health, 'apple', 'a')
>>> apple / day
apple / day  # health / time, 1.1574074074074073e-05 a / s

Various conf settings allow for customisation to behaviour:

>>> conf.info_spectrum = True
>>> nm(400)
4e-07 m  # length, visible, purple

Use conf.save() to save to (by default) ~/.config/noether.toml.

For more, see...

Other tools for working with units include:

  • Wolfram Alpha, a comprehensive online intelligence engine
  • gnu units, a command-line tool you likely already have
  • units, a simple Python package for defining your own units
  • unyt, a Python package with numpy support

📚 Did you know?

>>> lunation / (year % lunation)
2.7153489666011486

A lunation (about 29 days) separates one full moon from another. Every so often a thirteenth full moon occurs in a year - "a blue moon". "Once in a blue moon" is actually only every 2.71 years or so - not as rare as you'd think. Don't tell Sinatra!

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

noether-1.1.tar.gz (45.9 kB view details)

Uploaded Source

Built Distribution

noether-1.1-py3-none-any.whl (60.8 kB view details)

Uploaded Python 3

File details

Details for the file noether-1.1.tar.gz.

File metadata

  • Download URL: noether-1.1.tar.gz
  • Upload date:
  • Size: 45.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for noether-1.1.tar.gz
Algorithm Hash digest
SHA256 0be875bfa58c9c7288f97ec71af4f35c2b674afb8b37ad4dd8a3594c2e58d6de
MD5 1c07fb2b8282928f08268f29647931bb
BLAKE2b-256 648094887eb659f511ccbb6b2386a894ee514de4d604f2dd85f5b2aa3784ca9e

See more details on using hashes here.

File details

Details for the file noether-1.1-py3-none-any.whl.

File metadata

  • Download URL: noether-1.1-py3-none-any.whl
  • Upload date:
  • Size: 60.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for noether-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ccd0f168842b1c912bc4b941643c3e16d49fe7947d70397d858e5b19e3196c23
MD5 9cf3413159ed69c33ed5336c3cf28e01
BLAKE2b-256 18843628495e25aa1fa2e375bbfdf01854ded918ad680653e3f02157f40454f3

See more details on using hashes here.

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