I am currently using Pint to handle units and unit conversions. This seems to work well for units that are already defined in Pint, e.g.
>>> import pint >>> ureg = pint.UnitRegistry() >>> Q = ureg.Quantity >>> a = Q(5, 'm/s') >>> a <Quantity(5, 'meter / second')> >>> a.to('ft/s') <Quantity(16.404199475065617, 'foot / second')>
I tried to determine my own units , which represent a percentage. As for unit conversions, the percentage is simply 100 times the dimensionless fraction, as I defined it.
>>> ureg.define('percent = dimensionless * 100 = pct') >>> a = Q(5, 'pct') >>> a <Quantity(5, 'percent')>
However, I cannot convert back and forth between fractions ( 'dimensionless' ) and 'pct' .
>>> a.to('dimensionless') Traceback (most recent call last): File "<pyshell#31>", line 1, in <module> a.to('dimensionless') File "C:\Python35\python-3.5.1.amd64\lib\site-packages\pint\quantity.py", line 263, in to magnitude = self._convert_magnitude_not_inplace(other, *contexts, **ctx_kwargs) File "C:\Python35\python-3.5.1.amd64\lib\site-packages\pint\quantity.py", line 231, in _convert_magnitude_not_inplace return self._REGISTRY.convert(self._magnitude, self._units, other) File "C:\Python35\python-3.5.1.amd64\lib\site-packages\pint\unit.py", line 1026, in convert return self._convert(value, src, dst, inplace) File "C:\Python35\python-3.5.1.amd64\lib\site-packages\pint\unit.py", line 1042, in _convert src_dim = self._get_dimensionality(src) File "C:\Python35\python-3.5.1.amd64\lib\site-packages\pint\unit.py", line 813, in _get_dimensionality self._get_dimensionality_recurse(input_units, 1.0, accumulator) File "C:\Python35\python-3.5.1.amd64\lib\site-packages\pint\unit.py", line 837, in _get_dimensionality_recurse self._get_dimensionality_recurse(reg.reference, exp2, accumulator) File "C:\Python35\python-3.5.1.amd64\lib\site-packages\pint\unit.py", line 835, in _get_dimensionality_recurse reg = self._units[self.get_name(key)] KeyError: ''
What I really would like to do is convert between, for example, 0.73 and 73%. How can I identify and use such a unit?