os-climate / ITR

This Python module implements the ITR methodology.
Apache License 2.0
12 stars 9 forks source link

Support Python 3.12 #404

Open MichaelTiemannOSC opened 6 months ago

MichaelTiemannOSC commented 6 months ago

A user naively installed the latest version of Python (3.12) upon discovering that Python 3.8 (EOL Oct 2024) is not supported. We should support Python 3.12.

The instant problem with 3.12 is that some old-school pip importing functionality that has been long deprecated is finally removed. So we have to update some of that infrastructure.

ModeSevenIndustrialSolutions commented 6 months ago

A perfectly reasonable request and I’ve been intending to remove the hard-wired Python versions in the matrix jobs for some time. I will take a look at that today.

ModeSevenIndustrialSolutions commented 6 months ago

Gonna have to bump this to next week due to a heavy workload this week.

ModeSevenIndustrialSolutions commented 5 months ago

Python 3.12 Implementation Checks

Package readiness check, as per documentation here: https://pyreadiness.org/3.12/

Total not ready: 57

By project: ITR: 20 ITR-examples: 37 (more, i.e. not overlapping with the above)

Here's the compatibility breakdown per project, listing specific modules.

ITR

alabaster==0.7.16 annotated-types==0.6.0 anyascii==0.3.2 astroid==3.1.0 autoapi==2.0.1 Babel==2.14.0 blosc2==2.5.1 boto3==1.34.71 boto3-stubs-lite==1.34.71 botocore==1.34.71 botocore-stubs==1.34.69 certifi==2024.2.2 - NO cffi==1.16.0 charset-normalizer==3.3.2 cramjam==2.8.3 Deprecated==1.2.14 docutils==0.18.1 - NO et-xmlfile==1.1.0 - NO exceptiongroup==1.2.0 fastparquet==2024.2.0 fsspec==2024.3.1 - NO globalwarmingpotentials==0.9.4 iam-units==2023.9.12 idna==3.6 imagesize==1.4.1 importlib_metadata==7.1.0 iniconfig==2.0.0 - NO Jinja2==3.1.3 - NO jmespath==1.0.1 - NO MarkupSafe==2.1.5 - NO msgpack==1.0.8 mypy-boto3-s3==1.34.65 ndindex==1.8 numexpr==2.9.0 numpy==1.26.2 openpyxl==3.0.10 - NO openscm-units==0.5.2 orca==1.8 osc-ingest-tools==0.5.2 packaging==24.0 pandas==2.1.4 Pint==0.23 Pint-Pandas==0.5 pluggy==1.4.0 - NO psutil==5.9.5 - NO py-cpuinfo==9.0.0 pycparser==2.21 - NO pydantic==2.6.4 pydantic_core==2.16.3 PyGithub==1.55 - NO Pygments==2.17.2 PyJWT==2.8.0 - NO PyNaCl==1.5.0 pytest==7.3.2 python-dateutil==2.9.0.post0 (NO - types-python-dateutil 2.9.0.20240316) python-dotenv==1.0.0 pytz==2024.1 PyYAML==6.0.1 - NO requests==2.31.0 - NO s3transfer==0.10.1 six==1.16.0 - NO snowballstemmer==2.2.0 Sphinx==7.2.6 sphinx-autoapi==3.0.0 sphinx-autodoc-typehints==2.0.0 sphinx-rtd-theme==1.3.0 sphinxcontrib-applehelp==1.0.8 sphinxcontrib-devhelp==1.0.6 sphinxcontrib-htmlhelp==2.0.5 sphinxcontrib-jquery==4.1 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.7 sphinxcontrib-serializinghtml==1.1.10 SQLAlchemy==2.0.29 tables==3.9.2 tomli==2.0.1 - NO toolz==0.12.1 trino==0.327.0 types-awscrt==0.20.5 types-s3transfer==0.10.0 typing_extensions==4.10.0 tzdata==2024.1 - NO tzlocal==5.2 urllib3==1.26.18 wrapt==1.16.0 xlrd==2.0.1 zipp==3.18.1

ITR-exmaples

ansi2html==1.9.1 anyio==4.3.0 appnope==0.1.4 argon2-cffi==23.1.0 argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 attrs==23.2.0 beautifulsoup4==4.12.3 - NO bleach==6.1.0 click==8.1.7 - NO comm==0.2.2 - NO contourpy==1.2.0 cycler==0.12.1 dash==2.14.1 dash-bootstrap-components==1.4.2 dash-core-components==2.0.0 dash-html-components==2.0.0 dash-table==5.0.0 debugpy==1.8.1 decorator==5.1.1 - NO defusedxml==0.7.1 - NO dill==0.3.8 diskcache==5.6.1 executing==2.0.1 fastjsonschema==2.19.1 - NO Flask==2.2.5 - NO fonttools==4.50.0 fqdn==1.5.1 importlib_resources==6.4.0 ipykernel==6.29.3 - NO ipython==8.18.1 - NO isoduration==20.11.0 itsdangerous==2.1.2 - NO jedi==0.19.1 json5==0.9.24 jsonpointer==2.4 - NO jsonschema==4.21.1 jsonschema-specifications==2023.12.1 jupyter-events==0.10.0 jupyter-lsp==2.2.4 jupyter_client==8.6.1 - NO jupyter_core==5.7.2 - NO jupyter_server==2.13.0 - NO jupyter_server_terminals==0.5.3 jupyterlab==4.0.4 - NO jupyterlab_pygments==0.3.0 jupyterlab_server==2.25.4 - NO kaleido==0.2.1 kiwisolver==1.4.5 - NO matplotlib==3.7.2 matplotlib-inline==0.1.6 - NO mistune==3.0.2 - NO multiprocess==0.70.14 nbclient==0.10.0 - NO nbconvert==7.16.3 - NO nbformat==5.10.3 nest-asyncio==1.6.0 notebook_shim==0.2.4 overrides==7.7.0 - NO pandocfilters==1.5.1 parso==0.8.3 - NO pexpect==4.9.0 - NO pillow==10.2.0 platformdirs==4.2.0 plotly==5.20.0 prometheus_client==0.20.0 prompt-toolkit==3.0.43 ptyprocess==0.7.0 - NO pure-eval==0.2.2 - NO pyparsing==3.0.9 python-json-logger==2.0.7 - NO pyzmq==25.1.2 referencing==0.34.0 retrying==1.3.4 rfc3339-validator==0.1.4 - NO rfc3986-validator==0.1.1 rpds-py==0.18.0 Send2Trash==1.8.2 - NO sniffio==1.3.1 - NO soupsieve==2.5 stack-data==0.6.3 tenacity==8.2.3 - NO terminado==0.18.1 tinycss2==1.2.1 - NO tornado==6.4 - NO traitlets==5.14.2 - NO types-python-dateutil==2.9.0.20240316 - NO uri-template==1.3.0 wcwidth==0.2.13 webcolors==1.13 webencodings==0.5.1 - NO websocket-client==1.7.0 Werkzeug==3.0.1 - NO