RETIRED, further work has moved to Debian project infrastructure
Go to file
bors[bot] 2906e54141 Merge #533
533: Bug fixing and some Refactoring r=hgrecco
2017-06-28 01:15:41 +00:00
bench Added recursive function 2015-06-01 00:28:22 -03:00
docs Merge #502 2017-04-16 03:49:14 +00:00
pint Merge branch 'master' into develop 2017-06-27 22:15:05 -03:00
.gitignore Added [concentration] quantity, molar units, modified a test that had defined molar units locally, and added tags files to the .gitignore. 2017-06-08 13:24:21 -04:00
.travis-exclude.yml Python 3.2 is not available in conda, remove it from travis 2016-08-01 01:24:13 -03:00
.travis-full.yml Simplified .travis.yml for faster testing 2016-11-17 23:39:36 -03:00
.travis.yml Test for Python 3.6 and added babel to doctest run 2017-04-16 00:46:37 -03:00
AUTHORS Updated AUTHORS and CHANGES 2015-07-22 22:32:52 -03:00
BADGES.rst Added docs to Badge 2016-02-12 15:55:29 -03:00
bors.toml Trying bors-ng 2017-03-31 00:32:15 -03:00
CHANGES Back to development: 0.9 2017-06-05 21:46:49 -03:00
CHANGES_DEV Updated CHANGES and CHANGES_DEV 2014-11-03 16:51:11 -03:00
LICENSE Docs and license 2012-05-03 02:21:14 +02:00
MANIFEST.in Updated MANIFEST.in 2016-02-20 19:17:34 -03:00
README Add conda-forge installation snippet 2017-03-31 22:46:35 -04:00
README.rst Add conda-forge installation snippet 2017-03-31 22:46:35 -04:00
setup.cfg Removed some zest entry points for setup.cfg 2014-11-03 16:39:20 -03:00
setup.py Back to development: 0.9 2017-06-05 21:46:49 -03:00
tox.ini Add 3.4 to tox 2014-06-11 08:12:27 -03:00

Pint: makes units easy
======================

Pint is a Python package to define, operate and manipulate physical
quantities: the product of a numerical value and a unit of measurement.
It allows arithmetic operations between them and conversions from and
to different units.

It is distributed with a comprehensive list of physical units, prefixes
and constants. Due to its modular design, you can extend (or even rewrite!)
the complete list without changing the source code. It supports a lot of
numpy mathematical operations **without monkey patching or wrapping numpy**.

It has a complete test coverage. It runs in Python 2.6 and 3.X
with no other dependency. It is licensed under BSD.

It is extremely easy and natural to use:

.. code-block:: python

    >>> import pint
    >>> ureg = pint.UnitRegistry()
    >>> 3 * ureg.meter + 4 * ureg.cm
    <Quantity(3.04, 'meter')>

and you can make good use of numpy if you want:

.. code-block:: python

    >>> import numpy as np
    >>> [3, 4] * ureg.meter + [4, 3] * ureg.cm
    <Quantity([ 3.04  4.03], 'meter')>
    >>> np.sum(_)
    <Quantity(7.07, 'meter')>


Quick Installation
------------------

To install Pint, simply:

.. code-block:: bash

    $ pip install pint

or utilizing conda with, the conda-forge channel:

.. code-block:: bash

    $ conda install -c conda-forge pint

and then simply enjoy it!


Documentation
-------------

Full documentation is available at http://pint.readthedocs.org/


Design principles
-----------------

Although there are already a few very good Python packages to handle physical
quantities, no one was really fitting my needs. Like most developers, I programed
Pint to scratch my own itches.

- Unit parsing: prefixed and pluralized forms of units are recognized without
  explicitly defining them. In other words: as the prefix *kilo* and the unit *meter*
  are defined, Pint understands *kilometers*. This results in a much shorter and
  maintainable unit definition list as compared to other packages.

- Standalone unit definitions: units definitions are loaded from simple and
  easy to edit text file. Adding and changing units and their definitions does
  not involve changing the code.

- Advanced string formatting: a quantity can be formatted into string using
  PEP 3101 syntax. Extended conversion flags are given to provide latex and pretty
  formatting.

- Small codebase: small and easy to maintain with a flat hierarchy.

- Dependency free: it depends only on Python and its standard library.

- Python 2 and 3: A single codebase that runs unchanged in Python 2.6+ and Python 3.0+.

- Advanced NumPy support: While NumPy is not a requirement for Pint,
  when available ndarray methods and ufuncs can be used in Quantity objects.