Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deps: Drop python 3.8 #2423

Merged
merged 2 commits into from
Jul 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,8 @@ jobs:
uses: actions/checkout@v4

- name: Setup conda
uses: conda-incubator/setup-miniconda@v2
uses: conda-incubator/setup-miniconda@v3
with:
python-version: 3.8
activate-environment: devito
environment-file: environment-dev.yml
auto-activate-base: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pytest-core-mpi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ['3.8','3.9']
python-version: ['3.9', '3.11']

env:
DEVITO_LANGUAGE: "openmp"
Expand Down
34 changes: 17 additions & 17 deletions .github/workflows/pytest-core-nompi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ jobs:
matrix:
name: [
pytest-ubuntu-py311-gcc11-noomp,
pytest-ubuntu-py38-gcc12-omp,
pytest-ubuntu-py38-gcc7-omp,
pytest-ubuntu-py312-gcc12-omp,
pytest-ubuntu-py39-gcc7-omp,
pytest-ubuntu-py310-gcc10-noomp,
pytest-ubuntu-py312-gcc13-omp,
pytest-ubuntu-py39-gcc9-omp,
Expand All @@ -49,15 +49,15 @@ jobs:
language: "C"
sympy: "1.11"

- name: pytest-ubuntu-py38-gcc12-omp
python-version: '3.8'
os: ubuntu-22.04
- name: pytest-ubuntu-py312-gcc12-omp
python-version: '3.12'
os: ubuntu-24.04
arch: "gcc-12"
language: "openmp"
sympy: "1.10"
sympy: "1.13"

- name: pytest-ubuntu-py38-gcc7-omp
python-version: '3.8'
- name: pytest-ubuntu-py39-gcc7-omp
python-version: '3.9'
os: ubuntu-20.04
arch: "gcc-7"
language: "openmp"
Expand All @@ -82,14 +82,14 @@ jobs:
os: ubuntu-20.04
arch: "custom"
language: "openmp"
sympy: "1.9"
sympy: "1.10"

- name: pytest-osx-py312-clang-omp
python-version: '3.12'
os: macos-latest
arch: "clang"
language: "C"
sympy: "1.9"
language: "openmp"
sympy: "1.13"

- name: pytest-docker-py39-gcc-omp
python-version: '3.9'
Expand Down Expand Up @@ -124,6 +124,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true

- name: Build docker image
if: contains(matrix.name, 'docker')
Expand All @@ -147,9 +148,8 @@ jobs:
- name: Set tests (reduced number for OSX)
run : |
if [ "${{ runner.os }}" == 'macOS' ]; then
echo "TESTS=tests/test_operator.py" >> $GITHUB_ENV
else
echo "TESTS=tests/" >> $GITHUB_ENV
brew install llvm libomp
echo "/opt/homebrew/bin:/opt/homebrew/opt/llvm/bin" >> $GITHUB_PATH
fi
id: set-tests

Expand All @@ -162,9 +162,9 @@ jobs:
- name: Install dependencies
if: "!contains(matrix.name, 'docker')"
run: |
pip install ${{ env.PIPFLAGS }} --upgrade pip
pip install ${{ env.PIPFLAGS }} sympy==${{matrix.sympy}}
pip install ${{ env.PIPFLAGS }} -e .[tests]
python3 -m pip install ${{ env.PIPFLAGS }} --upgrade pip
python3 -m pip install ${{ env.PIPFLAGS }} sympy==${{matrix.sympy}}
python3 -m pip install ${{ env.PIPFLAGS }} -e .[tests,extras]

- name: Check configuration
run: |
Expand Down
1 change: 0 additions & 1 deletion requirements-optional.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
matplotlib
pandas
pyrevolve==2.2.4
scipy
distributed
8 changes: 1 addition & 7 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import versioneer

import os
import sys
import pkg_resources
from setuptools import setup, find_packages

Expand All @@ -19,10 +18,6 @@ def numpy_compat(required):
new_reqs = [r for r in required if "numpy" not in r and "sympy" not in r]
sympy_lb, sympy_ub = min_max(required, "sympy")
numpy_lb, numpy_ub = min_max(required, "numpy")
if sys.version_info < (3, 9):
# Numpy 2.0 requires python > 3.8
new_reqs.extend([f"sympy>={sympy_lb},<1.12.1", f"numpy>{numpy_lb},<2.0"])
return new_reqs

# Due to api changes in numpy 2.0, it requires sympy 1.12.1 at the minimum
# Check if sympy is installed and enforce numpy version accordingly.
Expand Down Expand Up @@ -108,7 +103,7 @@ def numpy_compat(required):
},
url='http://www.devitoproject.org',
platforms=["Linux", "Mac OS-X", "Unix"],
python_requires=">=3.8",
python_requires=">=3.9",
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
Expand All @@ -120,7 +115,6 @@ def numpy_compat(required):
'Operating System :: Unix',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
Expand Down
4 changes: 3 additions & 1 deletion tests/test_buffering.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@

