Metadata-Version: 2.1
Name: django-measurement
Version: 3.2.4
Summary: Convenient fields and classes for handling measurements
Home-page: https://github.com/coddingtonbear/django-measurement
Author: Adam Coddington
Author-email: me@adamcoddington.net
License: MIT
Keywords: measurement,django
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 2.2
Classifier: Framework :: Django :: 3.0
Classifier: Topic :: Utilities
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: GIS
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Software Development :: Localization
Description-Content-Type: text/x-rst
License-File: LICENSE

|version| |ci| |coverage| |license|

Django Measurement
==================

Easily use, manipulate, and store unit-aware measurement objects using Python
and Django.

`django.contrib.gis.measure <https://github.com/django/django/blob/master/django/contrib/gis/measure.py>`_
has these wonderful 'Distance' objects that can be used not only for storing a
unit-aware distance measurement, but also for converting between different
units and adding/subtracting these objects from one another.

This module provides for a django model field and admin interface for storing
any measurements provided by `python-measurement`_.

Example use with a model:

.. code-block:: python

   from django_measurement.models import MeasurementField
   from measurement.measures import Volume
   from django.db import models
   
   class BeerConsumptionLogEntry(models.Model):
       name = models.CharField(max_length=255)
       volume = MeasurementField(measurement=Volume)
   
       def __str__(self):
           return f"{self.name} of {self.volume}"

   entry = BeerConsumptionLogEntry()
   entry.name = "Bear Republic Racer 5"
   entry.volume = Volume(us_pint=1)
   entry.save()

These stored measurement objects can be used in all of the usual ways supported
by `python-measurement`_
too:

.. code-block:: python

   >>> from measurement.measures import Mass
   >>> weight_1 = Mass(lb=125)
   >>> weight_2 = Mass(kg=40)
   >>> added_together = weight_1 + weight_2
   >>> added_together
   Mass(lb=213.18497680735112)
   >>> added_together.kg  # Maybe I actually need this value in kg?
   96.699

- Documentation for django-measurement is available via `Read the Docs`_.
- Please post issues on GitHub_.

.. _Read the Docs: https://django-measurement.readthedocs.io/
.. _GitHub: https://github.com/coddingtonbear/django-measurement/issues
.. _python-measurement: https://github.com/coddingtonbear/python-measurement

.. |version| image:: https://img.shields.io/pypi/v/django-measurement.svg
    :target: https://pypi.python.org/pypi/django-measurement
.. |ci| image:: https://api.travis-ci.org/coddingtonbear/django-measurement.svg?branch=master
    :target: https://travis-ci.org/coddingtonbear/django-measurement
.. |coverage| image:: https://codecov.io/gh/coddingtonbear/django-measurement/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/coddingtonbear/django-measurement
.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg
    :target: LICENSE

