skip to navigation
skip to content

Not Logged In

Pint 0.4

Physical quantities module

Latest Version: 0.4.2

Pint: a Python units library

Pint is Python module/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 it's modular design, you to extend (or even rewrite!) the complete list without changing the source code.

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

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 it's standard library.
  • Python 2 and 3: A single codebase that runs unchanged in Python 2.7+ 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.

Pint is written and maintained by Hernan E. Grecco <hernan.grecco@gmail.com>.

Other contributors, listed alphabetically, are:

Pint Changelog

0.4 (2013-12-17)

  • Introduced Contexts: relation between incompatible dimensions. (Issue #65)
  • Fixed get_base_units for non multiplicative units. (Related to issue #66)
  • Implemented default formatting for quantities.
  • Changed comparison between Quantities containing NumPy arrays. (Issue #75) - BACKWARDS INCOMPATIBLE CHANGE
  • Fixes for NumPy 1.8 due to changes in handling binary ops. (Issue #73)

0.3.3 (2013-11-29)

  • ParseHelper can now parse units named like python keywords. (Issue #69)
  • Fix comparison of quantities. (Issue #74)
  • Fix Inequality operator. (Issue #70, thanks muggenhor)
  • Improved travis configuration. (thanks muggenhor)

0.3.2 (2013-10-22)

  • Fix get_dimensionality for non multiplicative units. (Issue #66)
  • Proper handling of @import directive inside a file read using pkg_resources. (Issue #68)

0.3.1 (2013-09-15)

  • fix right division on python 2.7 (Issue #58, thanks natezb)
  • fix formatting of fractional exponentials between 0 and 1. (Issue #62, thanks jdreaver)
  • fix installation as egg. (Issue #61)
  • fix handling of strange values as input of Quantity. (Issue #53)
  • math operations between quantities of different registries now raise a ValueError. (Issue #52)

0.3 (2013-09-02)

  • support for IPython autocomplete and rich display. (Issues #30 and #31)
  • support for @import directive in definitions file. (Issue #22)
  • support for wrapping functions to make them pint-aware. (Issue #16)
  • support for comparing UnitsContainer to string. (Issue #35)
  • fix error raised while converting from a single unit to one expressed as the relation between many. (Issue #29)
  • fix error raised when unit symbol is missing. (Issue #41)
  • fix error raised when magnitude is Decimal. (Issue #46, thanks danielsokolowski)
  • support for non-installed pint. (Issue #42, thanks danielsokolowski)
  • support for application of numpy function on non-ndarray magnitudes. (Issue #44)
  • support for math operations on dimensionless Quantities (written with units). (Issue #45)
  • fix obtaining dimensionless quantity from string. (Issue #50)
  • fix adding and comparing numbers to a dimensionless quantity (written with units). (Issue #54)
  • Support for iter in Quantity. (Issue #55, thanks natezb)

0.2.1 (2013-07-02)

  • fix error raised while converting from a single unit to one expressed as the relation between many. (Issue #29)

0.2 (2013-05-13)

  • support for Measurement (Quantity +/- error).
  • implemented buckingham pi theorem for dimensional analysis.
  • support for temperature units and temperature difference units.
  • parser can infers if the user mean temperature or temperature difference.
  • support for derived dimensions (e.g. [speed] = [length] / [time]).
  • refactored the code into multiple files.
  • refactored code to isolate definitions and converters.
  • refactored formatter out of UnitParser class.
  • added tox and travis config files for CI.
  • comprehensive NumPy testing including almost all ufuncs.
  • full NumPy support (features is not longer experimental).
  • fixed bug preventing from having independent registries. (Issue #10, thanks bwanders)
  • forces real division as default for Quantities. (Issue #7, thanks dbrnz)
  • improved default unit definition file. (Issue #13, thanks r-barnes)
  • smarter parser supporting spaces as multiplications and other nice features. (Issue #13, thanks r-barnes)
  • moved testsuite inside package.
  • short forms of binary prefixes, more units and fix to less than comparison. (Issue #20, thanks muggenhor)
  • pint is now zip-safe (Issue #23, thanks muggenhor)

Version 0.1.3 (2013-01-07)

  • abbreviated quantity string formating.
  • complete Python 2.7 compatibility.
  • implemented pickle support for Quantities objects.
  • extended NumPy support.
  • various bugfixes.

Version 0.1.2 (2012-08-12)

  • experimenal NumPy support.
  • included default unit definitions file. (Issue #1, thanks fish2000)
  • better testing.
  • various bugfixes.
  • fixed some units definitions. (Issue #4, thanks craigholm)

Version 0.1.1 (2012-07-31)

  • better packaging and installation.

Version 0.1 (2012-07-26)

  • first public release.
 
File Type Py Version Uploaded on Size
Pint-0.4.zip (md5) Source 2013-12-17 104KB
  • Downloads (All Versions):
  • 128 downloads in the last day
  • 458 downloads in the last week
  • 2097 downloads in the last month