diff --git a/ipydeps/utils.py b/ipydeps/utils.py index 7d1d3b1..4ae38e4 100644 --- a/ipydeps/utils.py +++ b/ipydeps/utils.py @@ -22,10 +22,13 @@ def normalize_package_names(packages: Set) -> Set: packages = {p.lower() for p in packages} return packages -def get_stdlib_packages(version=sys.version_info.major) -> Set: +def get_stdlib_packages(version=sys.version_info.major, minor=sys.version_info.minor) -> Set: stdlib_list = '' if version == 3: + if minor >= 10 and hasattr(sys, "stdlib_module_names"): + stdlib_list = sys.stdlib_module_names # pylint: disable=no-member + return normalize_package_names(set(stdlib_list)) stdlib_list = pkgutil.get_data(__name__, 'data/libs3.txt') elif version == 2: stdlib_list = pkgutil.get_data(__name__, 'data/libs2.txt') diff --git a/tests/test_stdlib.py b/tests/test_stdlib.py index 75ef4a9..fcfd195 100644 --- a/tests/test_stdlib.py +++ b/tests/test_stdlib.py @@ -1,6 +1,7 @@ # vim: expandtab tabstop=4 shiftwidth=4 import pytest +import sys from ipydeps.ipydeps import subtract_stdlib from ipydeps.utils import get_stdlib_packages @@ -11,7 +12,10 @@ def test_stdlib_py2(): def test_stdlib_py3(): packages = get_stdlib_packages(version=3) - assert len(packages) == 203 + if sys.version_info.minor >= 10: + assert len(packages) >= 303 + else: + assert len(packages) == 203 def test_without_stdlib_packages(): stdlib_packages = get_stdlib_packages()