| 123456789101112131415161718192021222324252627282930313233 |
- # 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.
- """Backward-compatibility shim for unpickling Version objects serialized before
- packaging 26.1.
- Old pickles reference ``packaging._structures.InfinityType`` and
- ``packaging._structures.NegativeInfinityType``. This module provides minimal
- stand-in classes so that ``pickle.loads()`` can resolve those references.
- The deserialized objects are not used for comparisons — ``Version.__setstate__``
- discards the stale ``_key`` cache and recomputes it from the core version fields.
- """
- from __future__ import annotations
- class InfinityType:
- """Stand-in for the removed ``InfinityType`` used in old comparison keys."""
- def __repr__(self) -> str:
- return "Infinity"
- class NegativeInfinityType:
- """Stand-in for the removed ``NegativeInfinityType`` used in old comparison keys."""
- def __repr__(self) -> str:
- return "-Infinity"
- Infinity = InfinityType()
- NegativeInfinity = NegativeInfinityType()
|