Unfulfillable starlette dependency in prodigy

Hi there,

I've just tried to install prodigy in a fresh python 3.8 virtual environment using a requirements.in file and pip-tools to pin all transient dependencies. The requirements.in file looks like the following:

--extra-index-url https://<license-key-here>@download.prodi.gy/index
prodigy
spacy
pandas

When I run pip-compile, I'll get the following error message:

Could not find a version that matches starlette<0.15.0,==0.16.0,>=0.14.0 (from prodigy==1.11.5->-r requirements.in (line 2))
Tried: 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.1.10, 0.1.11, 0.1.12, 0.1.13, 0.1.14, 0.1.15, 0.1.16, 0.1.17, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.4.0, 0.4.1, 0.4.2, 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.5.5, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7, 0.8.8, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.6, 0.9.7, 0.9.8, 0.9.9, 0.9.10, 0.9.11, 0.10.0, 0.10.1, 0.10.2, 0.10.3, 0.10.4, 0.10.5, 0.10.6, 0.10.7, 0.11.0, 0.11.1, 0.11.2, 0.11.3, 0.11.4, 0.12.0, 0.12.1, 0.12.2, 0.12.3, 0.12.4, 0.12.5, 0.12.6, 0.12.7, 0.12.8, 0.12.9, 0.12.10, 0.12.11, 0.12.12, 0.12.13, 0.13.0, 0.13.1, 0.13.1, 0.13.2, 0.13.2, 0.13.3, 0.13.3, 0.13.4, 0.13.4, 0.13.5, 0.13.5, 0.13.6, 0.13.6, 0.13.7, 0.13.7, 0.13.8, 0.13.8, 0.14.0, 0.14.0, 0.14.1, 0.14.1, 0.14.2, 0.14.2, 0.15.0, 0.15.0, 0.16.0, 0.16.0, 0.17.0, 0.17.0
Skipped pre-versions: 0.12.0b1, 0.12.0b2, 0.12.0b3
There are incompatible versions in the resolved dependencies:
  starlette==0.16.0 (from fastapi==0.70.0->prodigy==1.11.5->-r requirements.in (line 2))
  starlette<0.15.0,>=0.14.0 (from prodigy==1.11.5->-r requirements.in (line 2))

There seems to be some unfulfillable dependency on starlette from prodigy and fastapi. Is there a way for me to fix this?

Ah, this looks like it might have been introduced in the latest release of fastapi that came out last week :thinking: And pip isn't clever enough to resolve it automatically and install the best-matching version here.

One simple solution could be to just pre-install an older version of fastapi, anything before 0.7.0.

I can confirm that the following requirements.in does compile successfully.

--extra-index-url https://<license-key-here>@download.prodi.gy/index
prodigy
spacy
pandas
fastapi<0.69.0

Just released Prodigy v1.11.6, which should resolved this by pinning to a lower fastapi by default and removing the explicit starlette pin :slight_smile: