| # This file is dual licensed under the terms of the Apache License, Version | |
| # 2.0, and the BSD License. See the LICENSE file in the root of this repository | |
| # for complete details. | |
| from __future__ import absolute_import, division, print_function | |
| class InfinityType(object): | |
| def __repr__(self): | |
| # type: () -> str | |
| return "Infinity" | |
| def __hash__(self): | |
| # type: () -> int | |
| return hash(repr(self)) | |
| def __lt__(self, other): | |
| # type: (object) -> bool | |
| return False | |
| def __le__(self, other): | |
| # type: (object) -> bool | |
| return False | |
| def __eq__(self, other): | |
| # type: (object) -> bool | |
| return isinstance(other, self.__class__) | |
| def __ne__(self, other): | |
| # type: (object) -> bool | |
| return not isinstance(other, self.__class__) | |
| def __gt__(self, other): | |
| # type: (object) -> bool | |
| return True | |
| def __ge__(self, other): | |
| # type: (object) -> bool | |
| return True | |
| def __neg__(self): | |
| # type: (object) -> NegativeInfinityType | |
| return NegativeInfinity | |
| Infinity = InfinityType() | |
| class NegativeInfinityType(object): | |
| def __repr__(self): | |
| # type: () -> str | |
| return "-Infinity" | |
| def __hash__(self): | |
| # type: () -> int | |
| return hash(repr(self)) | |
| def __lt__(self, other): | |
| # type: (object) -> bool | |
| return True | |
| def __le__(self, other): | |
| # type: (object) -> bool | |
| return True | |
| def __eq__(self, other): | |
| # type: (object) -> bool | |
| return isinstance(other, self.__class__) | |
| def __ne__(self, other): | |
| # type: (object) -> bool | |
| return not isinstance(other, self.__class__) | |
| def __gt__(self, other): | |
| # type: (object) -> bool | |
| return False | |
| def __ge__(self, other): | |
| # type: (object) -> bool | |
| return False | |
| def __neg__(self): | |
| # type: (object) -> InfinityType | |
| return Infinity | |
| NegativeInfinity = NegativeInfinityType() | |