murphycj / AGFusion

Python package to annotate and visualize gene fusions.

Home Page:https://www.agfusion.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Potential dependency conflicts between agfusion and numpy

NeolithEra opened this issue · comments

Hi, as shown in the following full dependency graph of agfusion, pyensembl requires numpy >=1.7 , while the installed version of gtfparse(1.2.0) requires numpy >=1.7,<2.0.

According to Pip's “first found wins” installation strategy, numpy 1.18.0 is the actually installed version.

Although the first found package version numpy 1.18.0 just satisfies the later dependency constraint (numpy >=1.7,<2.0), it will lead to a build failure once developers release a newer version of numpy .

Dependency tree--------

agfusion - 1.252
| +- biopython(install version:1.76 version range:>=1.67)
| +- future(install version:0.18.2 version range:>=0.16.0)
| +- matplotlib(install version:3.2.0rc1 version range:>=1.5.0)
| | +- cycler(install version:0.10.0 version range:>=0.10)
| | | +- six(install version:1.13.0 version range:*)
| | +- kiwisolver(install version:1.1.0 version range:>=1.0.1)
| | | +- setuptools(install version:42.0.2 version range:*)
| | +- numpy(install version:1.18.0 version range:>=1.11)
| | +- pyparsing(install version:2.4.5 version range:>=2.0.1)
| | +- python-dateutil(install version:2.8.1 version range:>=2.1)
| +- pandas(install version:0.25.3 version range:>=0.18.1)
| +- pyensembl(install version:1.8.4 version range:>=1.1.0)
| | +- datacache(install version:1.1.5 version range:>=1.1.4)
| | | +- appdirs(install version:1.4.3 version range:>=1.4.0)
| | | +- mock(install version:3.0.5 version range:*)
| | | +- pandas(install version:0.25.3 version range:>=0.15.2)
| | | +- progressbar33(install version:2.4 version range:>=2.4)
| | | +- requests(install version:2.22.0 version range:>=2.5.1)
| | | | +- 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.25.7 version range:<1.26,>=1.21.1)
| | | +- typechecks(install version:0.1.0 version range:>=0.0.2)
| | +- gtfparse(install version:1.2.0 version range:>=1.1.0)
| | | +- numpy(install version:1.18.0 version range:>=1.7,<2.0)
| | | +- pandas(install version:0.25.3 version range:>=0.15)
| | +- memoized-property(install version:1.0.3 version range:>=1.0.2)
| | +- numpy(install version:1.18.0 version range:>=1.7)
| | +- pandas(install version:0.25.3 version range:>=0.15)
| | +- serializable(install version:0.2.1 version range:*)
| | +- six(install version:1.13.0 version range:>=1.9.0)
| | +- tinytimer(install version:0.0.0 version range:*)
| | +- typechecks(install version:0.1.0 version range:>=0.0.2)

Thanks for your attention.
Best,
Neolith

Suggested Solution

  1. Ask your upstream project pyensembl to fix his direct dependencies to be numpy<2.0.
  2. Ask your upstream project gtfparse to loose the version range of numpy to be >=1.7.

@murphycj Which solution do you prefer, 1 or 2?
Please let me know your choice. May I pull a request to solve this issue?