Repository: theochem/AtomDB (language: python)

Issue:
Ubuntu Python 3.7 build failing
The github actions workflow that builds the package with Python 3.7 on Ubuntu now fails. This happened after updating the link to the IOData dependency in the .toml file (commit f637b2dadee35b5a2791f7bada1ee9f8d940ee43). 

The change only affects the developer version of AtomDB (is it listed as optional `dev` dependencies in the toml), but it breaks the github actions workflow when tests that need these dependencies are ran.

The report shows this error at the end:
![image](https://github.com/theochem/AtomDB/assets/26312264/fb7ce48e-8c9f-4f2c-9f71-84312b634d5a)



Discussion / hints:
Hi @PaulWAyers @FarnazH 
is IOData stopping support Python 3.7?
I think stopping support is sensible.
Hi, my knowledge of github workflows is very superficial that I learnead when I was dealing doing it for Gbasis. I also had to deal with IOData in the workflows.  For Gbasis IOData is optional so I think this is the reason we don't have it in our pyproject.toml file so for the pytest to run I just added like [this](https://github.com/theochem/gbasis/blob/5da7811e55f37c2726f147ea9f9acb6aa1d57b75/.github/workflows/pytest.yaml#L37). I see you have `"qc-iodata` before the https maybe that is making you to get the pip version instead of the github? This is a far-fetched guess that I just thought on the spot.  I say this because the github version supports Python 3.7 (or at least Gbasis tests pass on pytest) and maybe there is a different version on pyp. Feel free to look at Gbasis workflow for pytest and ask me questions. Maybe @Ali-Tehrani and @marco-2023 knows more about this. 
@leila-pujal thanks for sharing this!

Giving a first look, it seems like our workflow is set up similarly to the one in GBasis.
The differences I can spot are that we have the link to IOData repository in the .toml rather than in the workflow yaml, and we don't use pip's `--user` argument to install IOData. Another difference is that we do not use editable mode for the installation of the development dependencies (although this may be specific need for GBasis)

Some other differences I notice relative to GBasis that may be good to incorporate:
- include `pip install --upgrade pip`  in the extra dependencies section of out .yaml (I've sen our workflow complain about this)
- and `pip install pytest pytest-md pytest-emoji pytest-cov` also in this section of the pytest.yaml and remove these dependencies from the .toml file (I think some of these dependencies only pertain how pytest shows its output)

However, I think that probably what is breaking our workflow may still be a very recent change in IOData: the main branch of IOData now is named `main` not `master` ([d989495c6a301143464919345e9f37c3b189fd1b)](https://github.com/theochem/iodata/commits/main/)



Okay I just checked IOData pyproject.toml just out of curiosity and 2 weeks ago it was added and has  requirement of python >= 3.9 [here](https://github.com/theochem/iodata/blob/d989495c6a301143464919345e9f37c3b189fd1b/pyproject.toml#L13).  This will break Gbasis pytest too. 
This also showed up in `databases` I think, based on an issue that @moham21 and @merreeves were having. @msricher and @RichRick1 need to check `PyCI` and `ModelHamiltonian` too. Ugh....

Probably it isn't a big deal to change things, just annoying.

Fix patch:
diff --git a/pyproject.toml b/pyproject.toml
index e59d6f7b..c8da848d 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -25,7 +25,7 @@ authors = [
 description = "AtomDB is a database of atomic and ionic properties."
 readme = "README.rst"
 license = {text = "GPL-3.0-or-later"}
-requires-python = ">=3.7"
+requires-python = ">=3.9"
 classifiers = [
    'Development Status :: 0 - Released',
     'Environment :: Console',
@@ -36,8 +36,6 @@ classifiers = [
     'Intended Audience :: Science/Research',
     "Intended Audience :: Education",
     "Natural Language :: English",
-    'Programming Language :: Python :: 3.7',
-    "Programming Language :: Python :: 3.8",
     "Programming Language :: Python :: 3.9",
     "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",


Test patch:
diff --git a/.github/workflows/pytest.yaml b/.github/workflows/pytest.yaml
index fd361c68..d83d169e 100644
--- a/.github/workflows/pytest.yaml
+++ b/.github/workflows/pytest.yaml
@@ -16,7 +16,7 @@ jobs:
     strategy:
       matrix:
         os: ["ubuntu-latest", "windows-latest"]
-        py: ["3.7", "3.9", "3.10", "3.11"]
+        py: ["3.9", "3.10", "3.11"]
 
     steps:
       - uses: "actions/checkout@v3"
@@ -32,6 +32,7 @@ jobs:
 
       - name: Install extra test dependencies
         run: |
+          pip install --upgrade pip
           pip install .[test_extra]
 
       - name: Run pytest default tests