Coverage for pyxfem/core/config.py: 71%

28 statements  

« prev     ^ index     » next       coverage.py v7.17.0, created at 2026-10-24 07:17 +0000

1""" 

2Created on Sat 28 march 2026 

3@author: nchevaug 

4""" 

5from typing import TYPE_CHECKING, Final 

6 

7import numpy as np 

8from numpy.typing import NDArray 

9 

10HAVE_UMFPACK = False 

11PRECISION: Final = "float64" 

12USE_NUMBA = True 

13FASTMATH = True 

14 

15if USE_NUMBA: 

16 import numba.core.types as nbct 

17# Pour Pyright / VSCodium : il n'analyse que cette branche statiquement 

18if TYPE_CHECKING: 

19 npfloat = np.float64 

20 fzero = npfloat(0.0) 

21 fone = npfloat(1.0) 

22 fhalf = npfloat(0.5) 

23 if USE_NUMBA: 

24 nbfloat = nbct.float64 

25else : 

26 if PRECISION == "float64": 

27 npfloat = np.float64 

28 fzero = npfloat(0.) 

29 fone = npfloat(1.) 

30 fhalf = npfloat(0.5) 

31 if USE_NUMBA: 

32 nbfloat = nbct.float64 

33 elif PRECISION == "float32": 

34 npfloat = np.float32 

35 fzero = npfloat(0.) 

36 fone = npfloat(1.) 

37 fhalf = npfloat(0.5) 

38 if USE_NUMBA: 

39 nbfloat = nbct.float32 

40 else: 

41 raise ValueError(f"Précision non supportée : {PRECISION}") 

42 

43FloatArray = NDArray[npfloat] 

44FloatVars = npfloat | FloatArray 

45 

46IndexType = np.intp 

47IndexArray = NDArray[IndexType]