| # 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. |
| |
| |
| class InfinityType: |
| def __repr__(self) -> str: |
| return "Infinity" |
| |
| def __hash__(self) -> int: |
| return hash(repr(self)) |
| |
| def __lt__(self, other: object) -> bool: |
| return False |
| |
| def __le__(self, other: object) -> bool: |
| return False |
| |
| def __eq__(self, other: object) -> bool: |
| return isinstance(other, self.__class__) |
| |
| def __ne__(self, other: object) -> bool: |
| return not isinstance(other, self.__class__) |
| |
| def __gt__(self, other: object) -> bool: |
| return True |
| |
| def __ge__(self, other: object) -> bool: |
| return True |
| |
| def __neg__(self: object) -> "NegativeInfinityType": |
| return NegativeInfinity |
| |
| |
| Infinity = InfinityType() |
| |
| |
| class NegativeInfinityType: |
| def __repr__(self) -> str: |
| return "-Infinity" |
| |
| def __hash__(self) -> int: |
| return hash(repr(self)) |
| |
| def __lt__(self, other: object) -> bool: |
| return True |
| |
| def __le__(self, other: object) -> bool: |
| return True |
| |
| def __eq__(self, other: object) -> bool: |
| return isinstance(other, self.__class__) |
| |
| def __ne__(self, other: object) -> bool: |
| return not isinstance(other, self.__class__) |
| |
| def __gt__(self, other: object) -> bool: |
| return False |
| |
| def __ge__(self, other: object) -> bool: |
| return False |
| |
| def __neg__(self: object) -> InfinityType: |
| return Infinity |
| |
| |
| NegativeInfinity = NegativeInfinityType() |