QuaPy/quapy/method
Alejandro Moreo Fernandez b29966797a Fix 10 correctness bugs and clean up warnings/logging in core library
Correctness:
- OneVsAllAggregative.aggregation_fit: fix undefined variable and call to
  the nonexistent aggregate_fit (should be aggregation_fit)
- solve_adjustment: stop mutating the caller's fitted arrays in place for
  method='invariant-ratio'
- LabelledCollection.join(): fix classes always being None due to
  ndarray.sort() returning None; now unions each collection's own classes_
  so a class absent from a particular join is kept at zero prevalence
- Rename the duplicate newSVMKLD (nkld variant) to newSVMNKLD so both loss
  variants are reachable
- EMQ/DyS/DMy: resolve n_jobs via qp._get_njobs() like the other methods,
  so qp.environ['N_JOBS'] is respected
- AggregativeMedianEstimator: drop backend='threading' (global np.random
  state mutated via temp_seed is not thread-safe); use the safe process
  based default instead
- NeuralClassifier: default device now 'cpu', matching its own docstring
- ConfidenceEllipseSimplex: narrow bare except to np.linalg.LinAlgError
- SVMperf: stop merging stderr into stdout so failures report the actual
  subprocess error instead of crashing with AttributeError
- ConfidenceRegionABC: replace @lru_cache on bound methods (leaked every
  instance for the process lifetime) with per-instance caching

Style/quality:
- Replace print() with warnings.warn()/logging across aggregative.py,
  base.py, meta.py, model_selection.py, classification/neural.py,
  method/_neural.py, classification/svmperf.py, data/reader.py,
  data/datasets.py; also fixes a `raise RuntimeWarning(...)` in EMQ that
  would have crashed instead of warning
- Remove dead duplicate class MedianEstimator2 in meta.py
- Rename misleading _compute_tpr(TP, FP) parameter to FN, matching what
  callers actually pass
- Replace argparse.ArgumentError misuse with ValueError
- Remove commented-out dead code in protocol.py
- _lequa.py: fix CSV-parse failure raising an unrelated UnboundLocalError
  instead of a clear ValueError

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-04 18:49:44 +02:00
..
stan index in labelled collection from versions restored 2025-11-15 17:56:37 +01:00
__init__.py refactoring and cleaning up 2026-06-30 18:02:23 +02:00
_bayesian.py integrating bayesian methods and related functionality, plus unit test refactor 2026-06-05 14:08:06 +02:00
_helper.py improving docs and new example for image datasets 2026-07-03 17:07:02 +02:00
_kdey.py added dataset for images 2026-07-02 18:21:35 +02:00
_neural.py Fix 10 correctness bugs and clean up warnings/logging in core library 2026-07-04 18:49:44 +02:00
_threshold_optim.py Fix 10 correctness bugs and clean up warnings/logging in core library 2026-07-04 18:49:44 +02:00
aggregative.py Fix 10 correctness bugs and clean up warnings/logging in core library 2026-07-04 18:49:44 +02:00
base.py Fix 10 correctness bugs and clean up warnings/logging in core library 2026-07-04 18:49:44 +02:00
composable.py mergin and solving pytests 2025-10-06 12:03:31 +02:00
confidence.py Fix 10 correctness bugs and clean up warnings/logging in core library 2026-07-04 18:49:44 +02:00
meta.py Fix 10 correctness bugs and clean up warnings/logging in core library 2026-07-04 18:49:44 +02:00
non_aggregative.py added dataset for images 2026-07-02 18:21:35 +02:00