Skip to content

Commit debf014

Browse files
committed
Remove references to pkg_resources
1 parent 5ebf9a6 commit debf014

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

devtools/gearbox/quickstart/command.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
from __future__ import print_function
22

33
import re
4-
import pkg_resources
54
import os
65
import shutil
76
import sys
87
import glob
8+
import importlib.metadata
9+
import importlib.util
10+
911

1012
from gearbox.template import GearBoxTemplate
1113
from gearbox.command import Command
@@ -147,17 +149,16 @@ def take_action(self, opts):
147149

148150
opts.database = opts.sqlalchemy or opts.ming
149151

150-
opts.name = pkg_resources.safe_name(opts.name)
152+
opts.name = safe_name(opts.name)
151153
opts.project = opts.name
152154

153-
env = pkg_resources.Environment()
154-
if opts.name.lower() in env:
155-
print('The name "%s" is already in use by' % opts.name)
156-
for dist in env[opts.name]:
157-
print(dist)
158-
return
155+
try:
156+
importlib.metadata.metadata(opts.name)
157+
except importlib.metadata.PackageNotFoundError:
158+
pass
159+
else:
160+
print('The name "%s" is already in use' % opts.name)
159161

160-
import importlib.util
161162
try:
162163
if importlib.util.find_spec(opts.package):
163164
print('The package name "%s" is already in use'
@@ -265,3 +266,11 @@ def overwrite_templates(template_type):
265266
# remove existing migrations directory
266267
package_migrations_dir = os.path.abspath('migration')
267268
shutil.rmtree(package_migrations_dir, ignore_errors=True)
269+
270+
271+
def safe_name(name: str) -> str:
272+
"""Convert an arbitrary string to a standard distribution name
273+
274+
from setuptools.pkg_resources.safe_name
275+
"""
276+
return re.sub('[^A-Za-z0-9.]+', '-', name)

devtools/tests/test_quickstart.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import subprocess
44
import sys
55
import site
6-
import pkg_resources
76
import unittest
87

98
from webtest import TestApp
@@ -125,9 +124,6 @@ def setUpClass(cls):
125124
# so we can load app in tests which are not executed inside
126125
# the newly created virtualenv.
127126
site.addsitedir(site_packages)
128-
cls.past_working_set_state = pkg_resources.working_set.__getstate__()
129-
pkg_resources.working_set.add_entry(site_packages)
130-
pkg_resources.working_set.add_entry(cls.proj_dir)
131127

132128
def setUp(self):
133129
os.chdir(self.proj_dir)
@@ -150,7 +146,6 @@ def tearDownClass(cls):
150146
if not hasattr(cls, 'past_working_set_state'):
151147
return
152148

153-
pkg_resources.working_set.__setstate__(cls.past_working_set_state)
154149
cls.exit_virtualenv()
155150

156151
os.chdir(cls.base_dir)

0 commit comments

Comments
 (0)