Skip to content

Commit f38b5bc

Browse files
committed
Avoid import pkg_resources
1 parent c122320 commit f38b5bc

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

Adafruit_IO/client.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,40 @@
2222
from time import struct_time
2323
import json
2424
import platform
25-
import pkg_resources
25+
try:
26+
from importlib.metadata import version as pkg_version # Python 3.8+
27+
except ImportError:
28+
try:
29+
from importlib_metadata import version as pkg_version # Backport for <3.8
30+
except ImportError:
31+
pkg_version = None
2632
import re
2733
from urllib.parse import urlparse
2834
from urllib.parse import parse_qs
2935
# import logging
3036

3137
import requests
3238

39+
3340
from .errors import RequestError, ThrottlingError
3441
from .model import Data, Feed, Group, Dashboard, Block, Layout
3542

3643
DEFAULT_PAGE_LIMIT = 100
3744

38-
# set outgoing version, pulled from setup.py
39-
version = pkg_resources.require("Adafruit_IO")[0].version
45+
# set outgoing version, pulled from setup.py or package metadata
46+
_package_name = "Adafruit_IO"
47+
_version = None
48+
if pkg_version:
49+
try:
50+
_version = pkg_version(_package_name)
51+
except Exception:
52+
pass
53+
if not _version:
54+
try:
55+
_version = pkg_resources.require(_package_name)[0].version
56+
except Exception:
57+
_version = "unknown"
58+
version = _version
4059
default_headers = {
4160
'User-Agent': 'AdafruitIO-Python/{0} ({1}, {2} {3})'.format(version,
4261
platform.platform(),

0 commit comments

Comments
 (0)