[chore] Stricter ruff rules (#282)

* [chore] Stricter ruff rules

* [chore] Furture lint rules and removal of flake8

* [ci] Bump github action versions

* [chore] Add additional test coverage

* Revert RNG switch to np.random.default_rng()

Restore use of the global np.random state in pseudo_Obs (misc.py) and the
prior id generation (fits.py), keeping seed behavior unchanged. The switch
to a module-local generator is out of scope for this lint-focused PR.

* Silence NPY002 on intentional legacy np.random calls

The RNG migration was reverted to keep np.random.seed() behavior, so add
per-line noqa: NPY002 on the three legacy np.random calls instead of the
Generator API.

* [Fix] Fix exception messages
This commit is contained in:
Fabian Joswig 2026-07-06 11:04:28 +02:00 committed by GitHub
commit e72949b69b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
33 changed files with 569 additions and 382 deletions

View file

@ -1211,6 +1211,33 @@ def test_hash():
assert hash(o1) != hash(o2)
def test_Obs_mismatched_lengths():
with pytest.raises(ValueError):
pe.Obs([np.random.rand(100), np.random.rand(100)], ["a"])
with pytest.raises(ValueError):
pe.Obs([np.random.rand(100)], ["a"], idl=[range(100), range(50)])
with pytest.raises(ValueError):
pe.Obs([np.random.rand(100), np.random.rand(100)], ["a", "b"],
idl=[range(100)])
def test_details_fractional_Nsigma(capsys):
# N_sigma only appears in details() output when tau_exp > 0.
# Verifies the format change from '%1.0i' (integer truncation) to
# f'{:g}' preserves fractional digits.
o = pe.pseudo_Obs(1.0, 0.1, "e")
o.gamma_method(tau_exp=1.5, N_sigma=1.5)
o.details()
out = capsys.readouterr().out
assert "N_\N{GREEK SMALL LETTER SIGMA}=1.5" in out
def test_CObs_unhashable():
c = pe.CObs(pe.pseudo_Obs(1.0, 0.1, "e"), pe.pseudo_Obs(0.0, 0.1, "e"))
with pytest.raises(TypeError):
hash(c)
def test_gm_alias():
samples = np.random.rand(500)