Skip to content
Snippets Groups Projects
Commit 929cef16 authored by Christoph Alt's avatar Christoph Alt
Browse files

Merge branch 'fhennig/config-fix' into 'v2.0-dev'

Fix mutable-default bug in codegen.config with Python 3.11 and newer

See merge request !448
parents e759f768 55fb78ad
No related branches found
No related tags found
1 merge request!448Fix mutable-default bug in codegen.config with Python 3.11 and newer
Pipeline #73069 passed
......@@ -276,20 +276,9 @@ typecheck:
# -------------------- Unit Tests ---------------------------------------------------------------------
# Normal test - runs on every commit all but "long run" tests
tests-and-coverage:
.testsuite-base:
stage: "Unit Tests"
needs: []
image: i10git.cs.fau.de:5005/pycodegen/pycodegen/nox:ubuntu24.04-cuda12.6
script:
- mkdir -p ~/.config/matplotlib
- echo "backend:template" > ~/.config/matplotlib/matplotlibrc
- mkdir public
- nox --session "testsuite(cupy12)"
tags:
- docker
- cuda11
- AVX
coverage: /Total coverage:\s\d+.\d+\%/
artifacts:
when: always
......@@ -302,6 +291,28 @@ tests-and-coverage:
path: coverage.xml
junit: report.xml
"testsuite-gpu-py3.10":
extends: .testsuite-base
image: i10git.cs.fau.de:5005/pycodegen/pycodegen/nox:ubuntu24.04-cuda12.6
script:
- mkdir -p ~/.config/matplotlib
- echo "backend:template" > ~/.config/matplotlib/matplotlibrc
- mkdir public
- nox --session "testsuite-3.10(cupy12)"
tags:
- docker
- cuda11
- AVX
"testsuite-cpu-py3.13":
extends: .testsuite-base
image: i10git.cs.fau.de:5005/pycodegen/pycodegen/nox:alpine
script:
- nox --session "testsuite-3.13(cpu)"
tags:
- docker
- AVX
# -------------------- Documentation ---------------------------------------------------------------------
......@@ -322,7 +333,7 @@ build-documentation:
pages:
image: alpine:latest
stage: deploy
needs: ["tests-and-coverage", "build-documentation"]
needs: ["testsuite-gpu-py3.10", "build-documentation"]
script:
- mv docs/build/html public
- mv coverage_report public/coverage_report
......
......@@ -86,8 +86,8 @@ def typecheck(session: nox.Session):
session.run("mypy", "src/pystencils")
@nox.session(python=["3.10", "3.12", "3.13"], tags=["test"])
@nox.parametrize("cupy_version", [None, "12", "13"], ids=["cpu", "cupy12", "cupy13"])
@nox.session(python="3.10", tags=["test"])
def testsuite(session: nox.Session, cupy_version: str | None):
if cupy_version is not None:
install_cupy(session, cupy_version, skip_if_no_cuda=True)
......
......@@ -196,12 +196,16 @@ class Category(Generic[Category_T]):
def __get__(self, obj: ConfigBase, objtype: type[ConfigBase] | None = None) -> Category_T:
if obj is None:
return self._default
return None
return cast(Category_T, getattr(obj, self._lookup, None))
cat = getattr(obj, self._lookup, None)
if cat is None:
cat = self._default.copy()
setattr(obj, self._lookup, cat)
return cast(Category_T, cat)
def __set__(self, obj: ConfigBase, cat: Category_T):
setattr(obj, self._lookup, cat.copy())
def __set__(self, obj: ConfigBase, cat: Category_T | None):
setattr(obj, self._lookup, cat.copy() if cat is not None else None)
class _AUTO_TYPE: ... # noqa: E701
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment