Add a bit numpy typing #125
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Author(s): Minsik Cho, Shaun Weatherly | |
# Based on: https://docs.github.com/en/actions/use-cases-and-examples/building-and-testing/building-and-testing-python | |
name: Run Unit Tests for quemb | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
permissions: | |
contents: read | |
jobs: | |
analysis: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.12"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check trailing whitespace | |
# Idea taken from https://peter.eisentraut.org/blog/2014/11/04/checking-whitespace-with-git | |
# Windows uses different new line convention, thats why we exclude docs/make.bat | |
run: | | |
git diff-tree --check $(git hash-object -t tree /dev/null) HEAD -- '(exclude)docs/make.bat' | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Prepare pip | |
run: | | |
python -m pip install --upgrade pip | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: ${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ hashFiles('dev-requirements.txt') }} | |
- name: Install dependencies | |
run: | | |
pip install --upgrade --upgrade-strategy eager ruff pylint mypy scipy-stubs | |
pip install . | |
- name: Check formatting | |
run: | | |
ruff format --diff | |
- name: Static analysis with ruff | |
# for the moment we want to report always report success | |
run: | | |
ruff check . || true | |
- name: Static analysis with pylint | |
# ruff does nearly everything that we want from pylint | |
# except for detecting unresolved imports | |
# TODO: if they add it to ruff as well https://github.com/astral-sh/ruff/issues/9103 | |
# remove pylint. | |
run: | | |
pylint --disable=all --enable=E0401,R0401,E0611 . || true # for the moment we want to report always report success | |
- name: Static analysis with mypy | |
run: | | |
mypy tests/ example/ src/ || true # for the moment we want to report always report success | |
build: | |
runs-on: ubuntu-latest | |
needs: analysis | |
strategy: | |
matrix: | |
python-version: ["3.9", "3.12"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Prepare pip | |
run: | | |
python -m pip install --upgrade pip | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: ${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ hashFiles('dev-requirements.txt') }} | |
- name: Install dependencies | |
run: | | |
pip install --upgrade --upgrade-strategy eager pytest | |
if [ -f requirements.txt ]; then pip install --upgrade --upgrade-strategy eager -r requirements.txt; fi | |
pip install git+https://github.com/pyscf/dmrgscf | |
PYSCFHOME=$(pip show pyscf-dmrgscf | grep 'Location' | tr ' ' '\n' | tail -n 1) | |
wget https://raw.githubusercontent.com/pyscf/dmrgscf/master/pyscf/dmrgscf/settings.py.example | |
mv settings.py.example ${PYSCFHOME}/pyscf/dmrgscf/settings.py | |
pip install . | |
echo ${{ github.workspace }} > $(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")/quemb.pth | |
- name: Test with pytest | |
run: | | |
cd tests | |
QUEMB_SKIP_EXPENSIVE_TESTS=true pytest --doctest-modules --junitxml=junit/quemb-test-results_${{ matrix.python-version }}.xml | |
- name: Upload pytest junit results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: quemb-test-results_${{ matrix.python-version }} | |
path: tests/junit/quemb-test-results_${{ matrix.python-version }}.xml |