Skip to content

Commit 8d86b24

Browse files
authored
fix: resolve pkg-resources deprecation issue (#21538)
1 parent 215d7d9 commit 8d86b24

File tree

8 files changed

+29
-12
lines changed

8 files changed

+29
-12
lines changed

.github/workflows/ci-tests-fabric.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ jobs:
130130
uv pip install ".[${EXTRA_PREFIX}test,${EXTRA_PREFIX}strategies]" \
131131
--upgrade \
132132
--find-links="${TORCH_URL}"
133+
# ensure pkg_resources is available for older python versions & packages like onnxruntime that require it
134+
uv pip install "setuptools<80.10.3"
133135
uv pip list
134136
135137
- name: Adjust tests

.github/workflows/ci-tests-pytorch.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ jobs:
133133
--upgrade \
134134
--find-links="${TORCH_URL}" \
135135
--find-links="https://download.pytorch.org/whl/torch-tensorrt"
136+
# ensure pkg_resources is available for older python versions & packages like onnxruntime that require it
137+
uv pip install "setuptools<80.10.3"
136138
uv pip list
137139
138140
- name: Drop LAI from extensions

.lightning/workflows/fabric.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@ run: |
123123
extra=$(python -c "print({'lightning': 'fabric-'}.get('${PACKAGE_NAME}', ''))")
124124
uv pip install ".[${extra}dev]" --upgrade
125125
126+
# ensure pkg_resources is available for older python versions & packages like onnxruntime that require it
127+
uv pip install "setuptools<80.10.3"
128+
126129
python requirements/collect_env_details.py
127130
python -c "import torch ; mgpu = torch.cuda.device_count() ; assert mgpu >= 2, f'GPU: {mgpu}'"
128131
python -c "import bitsandbytes"

.lightning/workflows/pytorch.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,9 @@ run: |
137137
uv pip uninstall pytorch-lightning
138138
fi
139139
140+
# ensure pkg_resources is available for older python versions & packages like onnxruntime that require it
141+
uv pip install "setuptools<80.10.3"
142+
140143
python requirements/collect_env_details.py
141144
python -c "import torch ; mgpu = torch.cuda.device_count() ; assert mgpu >= 2, f'GPU: {mgpu}'"
142145
python requirements/pytorch/check-avail-extras.py

requirements/collect_env_details.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import os
2121
import platform
2222
import sys
23+
from importlib.metadata import distributions
2324

24-
import pkg_resources
2525
import torch
2626

2727
sys.path += [os.path.abspath(".."), os.path.abspath("")]
@@ -52,11 +52,7 @@ def info_cuda() -> dict:
5252

5353
def info_packages() -> dict:
5454
"""Get name and version of all installed packages."""
55-
packages = {}
56-
for dist in pkg_resources.working_set:
57-
package = dist.as_requirement()
58-
packages[package.key] = package.specs[0][1]
59-
return packages
55+
return {dist.metadata["Name"]: dist.version for dist in distributions()}
6056

6157

6258
def nice_print(details: dict, level: int = 0) -> list:

requirements/pytorch/test.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ numpy >2.1.0, <2.4.2; python_version >= "3.12"
1515
onnx >1.12.0, <1.21.0
1616
onnxruntime >=1.12.0, <1.24.0
1717
onnxscript >= 0.1.0, < 0.6.0
18+
onnx-ir < 0.1.16
1819
psutil <7.3.0 # for `DeviceStatsMonitor`
1920
pandas >2.0, <2.4.0 # needed in benchmarks
2021
fastapi # for `ServableModuleValidator` # not setting version as re-defined in App

src/lightning_fabric/__setup__.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from types import ModuleType
66
from typing import Any
77

8-
from pkg_resources import parse_requirements
8+
from packaging.requirements import Requirement
99
from setuptools import find_packages
1010

1111
_PROJECT_ROOT = "."
@@ -42,8 +42,13 @@ def _prepare_extras() -> dict[str, Any]:
4242
for p in req_files
4343
if p.name not in ("docs.txt", "base.txt")
4444
}
45-
for req in parse_requirements(extras["strategies"]):
46-
extras[req.key] = [str(req)]
45+
for req_str in extras["strategies"]:
46+
# Strip comments before parsing
47+
req_str_clean = req_str.split("#")[0].strip()
48+
if not req_str_clean: # Skip empty lines
49+
continue
50+
req = Requirement(req_str_clean)
51+
extras[req.name.lower().replace("-", "_")] = [req_str]
4752
extras["all"] = extras["extra"] + extras["strategies"] + extras["examples"]
4853
extras["dev"] = extras["all"] + extras["test"]
4954
return extras

src/pytorch_lightning/__setup__.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from types import ModuleType
66
from typing import Any
77

8-
from pkg_resources import parse_requirements
8+
from packaging.requirements import Requirement
99
from setuptools import find_packages
1010

1111
_PROJECT_ROOT = "."
@@ -42,8 +42,13 @@ def _prepare_extras() -> dict[str, Any]:
4242
for p in req_files
4343
if p.name not in ("docs.txt", "base.txt")
4444
}
45-
for req in parse_requirements(extras["strategies"]):
46-
extras[req.key] = [str(req)]
45+
for req_str in extras["strategies"]:
46+
# Strip comments before parsing
47+
req_str_clean = req_str.split("#")[0].strip()
48+
if not req_str_clean: # Skip empty lines
49+
continue
50+
req = Requirement(req_str_clean)
51+
extras[req.name.lower().replace("-", "_")] = [req_str]
4752
extras["all"] = extras["extra"] + extras["strategies"] + extras["examples"]
4853
extras["dev"] = extras["all"] + extras["test"] # + extras['docs']
4954
return extras

0 commit comments

Comments
 (0)