* [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
* [Fix] Migrate to odrpack because of scipy.odr deprecation in recent
release
* [Fix] Fix behaviour for rank deficient fits. Add test
* [Fix] Relax test_merge_obs tolerance to machine epsilon and update ODR docstring to reference odrpack
* [ci] Re-add -Werror to pytest workflow
* [Fix] Handle platform-dependent rank-deficient warning in ODR tests
* [Fix] Improve rank-deficient detection and bump odrpack to >=0.5
Fix incorrect ODRPACK95 info code parsing: rank deficiency is encoded
in the tens digit (info // 10 % 10), not the hundreds digit. Add
irank and inv_condnum to the warning message for diagnostics.
* [Fix] Pandas 3 string type handling
* [ci] Temporarily remove WError because of scipy deprecation
* [Fix] Address edge cases in _deserialize_df
- Use pd.isna() instead of truthiness check for gzip null guard, fixing
incorrect behavior when null is np.nan (which is truthy in Python)
- Add bounds check to while loop to prevent IndexError when all non-null
values are empty strings converted to None by regex replace
* [Fix] Address edge cases in _deserialize_df and add string dtype tests
- Guard against IndexError on empty DataFrames and all-null columns
- Use is not None instead of pd.isna() for Obs objects in auto_gamma
- Add tests for string dtype columns (with/without None, CSV and SQL)
- Add test for empty DataFrame deserialization
* [Fix] Avoid skipping NA-to-None conversion and guard auto_gamma against None lists
- Replace continue with conditional to preserve NA-to-None conversion for all-null columns
- Guard auto_gamma list lambda against None values to prevent TypeError
- Add tests for all-empty-string columns and Obs lists with None + auto_gamma
* add option that the headers of an append-mode file can have different format
* add tests for irregular headers in append mode
* hotfix: fix bug in append start read implementation
* lint
* lint II
* [Fix] corrected expected_chisquare by adding the number of priors
* test/fits_test.py: dof and expected chisquare the same in uncorrelated fit w. prior to uncorrelated data
* [Fix] Removed the possibility to create an Obs from data on several replica
* [Fix] extended tests and corrected a small bug in the previous commit
---------
Co-authored-by: Simon Kuberski <simon.kuberski@cern.ch>
* [Fix] Fix test for membership should be 'not in' (E713)
* [Fix] Fix module imported but unused (F401)
* [Fix] More precise Exception types in dirac, obs and correlator
* fix: corrected bug that prevented combined fits with multiple x-obs in some cases
* made test more complex
* [Fix] Slightly increase tolerance for matrix function test.
* Adapt test_merge_idx to compare lists
---------
Co-authored-by: Simon Kuberski <simon.kuberski@cern.ch>
Co-authored-by: Fabian Joswig <fjosw@users.noreply.github.com>
* feat: corr_matrix kwargs as input for least squares fit
* feat/tests: inverse covariance matrix and correlation matrix kwargs as input for least squares function
* feat/tests/example: reduced new kwargs to 'inv_chol_cov_matrix' and outsourced the inversion & cholesky decomposition of the covariance matrix (function 'invert_corr_cov_cholesky(corr, covdiag)')
* tests: added tests for inv_chol_cov_matrix kwarg for the case of combined fits
* fix: renamed covdiag to inverrdiag needed for the cholesky decomposition and corrected its documentation
* examples: added an example of a correlated combined fit to the least_squares documentation
* feat/tests/fix(of typos): added function 'sort_corr()' (and a test of it) to sort correlation matrix according to a list of alphabetically sorted keys
* docs: added more elaborate documentation/example of sort_corr(), fixed typos in documentation of invert_corr_cov_cholesky()
* [fix] First version of a fix to cope with missing replica.
* [fix] added test for missing replica
* [fix] refactored fix for missing replica, modified tests
* [fix] refinement of tests
* [fix] Fixed intendation for flake8
* [feat] special module with Bessel functions added.
* [feat] init adapted.
* [tests] First test for special module added.
* [tests] Check kn special function derivative explicitly vs numerical
derivative of scipy function.
* [feat] Added remaining autograd scipy special functions to the special
module.
* [feat] Imports corrected, docstring added.
* Added the function error_gevp() to compute the gevp with statistical errors.
* Changed method name from error_gevp to error_GEVP and removed automatic gamma method
* added auto_gamma to error_GEVP
* Specified exceptions in Corr.error_GEVP
* Fixed a wrong path. It should be np.linalg.LinAlgError
* Added a test for error_GEVP
* The tests of error_gevp loads a test matrix
* Incorporated eigenvectors with uncertainties in GEVP routine
* Cleaned up GEVP routines
* Cleaned up breaking change from merge
* Released tolerance in test of GEVP
* Repaired broken GEVP test
---------
Co-authored-by: Simon Kuberski <simon.kuberski@uni-muenster.de>