MoralisWeb3 / Moralis-Python-SDK

MIT License
31 stars 24 forks source link

Pinned versions in requirements.txt are too restrictive #39

Open ehtec opened 1 year ago

ehtec commented 1 year ago

New Feature Request

Checklist

Current Limitation

The requirements in the requirements.txt file are too restrictive, because they pin exact package versions. They make it impossible to install moralis in my environment together with other packages.

Feature / Enhancement Description

Please don't make such restrictive dependency requirements, I don't think they are necessary for proper operation. For example only specify a minimum version.

Alternatives / Workarounds

Currently I need to bypass the dependency checks and install dependencies manually to get it work.

mikulas-mrva commented 1 year ago

I don't think you should be using requirements.txt, those are just for development of the package. If you install it, I think you're using the dependencies listed in setup.py. I agree that the dependencies are still a bit too narrow for a package that should be useable in a wide range of massive projects, but that's probably for a different ticket.

ehtec commented 1 year ago

This is correct, but doesn't change the issue I am facing. I'm actually not using requirements.txt, I just install it via Pip from PyPi. After getting the dependency conflicts, I looked into requirements.txt, noticed the pinned versions, and submitted this issue, assuming this is what gets installed when I install from PyPi. That's not the case, you are right the setup.py dependencies are what actually gets installed, and this is what causes my issue. They are still too narrow, especially as strict requirements on very basic commonly used libraries are made, not only on exotic ones.

mikulas-mrva commented 1 year ago

In that case the issue shouldn't be mentioning requirements.txt, but setup.py. see https://github.com/MoralisWeb3/Moralis-Python-SDK/blob/main/setup.py

Either way @ehtec, I think you'll love version 0.1.39 released a few days ago. It solves the problem for me, so chances are it would work for you also. See also: https://forum.moralis.io/t/python-sdk-bump-up-version-of-python-dateutil-dependency/23981/5

lalawila commented 1 year ago

same as me.

Because no versions of moralis match >0.1.41,<0.2.0
 and moralis (0.1.41) depends on typing-extensions (>=4.3.0,<4.4.0), moralis (>=0.1.41,<0.2.0) requires typing-extensions (>=4.3.0,<4.4.0).
And because redis-om (0.2.1) depends on typing-extensions (>=4.4.0,<5.0.0)
 and no versions of redis-om match >0.2.1,<0.3.0, moralis (>=0.1.41,<0.2.0) is incompatible with redis-om (>=0.2.1,<0.3.0).
So, because betdog-backend depends on both redis-om (^0.2.1) and moralis (^0.1.41), version solving failed.