From 7e1bc670fb757b4c4612825cbb33086bc70ed96c Mon Sep 17 00:00:00 2001 From: Jirka Date: Mon, 31 Oct 2022 13:50:38 +0100 Subject: [PATCH 01/13] add testing --- .github/workflows/ci-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-testing.yml b/.github/workflows/ci-testing.yml index a91a0515..4bf27b80 100644 --- a/.github/workflows/ci-testing.yml +++ b/.github/workflows/ci-testing.yml @@ -14,7 +14,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-22.04, macos-12, windows-2022] - python-version: [3.8] + python-version: ["3.7", "3.10"] requires: ['oldest', 'latest'] timeout-minutes: 35 From 1f71c65018d440fb2ee6b4bdb66b21c650df4498 Mon Sep 17 00:00:00 2001 From: Jirka Date: Mon, 31 Oct 2022 13:55:30 +0100 Subject: [PATCH 02/13] importlib-metadata --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0f0c3dd6..3719490d 100755 --- a/setup.py +++ b/setup.py @@ -42,7 +42,7 @@ def _load_py_module(fname, pkg="lightning_utilities"): keywords=["Utilities", "DevOps", "CI/CD"], python_requires=">=3.7", setup_requires=[], - install_requires=[], + install_requires=["importlib-metadata>=4.0.0; ; python_version < '3.8'"], extras_require={ "cli": requirements_cli, }, From 96c32359f4c65d5e6ead6fc89b53da9ea3fe6fb8 Mon Sep 17 00:00:00 2001 From: Jirka Date: Mon, 31 Oct 2022 13:55:48 +0100 Subject: [PATCH 03/13] 0.4.1 --- src/lightning_utilities/__about__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lightning_utilities/__about__.py b/src/lightning_utilities/__about__.py index 82e6dd30..f9d19519 100644 --- a/src/lightning_utilities/__about__.py +++ b/src/lightning_utilities/__about__.py @@ -1,6 +1,6 @@ import time -__version__ = "0.4.0" +__version__ = "0.4.1" __author__ = "Lightning AI et al." __author_email__ = "pytorch@lightning.ai" __license__ = "Apache-2.0" From dd74a3c6a7efb84d9e67e15fe752f85b13ca365c Mon Sep 17 00:00:00 2001 From: otaj Date: Mon, 31 Oct 2022 14:06:58 +0100 Subject: [PATCH 04/13] remove extra semicolon --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3719490d..52747ecd 100755 --- a/setup.py +++ b/setup.py @@ -42,7 +42,7 @@ def _load_py_module(fname, pkg="lightning_utilities"): keywords=["Utilities", "DevOps", "CI/CD"], python_requires=">=3.7", setup_requires=[], - install_requires=["importlib-metadata>=4.0.0; ; python_version < '3.8'"], + install_requires=["importlib-metadata>=4.0.0; python_version < '3.8'"], extras_require={ "cli": requirements_cli, }, From d43b6714e22b8f67683cbf60ff45ff5e79518592 Mon Sep 17 00:00:00 2001 From: Jirka Date: Mon, 31 Oct 2022 14:09:32 +0100 Subject: [PATCH 05/13] update --- requirements/base.txt | 1 + setup.py | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 requirements/base.txt diff --git a/requirements/base.txt b/requirements/base.txt new file mode 100644 index 00000000..be2d9f9b --- /dev/null +++ b/requirements/base.txt @@ -0,0 +1 @@ +importlib-metadata>=4.0.0; ; python_version < '3.8' diff --git a/setup.py b/setup.py index 3719490d..7c5e145a 100755 --- a/setup.py +++ b/setup.py @@ -1,5 +1,5 @@ #!/usr/bin/env python - +import glob import os from importlib.util import module_from_spec, spec_from_file_location @@ -19,8 +19,15 @@ def _load_py_module(fname, pkg="lightning_utilities"): about = _load_py_module("__about__.py") -with open(os.path.join(_PATH_REQUIRE, "cli.txt")) as fp: - requirements_cli = list(map(str, parse_requirements(fp.readline()))) +with open(os.path.join(_PATH_REQUIRE, "base.txt")) as fp: + requirements = list(map(str, parse_requirements(fp.readline()))) +requirements_extra = {} +for fpath in glob.glob(os.path.join(_PATH_REQUIRE, "*.txt")): + if os.path.basename(fpath) == "base.txt": + continue + name, _ = os.path.splitext(os.path.basename(fpath)) + with open(fpath) as fp: + requirements_extra[name] = list(map(str, parse_requirements(fp.readline()))) with open(os.path.join(_PATH_ROOT, "README.md")) as fp: readme = fp.read() @@ -42,10 +49,8 @@ def _load_py_module(fname, pkg="lightning_utilities"): keywords=["Utilities", "DevOps", "CI/CD"], python_requires=">=3.7", setup_requires=[], - install_requires=["importlib-metadata>=4.0.0; ; python_version < '3.8'"], - extras_require={ - "cli": requirements_cli, - }, + install_requires=requirements, + extras_require=requirements_extra, project_urls={ "Bug Tracker": "https://github.com/Lightning-AI/utilities/issues", "Documentation": "https://dev-toolbox.rtfd.io/en/latest/", # TODO: Update domain From ef76733b370a55ce924b7426cb716efb4a538348 Mon Sep 17 00:00:00 2001 From: otaj Date: Mon, 31 Oct 2022 14:10:50 +0100 Subject: [PATCH 06/13] try imports --- src/lightning_utilities/core/imports.py | 7 ++++++- tests/unittests/core/test_imports.py | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lightning_utilities/core/imports.py b/src/lightning_utilities/core/imports.py index c03d3706..39209bc3 100644 --- a/src/lightning_utilities/core/imports.py +++ b/src/lightning_utilities/core/imports.py @@ -4,7 +4,6 @@ import importlib import operator from functools import lru_cache -from importlib import metadata from importlib.util import find_spec from typing import Callable @@ -12,6 +11,12 @@ from packaging.requirements import Requirement from packaging.version import Version +try: + from importlib import metadata +except ImportError: + # Python < 3.8 + import importlib_metadata as metadata + @lru_cache() def package_available(package_name: str) -> bool: diff --git a/tests/unittests/core/test_imports.py b/tests/unittests/core/test_imports.py index 26c0b95b..4322ab97 100644 --- a/tests/unittests/core/test_imports.py +++ b/tests/unittests/core/test_imports.py @@ -1,6 +1,5 @@ import operator import re -from importlib.metadata import PackageNotFoundError import pytest @@ -11,6 +10,12 @@ RequirementCache, ) +try: + from importlib.metadata import PackageNotFoundError +except ImportError: + # Python < 3.8 + from importlib_metadata import PackageNotFoundError + def test_module_exists(): assert module_available("_pytest") From adde67c713ea90909cb624121b7b60a7b9e2d3b8 Mon Sep 17 00:00:00 2001 From: Jirka Date: Mon, 31 Oct 2022 14:13:56 +0100 Subject: [PATCH 07/13] readme --- setup.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/setup.py b/setup.py index 7c5e145a..cbae7960 100755 --- a/setup.py +++ b/setup.py @@ -19,8 +19,12 @@ def _load_py_module(fname, pkg="lightning_utilities"): about = _load_py_module("__about__.py") + +# load basic requirements with open(os.path.join(_PATH_REQUIRE, "base.txt")) as fp: requirements = list(map(str, parse_requirements(fp.readline()))) + +# make extras as automated loading requirements_extra = {} for fpath in glob.glob(os.path.join(_PATH_REQUIRE, "*.txt")): if os.path.basename(fpath) == "base.txt": @@ -28,6 +32,8 @@ def _load_py_module(fname, pkg="lightning_utilities"): name, _ = os.path.splitext(os.path.basename(fpath)) with open(fpath) as fp: requirements_extra[name] = list(map(str, parse_requirements(fp.readline()))) + +# loading readme as description with open(os.path.join(_PATH_ROOT, "README.md")) as fp: readme = fp.read() From c2fa55ea40f59587741c36cea10e3afc1a00cf14 Mon Sep 17 00:00:00 2001 From: Jirka Date: Mon, 31 Oct 2022 14:15:38 +0100 Subject: [PATCH 08/13] ; --- requirements/base.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/base.txt b/requirements/base.txt index be2d9f9b..94a71356 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1 +1 @@ -importlib-metadata>=4.0.0; ; python_version < '3.8' +importlib-metadata>=4.0.0; python_version < '3.8' From f3614d47979f5836a243f4090af40ea36f4357d8 Mon Sep 17 00:00:00 2001 From: Jirka Date: Mon, 31 Oct 2022 14:27:16 +0100 Subject: [PATCH 09/13] test --- requirements/test.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements/test.txt b/requirements/test.txt index 36f35a38..5ff393f1 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ coverage>=5.0 codecov>=2.1 -pytest>=6.0 -pytest-cov -pytest-timeout +pytest>=7.0.0 +pytest-cov>=3.0.0 +pytest-timeout>=2.0.0 From 981fba90bff97bcac54b3f128ceeeb2c5d07aa73 Mon Sep 17 00:00:00 2001 From: Jirka Date: Mon, 31 Oct 2022 14:29:41 +0100 Subject: [PATCH 10/13] test --- requirements/test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/test.txt b/requirements/test.txt index 5ff393f1..944575e0 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,4 +1,4 @@ -coverage>=5.0 +coverage>=6.0 codecov>=2.1 pytest>=7.0.0 pytest-cov>=3.0.0 From 33e134cd6b39873b3c87a99f00e3843871426e04 Mon Sep 17 00:00:00 2001 From: Jirka Date: Mon, 31 Oct 2022 14:34:48 +0100 Subject: [PATCH 11/13] mypy --- src/lightning_utilities/core/imports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lightning_utilities/core/imports.py b/src/lightning_utilities/core/imports.py index 39209bc3..6c242cb8 100644 --- a/src/lightning_utilities/core/imports.py +++ b/src/lightning_utilities/core/imports.py @@ -15,7 +15,7 @@ from importlib import metadata except ImportError: # Python < 3.8 - import importlib_metadata as metadata + import importlib_metadata as metadata # type: ignore @lru_cache() From eeddf1b9c4b68645687affd84244e061fc7f0037 Mon Sep 17 00:00:00 2001 From: otaj Date: Mon, 31 Oct 2022 15:29:49 +0100 Subject: [PATCH 12/13] apply suggestions --- requirements/test.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements/test.txt b/requirements/test.txt index 944575e0..e26c3268 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ -coverage>=6.0 +coverage==6.0 codecov>=2.1 -pytest>=7.0.0 -pytest-cov>=3.0.0 -pytest-timeout>=2.0.0 +pytest==7.0.0 +pytest-cov==3.0.0 +pytest-timeout==2.0.0 From 82cdf97db0cfa6349a74e5342805d4e931fc8128 Mon Sep 17 00:00:00 2001 From: Jirka Borovec Date: Mon, 31 Oct 2022 16:38:01 +0100 Subject: [PATCH 13/13] latest --- requirements/test.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements/test.txt b/requirements/test.txt index e26c3268..459e1d1a 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ -coverage==6.0 +coverage==6.5.0 codecov>=2.1 -pytest==7.0.0 -pytest-cov==3.0.0 -pytest-timeout==2.0.0 +pytest==7.2.0 +pytest-cov==4.0.0 +pytest-timeout==2.1.0