Gnumed.timelinelib.calendar.time

Package Gnumed :: Package timelinelib :: Package calendar :: Module time |
[frames] | no frames]

# Source Code for Module Gnumed.timelinelib.calendar.time

     1  # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018  Rickard Lindberg, Roger Lindberg
     2  #
     3  # This file is part of Timeline.
     4  #
     5  # Timeline is free software: you can redistribute it and/or modify
     6  # it under the terms of the GNU General Public License as published by
     7  # the Free Software Foundation, either version 3 of the License, or
     8  # (at your option) any later version.
     9  #
    10  # Timeline is distributed in the hope that it will be useful,
    11  # but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13  # GNU General Public License for more details.
    14  #
    15  # You should have received a copy of the GNU General Public License
    16  # along with Timeline.  If not, see <http://www.gnu.org/licenses/>.
    17
    18
    19 -class ComparableValue(object):
    20
    21 -    def __init__(self, value):
    22          self._value = value
    23
    24      @property
    25 -    def value(self):
    26          return self._value
    27
    28 -    def __eq__(self, other):
    29          if isinstance(other, self.__class__):
    30              return self.value == other.value
    31          else:
    32              return NotImplemented
    33
    34 -    def __ne__(self, other):
    35          if isinstance(other, self.__class__):
    36              return self.value != other.value
    37          else:
    38              return NotImplemented
    39
    40 -    def __lt__(self, other):
    41          if isinstance(other, self.__class__):
    42              return self.value < other.value
    43          else:
    44              return NotImplemented
    45
    46 -    def __le__(self, other):
    47          if isinstance(other, self.__class__):
    48              return self.value <= other.value
    49          else:
    50              return NotImplemented
    51
    52 -    def __gt__(self, other):
    53          if isinstance(other, self.__class__):
    54              return self.value > other.value
    55          else:
    56              return NotImplemented
    57
    58 -    def __ge__(self, other):
    59          if isinstance(other, self.__class__):
    60              return self.value >= other.value
    61          else:
    62              return NotImplemented
    63
    64
    65 -class GenericTimeMixin(object):
    66
    67 -    def __radd__(self, other):
    68          return self + other
    69
    70 -    def to_str(self):
    71          return repr(self)
    72
    73
    74 -class GenericDeltaMixin(object):
    75
    76 -    def __rmul__(self, other):
    77          return self * other
    78
    79 -    def __neg__(self):
    80          return -1 * self
    81