summaryrefslogtreecommitdiff
path: root/pint/quantity.py
diff options
context:
space:
mode:
Diffstat (limited to 'pint/quantity.py')
-rw-r--r--pint/quantity.py24
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