New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support python 3.11 in CI #2461
Conversation
waiting for 3.11 to appear in github actions |
15f4f92
to
6eae354
Compare
This is the error that was occurring. parsl/providers/base.py:21: error: Incompatible types in assignment (expression has type "int", base class "Enum" defined the type as "Callable[[Enum], Any]") [assignment] I would like to understand what changed here in python (vs 3.10) because it's not clear from the error message and that Callable signature confuses me.
The python 3.11 build/test takes a long time at the moment because there is no wheel available for the versions of pandas required by monitoring ( Probably it would be good to upgrade the pandas monitoring dependency in a separate PR, and then see how this python upgrade PR works. |
another error that has appeared here is that the rendering of task summaries has become less helpful due to a change in enumeration stringification in python 3.11: This assertion is failing with python 3.11:
because the output has switched to using numeric values, like this:
This is a worse way of outputting things for users to see, so it would be good to fix. |
Python 3.11 changes how IntEnum, the parent class of States, shows states using __str__, so that only the integer value is returned. This change was made to support a usecase that is not the parsl usecase. This new __str__ rendering is less user friendly, as users usually probably prefer to see textual state names. This change makes the pre-python 3.11 behaviour happen on all Python versions, so that states continue to appear as States.exec_done rather than as an integer.
There is no pandas wheel available <1.4 for Python 3.11 so installing on Python 3.11 results in a long (eg 15 minute) addition to the build process as pandas is built locally. This PR will attempt to make parsl able to use both pandas <1.4 (for continued Python 3.7) support and a later version (for which a Python 3.11 wheel is available). See PR #2461 for Python 3.11 upgrade information
Type of change