Skip to content

Commit 149f268

Browse files
authored
Merge pull request #107 from ethancedwards8/remove-pkg_resources
migrate from pkg_resources to importlib
2 parents 36f6ac1 + 06402ed commit 149f268

4 files changed

Lines changed: 35 additions & 24 deletions

File tree

compare50/__init__.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,11 @@
11
def _set_version():
2-
"""Set check50 __version__"""
2+
"""Set compare50 __version__"""
33
global __version__
4-
from pkg_resources import get_distribution, DistributionNotFound
5-
import os
6-
# https://stackoverflow.com/questions/17583443/what-is-the-correct-way-to-share-package-version-with-setup-py-and-the-package
4+
from importlib.metadata import version
75
try:
8-
dist = get_distribution("compare50")
9-
# Normalize path for cross-OS compatibility.
10-
dist_loc = os.path.normcase(dist.location)
11-
here = os.path.normcase(__file__)
12-
if not here.startswith(os.path.join(dist_loc, "compare50")):
13-
# This version is not installed, but another version is.
14-
raise DistributionNotFound
15-
except DistributionNotFound:
16-
__version__ = "locally installed, no version information available"
17-
else:
18-
__version__ = dist.version
6+
__version__ = version('compare50')
7+
except:
8+
__version__ = "version information not available"
199

2010

2111
# Encapsulated inside a function so their local variables/imports aren't seen by autocompleters

compare50/_renderer/_renderer.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
import glob
33
import os
44
import pathlib
5-
import pkg_resources
65
import shutil
6+
import importlib
7+
import atexit
8+
from contextlib import ExitStack
79

810
import attr
911
import jinja2
@@ -13,8 +15,19 @@
1315
from .. import _api
1416
from .._data import IdStore
1517

16-
STATIC = pathlib.Path(pkg_resources.resource_filename("compare50._renderer", "static"))
17-
TEMPLATES = pathlib.Path(pkg_resources.resource_filename("compare50._renderer", "templates"))
18+
file_manager = ExitStack()
19+
atexit.register(file_manager.close)
20+
21+
_static = importlib.resources.files('compare50._renderer') / 'static'
22+
_templates = importlib.resources.files('compare50._renderer') / 'templates'
23+
24+
path_static = file_manager.enter_context(
25+
importlib.resources.as_file(_static))
26+
path_templates = file_manager.enter_context(
27+
importlib.resources.as_file(_templates))
28+
29+
STATIC = pathlib.Path(path_static)
30+
TEMPLATES = pathlib.Path(path_templates)
1831

1932
@attr.s(slots=True)
2033
class Fragment:

compare50/passes.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
from pkg_resources import resource_filename
1+
import importlib
2+
import atexit
3+
from contextlib import ExitStack
24

35
from . import comparators, preprocessors
46
from ._data import Pass
@@ -44,5 +46,11 @@ class misspellings(Pass):
4446
preprocessors = [preprocessors.comments,
4547
preprocessors.normalize_case,
4648
preprocessors.words]
47-
comparator = comparators.Misspellings(resource_filename("compare50.comparators",
48-
"english_dictionary.txt"))
49+
50+
file_manager = ExitStack()
51+
atexit.register(file_manager.close)
52+
ref = importlib.resources.files('compare50.comparators') / 'english_dictionary.txt'
53+
path = file_manager.enter_context(
54+
importlib.resources.as_file(ref))
55+
56+
comparator = comparators.Misspellings(path)

setup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@
1212
license="GPLv3",
1313
description="This is compare50, with which you can compare files for similarities.",
1414
long_description="This is compare50, with which you can compare files for similarities.",
15-
install_requires=["attrs>=18,<21", "intervaltree>=3,<4", "lib50>=2,<4", "numpy>=1.15,<2", "pygments>=2.2,<3", "jinja2>=3,<4", "termcolor>=1.1.0,<2", "tqdm>=4.32,<5"],
15+
install_requires=["attrs>=18,<21", "intervaltree>=3,<4", "lib50>=2,<4", "numpy>=1.15,<2", "pygments>=2.2,<3", "jinja2>=3,<4", "termcolor>=1.1.0,<2", "tqdm>=4.32,<5", "importlib"],
1616
extras_require = {
1717
"develop": ["sphinx", "sphinx_rtd_theme", "sphinx-autobuild", "line_profiler"]
1818
},
1919
keywords=["compare", "compare50"],
2020
name="compare50",
21-
python_requires=">=3.5",
21+
python_requires=">=3.8",
2222
packages=find_packages(exclude=["tests"]),
2323
scripts=["bin/compare50"],
2424
url="https://github.com/cs50/compare50",
25-
version="1.2.6",
25+
version="1.2.7",
2626
include_package_data=True,
2727
)

0 commit comments

Comments
 (0)