/usr/lib/python2.7/dist-packages/pint/converters.py is in python-pint 0.7.2-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | # -*- coding: utf-8 -*-
"""
pint.converters
~~~~~~~~~
Functions and classes related to unit conversions.
:copyright: 2016 by Pint Authors, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
"""
from __future__ import (division, unicode_literals, print_function,
absolute_import)
class Converter(object):
"""Base class for value converters.
"""
is_multiplicative = True
def to_reference(self, value, inplace=False):
return value
def from_reference(self, value, inplace=False):
return value
class ScaleConverter(Converter):
"""A linear transformation
"""
is_multiplicative = True
def __init__(self, scale):
self.scale = scale
def to_reference(self, value, inplace=False):
if inplace:
value *= self.scale
else:
value = value * self.scale
return value
def from_reference(self, value, inplace=False):
if inplace:
value /= self.scale
else:
value = value / self.scale
return value
class OffsetConverter(Converter):
"""An affine transformation
"""
def __init__(self, scale, offset):
self.scale = scale
self.offset = offset
@property
def is_multiplicative(self):
return self.offset == 0
def to_reference(self, value, inplace=False):
if inplace:
value *= self.scale
value += self.offset
else:
value = value * self.scale + self.offset
return value
def from_reference(self, value, inplace=False):
if inplace:
value -= self.offset
value /= self.scale
else:
value = (value - self.offset) / self.scale
return value
|