Fix sklearn MDS API Compatibility Issues
Issue Type: Technical Debt / Maintenance
Problem
Our tests are failing due to frequent sklearn MDS API changes across versions:
- sklearn <1.3:
metric="euclidean" parameter
- sklearn 1.3:
dissimilarity="euclidean" parameter
- sklearn 1.4-1.9:
metric=True/False parameter (deprecated dissimilarity)
- sklearn 1.10+:
metric_mds=True/False parameter (deprecated metric=True/False)
Our current workaround uses dynamic API detection and warning suppression, which is fragile.
Current Workarounds
- Exhaustive warning filters in
pytest.ini
- Dynamic parameter testing in
src/fastmdanalysis/analysis/mds.py
- Environment variable
PYTHONWARNINGS=ignore in CI
Required Fixes
Short-term (High Priority):
Medium-term:
Long-term:
Technical Details
Problematic files:
src/fastmdanalysis/analysis/mds.py - Complex API detection logic
pytest.ini - Excessive warning filters (100+ lines)
.github/workflows/test.yml - Warning suppression via env vars
Recommended sklearn version: scikit-learn==1.3.0 (last stable MDS API)
Testing
Related Issues
- Pyparsing deprecation warnings also being caught as errors
- Error handling converts warnings to
AnalysisError exceptions
Notes
- Temporary fix implemented in commit:
[COMMIT_HASH]
- All Python versions currently passing with workarounds
- Risk: Workarounds may break with future sklearn releases
Fix sklearn MDS API Compatibility Issues
Issue Type: Technical Debt / Maintenance
Problem
Our tests are failing due to frequent sklearn MDS API changes across versions:
metric="euclidean"parameterdissimilarity="euclidean"parametermetric=True/Falseparameter (deprecateddissimilarity)metric_mds=True/Falseparameter (deprecatedmetric=True/False)Our current workaround uses dynamic API detection and warning suppression, which is fragile.
Current Workarounds
pytest.inisrc/fastmdanalysis/analysis/mds.pyPYTHONWARNINGS=ignorein CIRequired Fixes
Short-term (High Priority):
pyproject.tomlMedium-term:
Long-term:
Technical Details
Problematic files:
src/fastmdanalysis/analysis/mds.py- Complex API detection logicpytest.ini- Excessive warning filters (100+ lines).github/workflows/test.yml- Warning suppression via env varsRecommended sklearn version:
scikit-learn==1.3.0(last stable MDS API)Testing
Related Issues
AnalysisErrorexceptionsNotes
[COMMIT_HASH]