Skip to content
This repository has been archived by the owner on Nov 13, 2023. It is now read-only.

Pin required dependencies due to breaking changes #1

Open
Miniland1333 opened this issue Nov 13, 2023 · 2 comments
Open

Pin required dependencies due to breaking changes #1

Miniland1333 opened this issue Nov 13, 2023 · 2 comments

Comments

@Miniland1333
Copy link

Miniland1333 commented Nov 13, 2023

Hello ISV developers,

I downloaded a copy of ISV to try out for the first time, and it took me a while to get it operational due to dependency-related issues. Specifically, some of the dependencies have had breaking changes since ~2019, so I experimented with pinning to older dependency versions until I eventually got a combination that worked. I even had to use python v3.8 instead of v3.10 due to some deprecations. If it is useful for you, I've included my pip install command with the versions pinned that worked for me:

pip install jinja2==2.10 pyyaml argparse tornado==4.5.3 numpy bokeh==0.12.14 pandas==1.3.5 selenium pillow ase markupsafe==2.0.1

After installing these pinned versions, it started working and I was able to run the example described in the README! I'm having fun exploring this example, and I do like that you included the interactive tour of its features.

I did spend some time attempting to migrate the code to a later version of Bokeh, but it seems that the Bokeh interface has quite a few differences between 0.12.14 and 3.3.1. For now, sticking with these older dependencies works fine for me since it seems like updating the code for compatibility with the latest dependencies would take a good chunk of effort.

Based on my experience here, would you be able to please update the README with fully pinned versions of all the dependencies so that future dependency updates don't introduce any more breaking changes?

Thanks for looking into this issue and for developing such a useful tool!

P.S. If you are interested in the specific deprecations per dependency, here are each of the breaking changes that I encountered:

  • python3 version must be below v3.10 due to ImportError: cannot import name 'Mapping' from 'collections'. I was able to successfully use python v3.8.
  • bokeh due to ImportError: cannot import name 'TabPanel' from 'bokeh.models.widgets' and many other similar issues
  • pandas due to AttributeError: 'DataFrame' object has no attribute 'iteritems'
  • markupsafe due to ImportError: cannot import name 'soft_unicode' from 'markupsafe'
  • jinja due to ImportError: cannot import name 'Markup' from 'jinja2'
@ceriottm
Copy link
Contributor

Hello. Thanks for your report. As you may have noticed, this codebase is kind of abandoned. I think it would be much better for you to try out the successor to ISV, https://github.com/lab-cosmo/chemiscope/.
This works both as a web app that you can also deploy in different settings, and as a jupyter widget. I'll actually add a note to the readme, I am sorry that you spent so much time getting this to work.

@Miniland1333
Copy link
Author

Miniland1333 commented Nov 13, 2023

Thanks for telling me about Chemiscope! I didn't know about it before and I've checked it out just now. I like that it is fully Javascript instead of Bokeh+Jmol since I'm much more familiar with Javascript. I think Chemiscope will fit our needs quite well.

If you were wondering how I ended up at this ISV repo, when Googling "sketchmaps" the old website https://sketchmap.org/index.html?page=view comes up and website mentions this project. If you feel like it, you may want to update this README, the README of https://github.com/lab-cosmo/sketchmap, and the sketchmaps website to mention Chemiscope!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants