Skip to content

Commit 1a3240e

Browse files
Merge pull request #213 from fschulze/maurits-safe-name
Fix ModuleNotFoundError with setuptools 80.2.0 or higher.
2 parents 1b8e7f2 + e598d8c commit 1a3240e

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

CHANGES.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ Changelog
55
2.0.3 (unreleased)
66
------------------
77

8-
- Nothing changed yet.
8+
- Fix ``ModuleNotFoundError`` when trying to import ``safe_name`` from ``setuptools`` 80.2.0 or higher.
9+
[maurits]
910

1011

1112
2.0.2 (2024-04-24)

src/mr/developer/extension.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from mr.developer.common import memoize, WorkingCopies, Config, get_workingcopytypes
2-
from setuptools.package_index import safe_name
32
import logging
43
import os
54
import re
@@ -11,6 +10,17 @@
1110
logger = logging.getLogger("mr.developer")
1211

1312

13+
def safe_name(name: str) -> str:
14+
"""Convert an arbitrary string to a standard distribution name
15+
16+
Any runs of non-alphanumeric/. characters are replaced with a single '-'.
17+
18+
This is copied from pkg_resources.safe_name.
19+
(formerly setuptools.package_index.safe_name)
20+
"""
21+
return re.sub('[^A-Za-z0-9.]+', '-', name)
22+
23+
1424
class Source(dict):
1525
def exists(self):
1626
return os.path.exists(self['path'])

0 commit comments

Comments
 (0)