ing-bank / probatus

Validation (like Recursive Feature Elimination for SHAP) of (multiclass) classifiers & regressors and data used to develop them.
https://ing-bank.github.io/probatus
MIT License
132 stars 40 forks source link

Actions fail on python 3.7 #185

Closed operte closed 1 year ago

operte commented 2 years ago

Describe the bug

The github actions fail when using python 3.7. The problem is in the dependency installation step. Pip generates a lot of connection errors, and eventually times out.

Environment (please complete the following information):

To Reproduce

Run, or check old executions of the Development Action. https://github.com/ing-bank/probatus/actions

Error traceback

There are errors when installing a lot of packages. Here's the last example in the traceback:

INFO: pip is looking at multiple versions of pandas to determine which version is compatible with other requirements. This could take a while.
Collecting pandas>=1.0.0
  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/74/0f/118a4201f552e2b6adb63cfcde4d16c7b3ae545490d4107a9265e8462db8/pandas-1.3.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  Downloading pandas-1.3.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 76.2 MB/s eta 0:00:00
  Downloading pandas-1.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 70.9 MB/s eta 0:00:00
INFO: pip is looking at multiple versions of pandas to determine which version is compatible with other requirements. This could take a while.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.

Expected behavior

The Action should run without errors, just like for other python versions.

operte commented 2 years ago

Looking up the warning, I came across this page https://github.com/pypa/pip/issues/9508 It seems this is related to a connectivity issue with IPv6, but I'm not sure how we can fix it.

In the meantime I have modified the Release action, such that we test the package with python 3.8 instead of 3.7. This way we can at least make releases.

timvink commented 2 years ago

This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance.

This + the logs showing downloading pandas 1.3.4 and 1.3.3 suggests we might make it easier for the resolver to be stricter with the pandas requirement.. maybe try pandas>=1.3.0 or even pandas>=1.4.0 ?

Update: I tried and no luck (See #186)

@operte potentially we could drop support for python 3.7 also? numpy is already leading the way: https://github.com/numpy/numpy/blob/55aacc70cf6fd627fff3642538fa5e3b12dd7111/setup.py#L451

operte commented 2 years ago

Hi Tim!

I would not change the requirements to python >=3.8, because we are still using 3.6 in some projects 🥴 But we could do the same as we did for 3.6: drop testing, and don't mention that we support it.

ReinierKoops commented 1 year ago

Probatus will silently drop support for 3.7 #206