cadCAD-org/cadCAD

Python 3.10 support and dependency on `funcy`/`fn`

BenSchZA opened this issue · 5 comments

Due to cadCAD's dependency on the funcy package and its dependency on the fn package, cadCAD currently doesn't support Python 3.10+. The fn package has the following error ImportError: cannot import name 'Iterable' from 'collections' discussed in the following issue kachayev/fn.py#91.

There is a PR from 2020 to fix this issue, which still hasn't been merged: kachayev/fn.py#87. In the meantime I've created a fork of the package to fix the issue here: https://github.com/BenSchZA/fn.py.

By adding the above forked and fixed version of fn, cadCAD should be able to support at least Python3.10. I'm in the process of updating radCAD to use the package.

I've created a fork of fn within cadCAD-org, and created a PR to update cadCAD requirements.txt here: #341

Alternatively, there is a GitHub organisation and PyPi package fn.py (versus fn) that is more actively maintained and fixes the issue described above: https://github.com/fnpy/fn.py

cadCAD is passing CI on all Pythons from 3.9 to 3.12. Do you have a specific scenario where it isn't working on 3.10?

Thanks for confirming that @emanuellima1, it's failing on install currently. I'll try to run the cadCAD tests locally and see if I can give any further context.

I realise I have been using an older version of cadCAD v0.4.27 to ensure backwards compatibility with the cadCAD.Edu coursework and the existing radCAD models and tests. I'll update to v0.5.1 and see if this causes any issues.