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. Set up with python -m pip install -r requirements.txt
  3. Test with pytest
  4. Document with pydoc -w unitsofmeasure
  5. Build with python -m build
  6. Check with python -m twine check dist/*
  7. Publish with python -m twine upload dist/*

Release Notes

Release 1.2

Release 1.1

  • 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.2.0.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

units_of_measure-1.2.0-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file units_of_measure-1.2.0.tar.gz.

File metadata

  • Download URL: units_of_measure-1.2.0.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for units_of_measure-1.2.0.tar.gz
Algorithm Hash digest
SHA256 236f8d8ec5840beccbe5ed5513c126f126d573ed2f63ac1ae2f4c15e03cff319
MD5 3f88ad3f2ac083a42024d48e888176b6
BLAKE2b-256 1093af1a4e725ffc6037e9d7c8efe9b6398d8a101408c4524106aa9f0c91352a

See more details on using hashes here.

File details

Details for the file units_of_measure-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for units_of_measure-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 83f818511610ead6263871ab25d919cbd9a1670448e47f48e5989c43eea14567
MD5 9ca71ea932377a7e02efa87ac36e430c
BLAKE2b-256 c6a8cd3e5f84a7c474ca8a493ed6ea0cc371226da61ebfac9c165edcdb737343

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