diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 876196b4..54daa817 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -33,7 +33,7 @@ repos: args: - --strict - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.8.1 + rev: v0.8.6 hooks: - id: ruff - id: ruff-format @@ -48,7 +48,7 @@ repos: hooks: - id: toml-sort-fix - repo: https://github.com/rbubley/mirrors-prettier - rev: v3.4.1 + rev: v3.4.2 hooks: - id: prettier - repo: https://github.com/igorshubovych/markdownlint-cli @@ -62,11 +62,11 @@ repos: hooks: - id: forbid-tabs - repo: https://github.com/rhysd/actionlint - rev: v1.7.4 + rev: v1.7.6 hooks: - id: actionlint - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.13.0 + rev: v1.14.1 hooks: - id: mypy files: ^glass/ diff --git a/glass/core/array.py b/glass/core/array.py index 7a7dc094..4c89abdb 100644 --- a/glass/core/array.py +++ b/glass/core/array.py @@ -166,7 +166,7 @@ def trapezoid_product( y = np.interp(x, *f) for f_ in ff: y *= np.interp(x, *f_) - return np.trapezoid(y, x, axis=axis) # type: ignore[no-any-return] + return np.atleast_1d(np.trapezoid(y, x, axis=axis)) def cumulative_trapezoid( diff --git a/glass/points.py b/glass/points.py index 39f1cf23..6b9fb4c3 100644 --- a/glass/points.py +++ b/glass/points.py @@ -85,7 +85,7 @@ def effective_bias( """ norm = np.trapezoid(w.wa, w.za) - return trapezoid_product((z, bz), (w.za, w.wa)) / norm + return (trapezoid_product((z, bz), (w.za, w.wa)) / norm).astype(np.float64) def linear_bias( @@ -107,7 +107,7 @@ def linear_bias( The density contrast after biasing. """ - return b * delta + return (b * delta).astype(np.float64) def loglinear_bias( @@ -413,6 +413,6 @@ def position_weights( densities = densities / np.sum(densities, axis=0) # apply bias after normalisation if bias is not None: - densities = densities * bias + densities = (densities * bias).astype(np.float64) # densities now contains the relative contribution with bias applied return densities diff --git a/glass/shells.py b/glass/shells.py index a28a1295..74fe2e8a 100644 --- a/glass/shells.py +++ b/glass/shells.py @@ -235,8 +235,8 @@ def tophat_windows( ws = [] for zmin, zmax in itertools.pairwise(zbins): n = max(round((zmax - zmin) / dz), 2) - z = np.linspace(zmin, zmax, n) - w = wht(z) + z = np.linspace(zmin, zmax, n, dtype=np.float64) + w = np.asarray(wht(z), dtype=np.float64) zeff = np.trapezoid(w * z, z) / np.trapezoid(w, z) ws.append(RadialWindow(z, w, zeff)) return ws @@ -410,7 +410,7 @@ def restrict( z_ = np.compress(np.greater(z, w.za[0]) & np.less(z, w.za[-1]), z) zr = np.union1d(w.za, z_) fr = ndinterp(zr, z, f, left=0.0, right=0.0) * ndinterp(zr, w.za, w.wa) - return zr, fr + return zr.astype(np.float64), fr.astype(np.float64) def partition( @@ -565,7 +565,7 @@ def partition_lstsq( # compute the union of all given redshift grids zp = z for w in shells: - zp = np.union1d(zp, w.za) + zp = np.union1d(zp, w.za).astype(np.float64) # get extra leading axes of fz *dims, _ = np.shape(fz) @@ -629,7 +629,7 @@ def partition_nnls( # compute the union of all given redshift grids zp = z for w in shells: - zp = np.union1d(zp, w.za) + zp = np.union1d(zp, w.za).astype(np.float64) # get extra leading axes of fz *dims, _ = np.shape(fz) @@ -673,7 +673,8 @@ def partition_nnls( # for each dim, find non-negative weights x such that y == r @ x x = np.empty([len(shells), *dims]) for i in np.ndindex(*dims): - x[(..., *i)] = nnls(r, y[i]) + index = (slice(None),) + i # noqa: RUF005 + x[index] = nnls(r, y[i]) # all done return x @@ -740,9 +741,9 @@ def _uniform_grid( """ if step is not None and num is None: - return np.arange(start, np.nextafter(stop + step, stop), step) + return np.arange(start, np.nextafter(stop + step, stop), step, dtype=np.float64) if step is None and num is not None: - return np.linspace(start, stop, num + 1) + return np.linspace(start, stop, num + 1, dtype=np.float64) msg = "exactly one of grid step size or number of steps must be given" raise ValueError(msg)