Add Python 3.13 support and update dependencies
Ok I am running into a lot of issues here. Will need some help in revising/cleaning up the workflows:
- Seems the pyproject.toml requires a new format (having a
[project]section) (see https://github.com/py-why/dowhy/actions/runs/15859223962/job/44711992576?pr=1328) - Our current docs workflow is based on Python 3.8, however, from
setuptoolsversion 77+, 3.8 is not supported anymore. If we want to deprecate 3.8, we need to change the docker usage. - With the new requirements that packages need to follow pep517, some packages cannot be installed by default (e.g.,
shaporeconml). So, we need additional logic to override this requirement (see e.g., https://github.com/py-why/dowhy/actions/runs/15859223980/job/44711993046?pr=1328)
I have fixed the doc build. I think the only issue left is that econml is not supporting 3.13 yet (https://github.com/py-why/dowhy/actions/runs/16033057739/job/45238127600?pr=1328).
I have fixed the doc build. I think the only issue left is that
econmlis not supporting 3.13 yet (https://github.com/py-why/dowhy/actions/runs/16033057739/job/45238127600?pr=1328).
that's amazing. thanks @bloebp . I think pyproject is also fixed now. For econml, I've pinged @kbattocchi to see if they will be updating to Py3.13 soon.
EconML now has a version that supports py3.13. Thanks @kbattocchi
Merging into main and running the CI again
Some context for the potential numpy issue: https://github.com/cvxpy/cvxpy/issues/2840
Pinning numpy to <2 in dowhy is not good. Numpy <2 is almost end of life: https://scientific-python.org/specs/spec-0000/
It also just makes dowhy super incompatible with everything else.
The numpy version can be depended on the Python version (use > 2.0 for newer Python versions and < for older ones that need it).
finally, this PR is ready for review. @bloebp @Zethson please take a look.
once you approve, I can create a new minor release that supports py3.13.
@amit-sharma can you check if you can approve the PR? Since I initially opened the PR, I cannot approve it