From a74e35795c0bb0207c9a30173c79b4d7f6cb7e55 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Wed, 17 Jun 2020 21:21:14 +0800 Subject: [PATCH] Use the built-in importlib.metadata library in Python 3.8+ (#36225) importlib_metadata is a backport of this library for Python 3.7 and older. --- homeassistant/package_constraints.txt | 2 +- homeassistant/util/package.py | 12 +++++++++++- requirements_all.txt | 2 +- setup.py | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/homeassistant/package_constraints.txt b/homeassistant/package_constraints.txt index c2875362a50..9651be441a1 100644 --- a/homeassistant/package_constraints.txt +++ b/homeassistant/package_constraints.txt @@ -13,7 +13,7 @@ defusedxml==0.6.0 distro==1.5.0 hass-nabucasa==0.34.6 home-assistant-frontend==20200613.0 -importlib-metadata==1.6.0 +importlib-metadata==1.6.0;python_version<'3.8' jinja2>=2.11.1 netdisco==2.7.0 pip>=8.0.3 diff --git a/homeassistant/util/package.py b/homeassistant/util/package.py index 9a5ae82d4a2..a665fd78914 100644 --- a/homeassistant/util/package.py +++ b/homeassistant/util/package.py @@ -8,9 +8,19 @@ import sys from typing import Optional from urllib.parse import urlparse -from importlib_metadata import PackageNotFoundError, version import pkg_resources +if sys.version_info[:2] >= (3, 8): + from importlib.metadata import ( # pylint: disable=no-name-in-module,import-error + PackageNotFoundError, + version, + ) +else: + from importlib_metadata import ( # pylint: disable=import-error + PackageNotFoundError, + version, + ) + _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 4e52926dc55..22fa858c9f2 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -6,7 +6,7 @@ attrs==19.3.0 bcrypt==3.1.7 certifi>=2020.4.5.1 ciso8601==2.1.3 -importlib-metadata==1.6.0 +importlib-metadata==1.6.0;python_version<'3.8' jinja2>=2.11.1 PyJWT==1.7.1 cryptography==2.9.2 diff --git a/setup.py b/setup.py index 1473fd1f5f9..38ba14290e8 100755 --- a/setup.py +++ b/setup.py @@ -39,7 +39,7 @@ REQUIRES = [ "bcrypt==3.1.7", "certifi>=2020.4.5.1", "ciso8601==2.1.3", - "importlib-metadata==1.6.0", + "importlib-metadata==1.6.0;python_version<'3.8'", "jinja2>=2.11.1", "PyJWT==1.7.1", # PyJWT has loose dependency. We want the latest one.