| |
| |
| |
|
|
| """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() |
|
|