:orphan: Pint: a Python units library ============================ .. image:: _static/logo-full.jpg :alt: Pint: **physical quantities** :class: floatingflask 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 can 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 codebase with a flat hierarchy. It is a single stand-alone module that can be installed as a package or added side by side to your project. **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.6+ and Python 3.0+. **Experimental advanced NumPy support**: While NumPy is not a requirement for Pint, when available ndarray methods and ufuncs can be used in Quantity objects. Soon ~~~~ **Handle temperature conversion**: it can convert between units with different point of reference, like positions on a map or absolute temperature scales. Where to start -------------- .. toctree:: getting tutorial defining faq .. note:: *A small technical note* The MCO MIB has determined that the root cause for the loss of the MCO spacecraft was the failure to use metric units in the coding of a ground software file, “Small Forces,” used in trajectory models. Specifically, thruster performance data in English units instead of metric units was used in the software application code titled SM_FORCES (small forces). The output from the SM_FORCES application code as required by a MSOP Project Software Interface Specification (SIS) was to be in metric units of Newtonseconds (N-s). Instead, the data was reported in English units of pound-seconds (lbf-s). The Angular Momentum Desaturation (AMD) file contained the output data from the SM_FORCES software. The SIS, which was not followed, defines both the format and units of the AMD file generated by ground-based computers. Subsequent processing of the data from AMD file by the navigation software algorithm therefore, underestimated the effect on the spacecraft trajectory by a factor of 4.45, which is the required conversion factor from force in pounds to Newtons. An erroneous trajectory was computed using this incorrect data. `Mars Climate Orbiter Mishap Investigation Phase I Report` `PDF `_ Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`