from conftest import skipif
from devito import (Constant, Grid, TimeFunction, Operator, Eq, SubDimension,
SubDomain, ConditionalDimension)
SubDomain, ConditionalDimension, configuration, switchconfig)
from devito.arch.archinfo import AppleArm
from devito.ir import FindSymbols, retrieve_iteration_tree
from devito.exceptions import InvalidOperator

Expand Down Expand Up @@ -672,6 +673,7 @@ def test_everything():


@pytest.mark.parametrize('subdomain', ['domain', 'interior'])
@switchconfig(safe_math=True, condition=isinstance(configuration['platform'], AppleArm))
def test_stencil_issue_1915(subdomain):
nt = 5
grid = Grid(shape=(6, 6))
Expand Down
4 changes: 2 additions & 2 deletions tests/test_gradient.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

class TestGradient:

@skipif(['chkpnt', 'cpu64-icc'])
@skipif(['chkpnt', 'cpu64-icc', 'cpu64-arm'])
@switchconfig(safe_math=True)
@pytest.mark.parametrize('dtype', [np.float32, np.float64])
@pytest.mark.parametrize('opt', [('advanced', {'openmp': True}),
Expand Down Expand Up @@ -59,7 +59,7 @@ def test_gradient_checkpointing(self, dtype, opt, space_order, kernel, shape, sp

assert np.allclose(gradient.data, gradient2.data, atol=0, rtol=0)

@skipif('cpu64-icc')
@skipif(['cpu64-icc', 'cpu64-arm'])
@pytest.mark.parametrize('tn', [750.])
@pytest.mark.parametrize('spacing', [(10, 10)])
@pytest.mark.parametrize("dtype, tolerance", [(np.float32, 1e-4),
Expand Down
3 changes: 3 additions & 0 deletions tests/test_roundoff.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import pytest
import numpy as np

from conftest import skipif
from devito import Grid, Constant, TimeFunction, Eq, Operator, switchconfig


Expand Down Expand Up @@ -84,6 +85,7 @@ def test_lm_backward(self, dat, dtype):
@pytest.mark.parametrize('dat', [0.5, 0.624, 1.0, 1.5, 2.0, 3.0, 3.6767, 4.0])
@pytest.mark.parametrize('dtype', [np.float32, np.float64])
@switchconfig(log_level='DEBUG', safe_math=True)
@skipif('cpu64-arm')
def test_lm_fb(self, dat, dtype):
"""
Test logistic map with forward and backward terms that should cancel.
Expand Down Expand Up @@ -123,6 +125,7 @@ def test_lm_fb(self, dat, dtype):
@pytest.mark.parametrize('dat', [0.5, 0.624, 1.0, 1.5, 2.0, 3.0, 3.6767, 4.0])
@pytest.mark.parametrize('dtype', [np.float32, np.float64])
@switchconfig(log_level='DEBUG', safe_math=True)
@skipif('cpu64-arm')
def test_lm_ds(self, dat, dtype):
"""
Test logistic map with 2nd derivative term that should cancel.
Expand Down
Loading