From 1af0d0b2cc017d754c52fcb75abe31d47ec8cfdd Mon Sep 17 00:00:00 2001 From: AnshulBaljapalli <100519773+AnshulBaljapalli@users.noreply.github.com> Date: Fri, 7 Nov 2025 00:09:37 +0530 Subject: [PATCH 1/7] chore: migrate project configuration to pyproject.toml - consolidated metadata and dependencies from setup.cfg and requirements.txt into pyproject.toml. - standardized dependencies: kept urllib3<2.0.0 for compatibility, updated requests to >=2.7. - updated CONTRIBUTING.md to reflect new installation steps (removed requirements.txt). - verified installation and tests (47/47 passed). --- CONTRIBUTING.md | 3 +-- pyproject.toml | 39 +++++++++++++++++++++++++++++++++++++++ requirements.txt | 4 ---- setup.cfg | 34 ---------------------------------- setup.py | 12 ------------ 5 files changed, 40 insertions(+), 52 deletions(-) delete mode 100644 requirements.txt delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dffce3ec..b8302423 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -39,9 +39,8 @@ System prerequisites: python3 git clone git@github.com:iobis/pyobis.git cd pyobis # install -python -m pip install -r requirements.txt -python -m pip install -r requirements-dev.txt python -m pip install -e . +python -m pip install -r requirements-dev.txt # test your installation python -m pytest # test and generate a coverage report diff --git a/pyproject.toml b/pyproject.toml index 7150f71d..8aca1dea 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,42 @@ [build-system] requires = ["setuptools>=41.2", "setuptools_scm", "wheel"] build-backend = "setuptools.build_meta" + +[project] +name = "pyobis" +dynamic = ["version"] +description = "Python client for OBIS" +readme = "README.md" +requires-python = ">=3.7" +license = {text = "MIT"} +authors = [ + {name = "pyOBIS Community", email = "pyobis-mailing-list@googlegroups.com"} +] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Natural Language :: English", + "Programming Language :: Python :: 3", + "Topic :: Scientific/Engineering :: Bio-Informatics", +] +dependencies = [ + "pandas", + "requests>=2.7", + "requests-cache>=1.2.0,<2.0.0", + "urllib3<2.0.0", +] + +[project.urls] +Documentation = "https://iobis.github.io/pyobis" +"Bug Tracker" = "https://github.com/iobis/pyobis" +"Source Code" = "https://github.com/iobis/pyobis" + +[tool.setuptools] +packages = ["pyobis"] + +[tool.setuptools_scm] +write_to = "pyobis/_version.py" +write_to_template = '__version__ = "{version}"' +tag_regex = "^(?Pv)?(?P[^\\+]+)(?P.*)?$" \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index c0ec947e..00000000 --- a/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -pandas -requests>=2.7 -requests-cache>=1.2.0,<2.0.0 -urllib3<2.0.0 diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 6e51a67c..00000000 --- a/setup.cfg +++ /dev/null @@ -1,34 +0,0 @@ -# This file is used to configure your project. -# Read more about the various options under: -# http://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files - -[metadata] -name = pyobis -description = Python client for OBIS -author = pyOBIS Community -author_email = pyobis-mailing-list@googlegroups.com -url = https://github.com/iobis/pyobis -long_description_content_type = text/markdown -long_description = file: README.md -license = MIT -license-file = LICENSE -project_urls = - Documentation = https://iobis.github.io/pyobis - Bug Tracker = https://github.com/iobis/pyobis - Source Code = https://github.com/iobis/pyobis -classifiers = - Development Status :: 5 - Production/Stable - Intended Audience :: Science/Research - License :: OSI Approved :: MIT License - Operating System :: OS Independent - Natural Language :: English - Programming Language :: Python :: 3 - Topic :: Scientific/Engineering :: Bio-Informatics - -[options] -install_requires = - requests>2.7 - pandas - requests-cache>=1.2.0,<2.0.0 -python_requires = >=3.7 -packages = find: diff --git a/setup.py b/setup.py deleted file mode 100644 index 3071fac8..00000000 --- a/setup.py +++ /dev/null @@ -1,12 +0,0 @@ -from setuptools import setup - -setup( - # The package metadata is specified in setup.cfg but GitHub's downstream dependency graph - # does not work unless we put the name this here too. - name="pyobis", - use_scm_version={ - "write_to": "pyobis/_version.py", - "write_to_template": '__version__ = "{version}"', - "tag_regex": r"^(?Pv)?(?P[^\+]+)(?P.*)?$", - }, -) From f1bc63087ff992a125f858ba3a1364e47610bb08 Mon Sep 17 00:00:00 2001 From: AnshulBaljapalli <100519773+AnshulBaljapalli@users.noreply.github.com> Date: Fri, 7 Nov 2025 00:33:34 +0530 Subject: [PATCH 2/7] fix: update CI workflows to use pyproject.toml --- .github/workflows/deploy-docs.yml | 3 +-- .github/workflows/tests.yml | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 36313513..b1fcf40a 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -26,7 +26,6 @@ jobs: init-shell: bash create-args: >- python=3 pip - --file requirements.txt --file requirements-dev.txt --channel conda-forge @@ -37,7 +36,7 @@ jobs: - name: Get the version id: get_version - run: echo ::set-output name=VERSION::$(python setup.py --version) + run: echo "VERSION=$(python -c "from importlib.metadata import version; print(version('pyobis'))")" >> $GITHUB_OUTPUT - name: Build documentation shell: bash -l {0} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index eccb4956..cb2a67b4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -21,7 +21,6 @@ jobs: init-shell: bash create-args: >- python=${{ matrix.python-version }} pip - --file requirements.txt --file requirements-dev.txt --channel conda-forge From 71b86115f2dd58a6e3ee237cf186ff13f24ba3ce Mon Sep 17 00:00:00 2001 From: AnshulBaljapalli <100519773+AnshulBaljapalli@users.noreply.github.com> Date: Fri, 7 Nov 2025 00:57:25 +0530 Subject: [PATCH 3/7] fix(CI): update workflows and apply code formatting --- .github/workflows/deploy-docs.yml | 2 +- .github/workflows/tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index b1fcf40a..42399cd7 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -32,7 +32,7 @@ jobs: - name: Install on pyobis shell: bash -l {0} run: | - python -m pip install -e . --no-deps --force-reinstall + python -m pip install -e . --force-reinstall - name: Get the version id: get_version diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index cb2a67b4..8ea10fa5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,7 +27,7 @@ jobs: - name: Install on pyobis shell: bash -l {0} run: | - python -m pip install -e . --no-deps --force-reinstall + python -m pip install -e . --force-reinstall - name: Run Unit Tests shell: bash -l {0} From bdc259ca7cc6af8d501b340bd917346559dca4d2 Mon Sep 17 00:00:00 2001 From: AnshulBaljapalli <100519773+AnshulBaljapalli@users.noreply.github.com> Date: Fri, 7 Nov 2025 01:05:50 +0530 Subject: [PATCH 4/7] style: add final newline to pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8aca1dea..1d5f11d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,4 +39,4 @@ packages = ["pyobis"] [tool.setuptools_scm] write_to = "pyobis/_version.py" write_to_template = '__version__ = "{version}"' -tag_regex = "^(?Pv)?(?P[^\\+]+)(?P.*)?$" \ No newline at end of file +tag_regex = "^(?Pv)?(?P[^\\+]+)(?P.*)?$" From b7453afc46f5265b6f6ee34adcf7f98b2667cfb0 Mon Sep 17 00:00:00 2001 From: AnshulBaljapalli <100519773+AnshulBaljapalli@users.noreply.github.com> Date: Mon, 10 Nov 2025 19:25:12 +0530 Subject: [PATCH 5/7] feat: bump minimum python version to 3.10 --- .github/workflows/tests.yml | 40 ++++++++++++++++++------------------- pyproject.toml | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8ea10fa5..33e63390 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -7,30 +7,30 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12"] os: [windows-latest, ubuntu-latest, macos-latest] fail-fast: false steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v5 - - name: Setup Micromamba ${{ matrix.python-version }} - uses: mamba-org/setup-micromamba@v2 - with: - environment-name: TEST - init-shell: bash - create-args: >- - python=${{ matrix.python-version }} pip - --file requirements-dev.txt - --channel conda-forge + - name: Setup Micromamba ${{ matrix.python-version }} + uses: mamba-org/setup-micromamba@v2 + with: + environment-name: TEST + init-shell: bash + create-args: >- + python=${{ matrix.python-version }} pip + --file requirements-dev.txt + --channel conda-forge - - name: Install on pyobis - shell: bash -l {0} - run: | - python -m pip install -e . --force-reinstall + - name: Install on pyobis + shell: bash -l {0} + run: | + python -m pip install -e . --force-reinstall - - name: Run Unit Tests - shell: bash -l {0} - run: | - # use --vcr-record=all when recording new cassettes. We never record on CIs though - python -m pytest -rxs --cov=pyobis ./pyobis --vcr-record=none + - name: Run Unit Tests + shell: bash -l {0} + run: | + # use --vcr-record=all when recording new cassettes. We never record on CIs though + python -m pytest -rxs --cov=pyobis ./pyobis --vcr-record=none diff --git a/pyproject.toml b/pyproject.toml index 1d5f11d6..af674830 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "pyobis" dynamic = ["version"] description = "Python client for OBIS" readme = "README.md" -requires-python = ">=3.7" +requires-python = ">=3.10" license = {text = "MIT"} authors = [ {name = "pyOBIS Community", email = "pyobis-mailing-list@googlegroups.com"} From 84761fa2341ebbd0236c2576e16b792c7cd7c337 Mon Sep 17 00:00:00 2001 From: AnshulBaljapalli <100519773+AnshulBaljapalli@users.noreply.github.com> Date: Mon, 10 Nov 2025 20:46:19 +0530 Subject: [PATCH 6/7] feat: bump python to >=3.10, test on 3.10-3.14 --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 33e63390..6a39f860 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -7,7 +7,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ["3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12","3.13","3.14"] os: [windows-latest, ubuntu-latest, macos-latest] fail-fast: false From 07d4fd5b10abf08ca570861d4c022e8834c20212 Mon Sep 17 00:00:00 2001 From: AnshulBaljapalli <100519773+AnshulBaljapalli@users.noreply.github.com> Date: Fri, 28 Nov 2025 14:46:34 +0530 Subject: [PATCH 7/7] ci: fix workflow indentation --- .github/workflows/tests.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 316ec757..ec129d6f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,23 +14,23 @@ jobs: steps: - uses: actions/checkout@v6 - - name: Setup Micromamba ${{ matrix.python-version }} - uses: mamba-org/setup-micromamba@v2 - with: - environment-name: TEST - init-shell: bash - create-args: >- - python=${{ matrix.python-version }} pip - --file requirements-dev.txt - --channel conda-forge + - name: Setup Micromamba ${{ matrix.python-version }} + uses: mamba-org/setup-micromamba@v2 + with: + environment-name: TEST + init-shell: bash + create-args: >- + python=${{ matrix.python-version }} pip + --file requirements-dev.txt + --channel conda-forge - - name: Install on pyobis - shell: bash -l {0} - run: | - python -m pip install -e . --force-reinstall + - name: Install on pyobis + shell: bash -l {0} + run: | + python -m pip install -e . --force-reinstall - - name: Run Unit Tests - shell: bash -l {0} - run: | - # use --vcr-record=all when recording new cassettes. We never record on CIs though - python -m pytest -rxs --cov=pyobis ./pyobis --vcr-record=none + - name: Run Unit Tests + shell: bash -l {0} + run: | + # use --vcr-record=all when recording new cassettes. We never record on CIs though + python -m pytest -rxs --cov=pyobis ./pyobis --vcr-record=none