From 5bf7b281966a3329cadd3abc03a2f40b5f01280b Mon Sep 17 00:00:00 2001 From: Hirotaka Wakabayashi Date: Thu, 16 Jul 2026 14:34:43 +0900 Subject: [PATCH 1/9] Migrates Pipenv from setuptools. --- Pipfile | 30 ------------------------------ pyproject.toml | 31 +++++++++++++++++++++++++++++++ setup.py | 24 ++---------------------- 3 files changed, 33 insertions(+), 52 deletions(-) delete mode 100644 Pipfile diff --git a/Pipfile b/Pipfile deleted file mode 100644 index 7bb7e7c..0000000 --- a/Pipfile +++ /dev/null @@ -1,30 +0,0 @@ -[[source]] -name = "pypi" -url = "https://pypi.org/simple" -verify_ssl = true - -[dev-packages] -coverage = "*" -flake8 = "*" -flake8-docstrings = "*" -pep8-naming = "*" -pycodestyle = "*" -mccabe = "*" -sphinx-autoapi = "*" -sphinx-intl = "*" -sphinx-rtd-theme = "*" -sphinx = "*" -watchdog = "*" -wheel = "*" -twine = "*" -pylint = "*" -astroid = "*" -mypy = "*" -"collective.checkdocs" = "*" -tomli = "*" -dill = "*" - -[packages] -requests = "*" -urllib3 = "*" -setuptools = "*" diff --git a/pyproject.toml b/pyproject.toml index 354d21a..d97f458 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,6 +29,34 @@ classifiers = [ 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.9', ] +dependencies = [ + "requests", + "urllib3", + "setuptools", +] + +[project.optional-dependencies] +dev = [ + "coverage", + "flake8", + "flake8-docstrings", + "pep8-naming", + "pycodestyle", + "mccabe", + "sphinx-autoapi", + "sphinx-intl", + "sphinx-rtd-theme", + "sphinx", + "watchdog", + "wheel", + "twine", + "pylint", + "astroid", + "mypy", + "collective.checkdocs", + "tomli", + "dill", +] [project.urls] Homepage = "https://github.com/yahoojapan/k2hr3client_python" @@ -47,6 +75,9 @@ include-package-data = true exclude = ["tests*"] where = ["src"] +[tool.setuptools.dynamic] +version = {attr = "k2hr3client.__version__"} + [tool.tox] legacy_tox_ini = """ [tox] diff --git a/setup.py b/setup.py index 17cfe50..9130726 100644 --- a/setup.py +++ b/setup.py @@ -52,28 +52,8 @@ # Always prefer setuptools over distutils from setuptools import setup - -def get_version(): - """Returns the package version from __ini__.py.""" - from pathlib import Path - from os import path, sep - import re - - here = path.abspath(path.dirname(__file__)) - init_py = Path(sep.join([here, 'src', 'k2hr3client', '__init__.py'])).resolve() - - with init_py.open() as fp: - for line in fp: - version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", - line.strip(), re.M) - if version_match: - return version_match.group(1) - raise RuntimeError('version expected, but no version found.') - - -setup( - version=get_version(), -) +# All configuration is now in pyproject.toml +setup() # # Local variables: From f76d4b474ee26ac79086d99084520e3fae67b366 Mon Sep 17 00:00:00 2001 From: Hirotaka Wakabayashi Date: Thu, 16 Jul 2026 14:39:26 +0900 Subject: [PATCH 2/9] Migrates version number to pyproject.toml. --- pyproject.toml | 5 +---- src/k2hr3client/__init__.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d97f458..cd5a9d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "k2hr3client" -dynamic = ["version"] +version = "1.1.3" requires-python = ">=3.9" authors = [ {name = "Hirotaka Wakabayashi", email = "hiwakaba@lycorp.co.jp"}, @@ -75,9 +75,6 @@ include-package-data = true exclude = ["tests*"] where = ["src"] -[tool.setuptools.dynamic] -version = {attr = "k2hr3client.__version__"} - [tool.tox] legacy_tox_ini = """ [tox] diff --git a/src/k2hr3client/__init__.py b/src/k2hr3client/__init__.py index 129cfba..96a3134 100644 --- a/src/k2hr3client/__init__.py +++ b/src/k2hr3client/__init__.py @@ -22,7 +22,16 @@ """K2HR3 Python Client of Token API.""" __author__ = 'Hirotaka Wakabayashi ' -__version__ = '1.1.3' + +try: + from importlib.metadata import version, PackageNotFoundError +except ImportError: + from importlib_metadata import version, PackageNotFoundError + +try: + __version__ = version("k2hr3client") +except PackageNotFoundError: + __version__ = "unknown" import configparser import logging From 5d63704c82ebe01404b85e293813aa8e1f878cec Mon Sep 17 00:00:00 2001 From: Hirotaka Wakabayashi Date: Thu, 16 Jul 2026 14:49:00 +0900 Subject: [PATCH 3/9] Remove pipenv references. --- .github/workflows/python-package.yml | 12 ++++++------ Makefile | 8 +++----- README.rst | 1 - 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index d77f53d..4359bdc 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -58,17 +58,17 @@ jobs: - name: Install dependencies in GHA run: | python -m pip install --upgrade pip - pipenv install --deploy --dev + pip install -e ".[dev]" - name: Lint with pylint run: | - pipenv run flake8 src/k2hr3client - pipenv run mypy src/k2hr3client - pipenv run pylint src/k2hr3client - pipenv run python3 setup.py checkdocs + flake8 src/k2hr3client + mypy src/k2hr3client + pylint src/k2hr3client + python3 setup.py checkdocs shell: sh - name: Test with unittest run: | - pipenv run python3 -m unittest discover src + python3 -m unittest discover src shell: sh - name: Install dependencies for upload pypi package if: startsWith(github.ref, 'refs/tags') diff --git a/Makefile b/Makefile index 4c5aa04..293704c 100644 --- a/Makefile +++ b/Makefile @@ -49,11 +49,9 @@ BROWSER := python3 -c "$$BROWSER_PYSCRIPT" help: @python3 -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST) -init: - python3 -m pip install pipenv - pipenv install --skip-lock - pipenv graph - pipenv install --dev +init: ## Install dependencies and development dependencies + python3 -m pip install -e . + python3 -m pip install -e ".[dev]" clean: clean-build clean-pyc clean-test ## remove all build, test, coverage and Python artifacts diff --git a/README.rst b/README.rst index 76ed7b9..38641fa 100644 --- a/README.rst +++ b/README.rst @@ -133,7 +133,6 @@ Development Clone this repository and go into the directory, then run the following command:: $ make init - $ pipenv shell $ make lint test docs build From d7051b3003b502ea418bc49756009beee6906e93 Mon Sep 17 00:00:00 2001 From: Hirotaka Wakabayashi Date: Thu, 16 Jul 2026 14:57:54 +0900 Subject: [PATCH 4/9] Remove unnecessary try-catch. --- src/k2hr3client/__init__.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/k2hr3client/__init__.py b/src/k2hr3client/__init__.py index 96a3134..3af47ee 100644 --- a/src/k2hr3client/__init__.py +++ b/src/k2hr3client/__init__.py @@ -23,10 +23,7 @@ __author__ = 'Hirotaka Wakabayashi ' -try: - from importlib.metadata import version, PackageNotFoundError -except ImportError: - from importlib_metadata import version, PackageNotFoundError +from importlib.metadata import version, PackageNotFoundError try: __version__ = version("k2hr3client") From a532d865af8286ec6579e742c4f0c4eb34ef5380 Mon Sep 17 00:00:00 2001 From: Hirotaka Wakabayashi Date: Thu, 16 Jul 2026 15:04:05 +0900 Subject: [PATCH 5/9] Fixes the library import order. --- src/k2hr3client/__init__.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/k2hr3client/__init__.py b/src/k2hr3client/__init__.py index 3af47ee..ca5f58d 100644 --- a/src/k2hr3client/__init__.py +++ b/src/k2hr3client/__init__.py @@ -23,20 +23,20 @@ __author__ = 'Hirotaka Wakabayashi ' -from importlib.metadata import version, PackageNotFoundError +import configparser +import logging +import sys +from importlib.metadata import PackageNotFoundError, version +from logging import StreamHandler +from logging.handlers import TimedRotatingFileHandler +from pathlib import Path + try: __version__ = version("k2hr3client") except PackageNotFoundError: __version__ = "unknown" -import configparser -import logging -from logging.handlers import TimedRotatingFileHandler -from logging import StreamHandler -from pathlib import Path -import sys - LOG = logging.getLogger(__name__) if sys.platform.startswith('win'): From 46a5edda762a95223541ec3f15b3caac2c18d428 Mon Sep 17 00:00:00 2001 From: Hirotaka Wakabayashi Date: Thu, 16 Jul 2026 15:43:08 +0900 Subject: [PATCH 6/9] Fixes the version testcase. --- src/k2hr3client/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/k2hr3client/__init__.py b/src/k2hr3client/__init__.py index ca5f58d..98fc05b 100644 --- a/src/k2hr3client/__init__.py +++ b/src/k2hr3client/__init__.py @@ -52,6 +52,10 @@ def get_version() -> str: return __version__ +# Import submodules for direct access +from k2hr3client import version # noqa: E402, F401 + + # 1. Defines the default config as a package level variable. CONFIG = configparser.ConfigParser() # [DEFAULT] From 004bf297791c5517e12ab5b3d1123fadc13357c8 Mon Sep 17 00:00:00 2001 From: Hirotaka Wakabayashi Date: Thu, 16 Jul 2026 15:48:11 +0900 Subject: [PATCH 7/9] Add workaround for duplicate version variable. --- src/k2hr3client/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/k2hr3client/__init__.py b/src/k2hr3client/__init__.py index 98fc05b..2a09220 100644 --- a/src/k2hr3client/__init__.py +++ b/src/k2hr3client/__init__.py @@ -26,14 +26,14 @@ import configparser import logging import sys -from importlib.metadata import PackageNotFoundError, version +from importlib.metadata import PackageNotFoundError, version as get_version_info from logging import StreamHandler from logging.handlers import TimedRotatingFileHandler from pathlib import Path try: - __version__ = version("k2hr3client") + __version__ = get_version_info("k2hr3client") except PackageNotFoundError: __version__ = "unknown" From 6a76d9ac3e3a09846af101e994cb0571ebe10544 Mon Sep 17 00:00:00 2001 From: Hirotaka Wakabayashi Date: Thu, 16 Jul 2026 15:52:43 +0900 Subject: [PATCH 8/9] Fixes the lint error Please enter the commit message for your changes. Lines starting --- src/k2hr3client/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/k2hr3client/__init__.py b/src/k2hr3client/__init__.py index 2a09220..2c081f4 100644 --- a/src/k2hr3client/__init__.py +++ b/src/k2hr3client/__init__.py @@ -26,7 +26,8 @@ import configparser import logging import sys -from importlib.metadata import PackageNotFoundError, version as get_version_info +from importlib.metadata import PackageNotFoundError, \ + version as get_version_info from logging import StreamHandler from logging.handlers import TimedRotatingFileHandler from pathlib import Path From 5b8cf2eeea4e48f9d226f1a94d37cf34e919e372 Mon Sep 17 00:00:00 2001 From: Hirotaka Wakabayashi Date: Thu, 16 Jul 2026 15:55:09 +0900 Subject: [PATCH 9/9] Fixes import order. --- src/k2hr3client/__init__.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/k2hr3client/__init__.py b/src/k2hr3client/__init__.py index 2c081f4..680518d 100644 --- a/src/k2hr3client/__init__.py +++ b/src/k2hr3client/__init__.py @@ -32,6 +32,8 @@ from logging.handlers import TimedRotatingFileHandler from pathlib import Path +from k2hr3client import version # noqa: F401 + try: __version__ = get_version_info("k2hr3client") @@ -53,10 +55,6 @@ def get_version() -> str: return __version__ -# Import submodules for direct access -from k2hr3client import version # noqa: E402, F401 - - # 1. Defines the default config as a package level variable. CONFIG = configparser.ConfigParser() # [DEFAULT]