diff options
Diffstat (limited to 'pint/quantity.py')
-rw-r--r-- | pint/quantity.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/pint/quantity.py b/pint/quantity.py index 509c0a3..9f072b8 100644 --- a/pint/quantity.py +++ b/pint/quantity.py @@ -17,7 +17,7 @@ import functools from .formatting import remove_custom_flags from .unit import (DimensionalityError, OffsetUnitCalculusError, UnitsContainer, UnitDefinition, UndefinedUnitError) -from .compat import string_types, ndarray, np, _to_magnitude +from .compat import string_types, ndarray, np, _to_magnitude, long_type from .util import logger @@ -264,6 +264,16 @@ class _Quantity(object): return self.__class__(magnitude, other) # Mathematical operations + def __int__(self): + if self.dimensionless: + return int(self._convert_magnitude_not_inplace(UnitsContainer())) + raise DimensionalityError(self.units, 'dimensionless') + + def __long__(self): + if self.dimensionless: + return long_type(self._convert_magnitude_not_inplace(UnitsContainer())) + raise DimensionalityError(self.units, 'dimensionless') + def __float__(self): if self.dimensionless: return float(self._convert_magnitude_not_inplace(UnitsContainer())) @@ -911,6 +921,18 @@ class _Quantity(object): raise DimensionalityError('dimensionless', self.units) self.magnitude.put(indices, values, mode) + @property + def real(self): + return self.__class__(self._magnitude.real, self.units) + + @property + def imag(self): + return self.__class__(self._magnitude.imag, self.units) + + @property + def T(self): + return self.__class__(self._magnitude.T, self.units) + def searchsorted(self, v, side='left'): if isinstance(v, self.__class__): v = v.to(self).magnitude |