KnowledgeLinks / rdfframework

RdfFramework Python Package
MIT License
3 stars 0 forks source link

Conflicts between rdfframework and elasticsearch #24

Open NeolithEra opened 4 years ago

NeolithEra commented 4 years ago

Hi, users are unable to run rdfframework due to dependency conflict with elasticsearch package. As shown in the following full dependency graph of rdfframework, rdfframework requires elasticsearch >5.4.0,<6,while elasticsearch-dsl requires elasticsearch <8.0.0,>=7.0.0.

According to pip’s “first found wins” installation strategy, elasticsearch 5.5.3 is the actually installed version. However, elasticsearch 5.5.3 does not satisfy <8.0.0,>=7.0.0.

Dependency tree-----------

rdfframework - 0.0.38
| +- beautifulsoup4(install version:4.8.1 version range:*)
| | +- soupsieve(install version:1.9.5 version range:>=1.2)
| +- click(install version:7.0 version range:*)
| +- colorama(install version:0.4.3 version range:*)
| +- cssselect(install version:1.1.0 version range:*)
| +- dateutils(install version:0.6.7 version range:*)
| | +- argparse(install version:1.4.0 version range:*)
| | +- python-dateutil(install version:2.8.1 version range:*)
| | +- pytz(install version:2019.3 version range:*)
| +- elasticsearch(install version:5.5.3 version range:>5.4.0,<6)
| | +- urllib3(install version:1.21.1 version range:>=1.21.1)
| +- elasticsearch-dsl(install version:7.1.0 version range:*)
| | +- elasticsearch(install version:7.1.0 version range:>=7.0.0,<8.0.0)
| | | +- urllib3(install version:1.21.1 version range:>=1.21.1)
| | +- ipaddress(install version:1.0.23 version range:*)
| | +- python-dateutil(install version:2.8.1 version range:*)
| | +- six(install version:1.13.0 version range:*)
| +- flask(install version:1.1.1 version range:*)
| | +- click(install version:7.0 version range:>=5.1)
| | +- itsdangerous(install version:1.1.0 version range:>=0.24)
| | +- jinja2(install version:2.10.3 version range:>=2.10.1)
| | | +- markupsafe(install version:1.1.1 version range:>=0.23)
| | +- werkzeug(install version:0.16.0 version range:>=0.15)
| +- flask-wtf(install version:0.14.2 version range:*)
| | +- flask(install version:1.1.1 version range:*)
| | | +- click(install version:7.0 version range:>=5.1)
| | | +- itsdangerous(install version:1.1.0 version range:>=0.24)
| | | +- jinja2(install version:2.10.3 version range:>=2.10.1)
| | | | +- markupsafe(install version:1.1.1 version range:>=0.23)
| | | +- werkzeug(install version:0.16.0 version range:>=0.15)
| | +- wtforms(install version:2.2.1 version range:*)
| +- isodate(install version:0.6.0 version range:*)
| | +- six(install version:1.13.0 version range:*)
| +- jsonpath-ng(install version:1.4.3 version range:*)
| +- lxml(install version:4.4.2 version range:*)
| +- markdown(install version:3.1.1 version range:*)
| | +- setuptools(install version:42.0.2 version range:>=36)
| +- passlib(install version:1.7.2 version range:*)
| +- rdflib(install version:4.2.2 version range:*)
| | +- isodate(install version:0.6.0 version range:*)
| | | +- six(install version:1.13.0 version range:*)
| | +- pyparsing(install version:2.4.5 version range:*)
| +- requests(install version:2.22.0 version range:*)
| | +- certifi(install version:2019.11.28 version range:>=2017.4.17)
| | +- chardet(install version:3.0.4 version range:<3.1.0,>=3.0.2)
| | +- idna(install version:2.8 version range:>=2.5,<2.9)
| | +- urllib3(install version:1.21.1 version range:<1.26,>=1.21.1)
| +- urllib3(install version:1.21.1 version range:<1.22,>=1.21.1) 

Thanks for your help. Best, Neolith

NeolithEra commented 4 years ago

Suggested Solution

  1. Fix your direct dependency to be elasticsearch<8.0.0. I have checked this revision will not affect your downstream projects now.
  2. Remove your direct dependency elasticsearch, and use elasticsearch transitively introduced by elasticsearch-dsl.

@mstabile75 Which solution do you prefer, 1 or 2? Please let me know your choice. I can submit a PR to solve this issue.