From a74e35795c0bb0207c9a30173c79b4d7f6cb7e55 Mon Sep 17 00:00:00 2001
From: Jeffery To <jeffery.to@gmail.com>
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.
-- 
GitLab