Skip to content

Commit a384d0c

Browse files
committed
ref: migrate from pkg_resources to importlib.resources
1 parent e9d7729 commit a384d0c

5 files changed

Lines changed: 42 additions & 22 deletions

File tree

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
0.17.7
22
- fix: invalid properties used in .ui files
3+
- ref: migrate from pkg_resources to importlib.resources
34
- setup: bump dclab from 0.62.11 to 0.67.0
45
0.17.6
56
- docs: properly employ license GPL-3.0-or-later

dckit/__main__.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
def main(splash=True):
2-
import os
3-
import pkg_resources
2+
import importlib.resources
43
import sys
54
import time
65

76
from PyQt5.QtWidgets import QApplication
87
from PyQt5.QtCore import QEventLoop
98

109
app = QApplication(sys.argv)
11-
imdir = pkg_resources.resource_filename("dckit", "img")
1210

1311
if splash:
1412
from PyQt5.QtWidgets import QSplashScreen
1513
from PyQt5.QtGui import QPixmap
16-
splash_path = os.path.join(imdir, "splash.png")
17-
splash_pix = QPixmap(splash_path)
14+
15+
ref = importlib.resources.files("dckit.img") / "splash.png"
16+
with importlib.resources.as_file(ref) as splash_path:
17+
splash_pix = QPixmap(str(splash_path))
18+
1819
splash = QSplashScreen(splash_pix)
1920
splash.setMask(splash_pix.mask())
2021
splash.show()
@@ -26,8 +27,9 @@ def main(splash=True):
2627
from .main import DCKit
2728

2829
# Set Application Icon
29-
icon_path = os.path.join(imdir, "icon.png")
30-
app.setWindowIcon(QtGui.QIcon(icon_path))
30+
ref = importlib.resources.files("dckit.img") / "icon.png"
31+
with importlib.resources.as_file(ref) as icon_path:
32+
app.setWindowIcon(QtGui.QIcon(str(icon_path)))
3133

3234
# Use dots as decimal separators
3335
QtCore.QLocale.setDefault(QtCore.QLocale(QtCore.QLocale.C))

dckit/dlg_icheck.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import functools
55
import numbers
66

7-
import pkg_resources
7+
import importlib.resources
88
import warnings
99

1010
import dclab
@@ -28,8 +28,10 @@ class IntegrityCheckDialog(QtWidgets.QDialog):
2828

2929
def __init__(self, parent, path, *args, **kwargs):
3030
QtWidgets.QDialog.__init__(self, parent, *args, **kwargs)
31-
path_ui = pkg_resources.resource_filename("dckit", "dlg_icheck.ui")
32-
uic.loadUi(path_ui, self)
31+
ref = importlib.resources.files(
32+
"dckit") / "dlg_icheck.ui"
33+
with importlib.resources.as_file(ref) as path_ui:
34+
uic.loadUi(path_ui, self)
3335

3436
self.path = path
3537
#: metadata (remember across instances)
@@ -253,8 +255,11 @@ def on_logs(self):
253255
return
254256
dlg = QtWidgets.QDialog()
255257
dlg.setWindowTitle("{}: {}".format(self.path.name, log))
256-
path_ui = pkg_resources.resource_filename("dckit", "dlg_log.ui")
257-
uic.loadUi(path_ui, dlg)
258+
ref = importlib.resources.files(
259+
"dckit") / "dlg_log.ui"
260+
with importlib.resources.as_file(ref) as path_ui:
261+
uic.loadUi(path_ui, dlg)
262+
258263
dlg.label.setText(log)
259264
logs = meta_tool.get_rtdc_logs(self.path)
260265
text = "\n".join(logs[log])

dckit/main.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import hashlib
22
import pathlib
3-
import pkg_resources
3+
import importlib.resources
44
import signal
55
import sys
66
import traceback
@@ -32,8 +32,11 @@
3232
class DCKit(QtWidgets.QMainWindow):
3333
def __init__(self):
3434
super(DCKit, self).__init__()
35-
path_ui = pkg_resources.resource_filename("dckit", "main.ui")
36-
uic.loadUi(path_ui, self)
35+
ref = importlib.resources.files(
36+
"dckit") / "main.ui"
37+
with importlib.resources.as_file(ref) as path_ui:
38+
uic.loadUi(path_ui, self)
39+
3740
self.setWindowTitle(f"DCKit {version}")
3841
# update check
3942
self._update_thread = None
@@ -345,8 +348,11 @@ def on_repack(self):
345348
if self.checkBox_repack.isChecked():
346349
# ask the user whether he knows what he is doing
347350
dlg = QtWidgets.QDialog()
348-
path_ui = pkg_resources.resource_filename("dckit", "dlg_repack.ui")
349-
uic.loadUi(path_ui, dlg)
351+
ref = importlib.resources.files(
352+
"dckit") / "dlg_repack.ui"
353+
with importlib.resources.as_file(ref) as path_ui:
354+
uic.loadUi(path_ui, dlg)
355+
350356
ret = dlg.exec_()
351357
if ret == QtWidgets.QDialog.Rejected:
352358
self.checkBox_repack.setChecked(False)
@@ -434,8 +440,11 @@ def on_task_join(self):
434440
"""Join multiple RT-DC measurements"""
435441
# show a dialog with sample name
436442
dlg = QtWidgets.QDialog()
437-
path_ui = pkg_resources.resource_filename("dckit", "dlg_join.ui")
438-
uic.loadUi(path_ui, dlg)
443+
ref = importlib.resources.files(
444+
"dckit") / "dlg_join.ui"
445+
with importlib.resources.as_file(ref) as path_ui:
446+
uic.loadUi(path_ui, dlg)
447+
439448
dlg.lineEdit.setText(self.get_metadata(0)["experiment"]["sample"])
440449
ret = dlg.exec_()
441450
if ret == QtWidgets.QDialog.Accepted:

dckit/preferences.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import pkg_resources
1+
import importlib.resources
22

33
import dclab
44
from dclab.rtdc_dataset import feat_temp
@@ -14,8 +14,11 @@ class Preferences(QtWidgets.QDialog):
1414

1515
def __init__(self, parent, *args, **kwargs):
1616
QtWidgets.QWidget.__init__(self, parent=parent, *args, **kwargs)
17-
path_ui = pkg_resources.resource_filename("dckit", "preferences.ui")
18-
uic.loadUi(path_ui, self)
17+
ref = importlib.resources.files(
18+
"dckit") / "preferences.ui"
19+
with importlib.resources.as_file(ref) as path_ui:
20+
uic.loadUi(path_ui, self)
21+
1922
self.settings = QtCore.QSettings()
2023
self.parent = parent
2124

0 commit comments

Comments
 (0)