From cbe61bb9848e6bd0396f52692dc7dc2b99bdb053 Mon Sep 17 00:00:00 2001 From: Patrick Kanzler Date: Fri, 21 Jul 2023 22:50:50 +0200 Subject: [PATCH] use importlib_resources --- doc/requirements.txt | 1 + setup.cfg | 1 + src/escpos/capabilities.py | 11 ++++++++--- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/doc/requirements.txt b/doc/requirements.txt index 7e57f2a..d212805 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -9,3 +9,4 @@ docutils>=0.12 sphinxcontrib-spelling>=7.2.0 python-barcode>=0.11.0,<1 importlib-metadata +importlib_resources diff --git a/setup.cfg b/setup.cfg index 4d663ec..1722cbf 100644 --- a/setup.cfg +++ b/setup.cfg @@ -48,6 +48,7 @@ install_requires = argparse argcomplete future + importlib_resources setup_requires = setuptools_scm tests_require = jaconv diff --git a/src/escpos/capabilities.py b/src/escpos/capabilities.py index 4b31de8..7294717 100644 --- a/src/escpos/capabilities.py +++ b/src/escpos/capabilities.py @@ -1,13 +1,15 @@ import re from os import environ, path -import pkg_resources +import atexit import pickle import logging import time +import importlib_resources import six import yaml +from contextlib import ExitStack from tempfile import mkdtemp import platform @@ -20,10 +22,13 @@ pickle_dir = environ.get("ESCPOS_CAPABILITIES_PICKLE_DIR", mkdtemp()) pickle_path = path.join( pickle_dir, "{v}.capabilities.pickle".format(v=platform.python_version()) ) -# get a temporary file from pkg_resources if no file is specified in env +# get a temporary file from importlib_resources if no file is specified in env +file_manager = ExitStack() +atexit.register(file_manager.close) +ref = importlib_resources.files(__name__) / "capabilities.json" capabilities_path = environ.get( "ESCPOS_CAPABILITIES_FILE", - pkg_resources.resource_filename(__name__, "capabilities.json"), + file_manager.enter_context(importlib_resources.as_file(ref)), ) # Load external printer database