Skip to main content

Units of Measure

Project description

Units of Measure

as defined in Unit of Measurement.

Objectives

  1. Relate units of measure to the International System of Units (SI) to define their dimension and magnitude.
  2. Relate objects to units without changing the objects.
  3. Get the unit that an object is mapped to.
  4. Give units human-readable symbols and names, and computable attributes.
  5. Being mapped to a unit shall not keep an object from being garbage-collected.
  6. Provide SI units and prefixes.

Motivation

First, I used the library forallpeople, but that ran into issues with large scales like megatonnes and gigatonnes.

Based on my objectives I decided to create a new library that does exactly that and does not deal with quantities (yet).

Limits

Some types of objects like int and float cannot be mapped to units, because that would create error-prone states.

Not all accepted SI units are implemented.

Get Started

To start from the beginning, open the Jupyter notebook start_here.ipynb. This link is relative, so it might not work in all contexts.

There is no dependency to the package jupyter, neither at buildtime nor at runtime. Consequently this library does not declare jupyter as dependency. You can view the notebook on GitHub or in Visual Studio Code. Beyond that there are several alternatives to view notebooks. If you want to run or edit it, then you need something like package jupyter or Miniconda.

Download and install the library with python -m pip install units-of-measure.

Develop

  1. Clone with git clone https://github.com/gerald-scharitzer/units-of-measure.git
  2. Test with pytest
  3. Document with pydoc -w unitsofmeasure
  4. Build with python -m build
  5. Check with python -m twine check dist/*
  6. Publish with python -m twine upload dist/*

Release Notes

The latest release 1.1 includes

  • totally ordered prefixes
  • type and value checks in constructors
  • dimension symbols and names
  • pyproject.toml and hatchling instead of setuptools

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

units_of_measure-1.1.0.tar.gz (18.2 kB view hashes)

Uploaded Source

Built Distribution

units_of_measure-1.1.0-py3-none-any.whl (9.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