factset / quart-openapi

Module for Quart to add Flask-RESTPlus like functionality
https://factset.github.io/quart-openapi/
Other
82 stars 22 forks source link

broken pipenv install quart-openapi #8

Closed barbieri closed 6 years ago

barbieri commented 6 years ago
$ pipenv install 'quart-openapi~=1.3.6'

Adding quart-openapi~=1.3.6 to Pipfile's [packages]...
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches h11==0.7.0,~=0.7.0,~=0.8.1
Tried: 0.5.0, 0.5.0, 0.6.0, 0.6.0, 0.7.0, 0.7.0, 0.8.0, 0.8.0, 0.8.1, 0.8.1
There are incompatible versions in the resolved dependencies.

not sure what's happening, quart-openapi doesn't list h11 directly, just quart >= 0.5.0, but installing that alone works well.

zeroshade commented 6 years ago

Hmm strange, I'll take a look when I get a chance and see what's going on

zeroshade commented 6 years ago

@barbieri What version of pipenv and python are you using? and what version of quart did it end up installing for you?

At least testing on my end currently using pipenv version 2018.7.1 and python 3.6.6, it ends up installing quart 0.6.7 for me and I don't get that warning or error when running pipenv install 'quart-openapi~=1.3.6'.

I want to see if I can reproduce the issue in some environment so I can see what can be done to fix it.

barbieri commented 6 years ago

2018.7.1, but python 3.7

I had to fix all elements to get it done:

pipenv install quart==0.6.6 hypercorn[uvloop]==0.2.4 h11==0.7.0 wsproto==0.11.0
hutson commented 6 years ago

I too attempted to reproduce this issue without success.

Adding quart-openapi~=1.3.6 to Pipfile's [packages]...
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Updated Pipfile.lock (82d416)!
Installing dependencies from Pipfile.lock (82d416)...
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 19/19 — 00:00:01
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

$ pipenv --version
pipenv, version 2018.7.1

@barbieri can you please run install with --skip-lock and then post the result of pipenv graph so that we can see where the incompatibility is coming from?

barbieri commented 6 years ago

i recall --skip-lock didn't help, but what I did to get going is to fix the versions of deps, namely h11 and wsproto (as per above).

it looks more a pipenv bug when settling the versions than a bug with quart, so I'll close the ticket.

thanks!

dfrommi commented 5 years ago

I just came across the same issue and want to share more details on the topic, though the issue is already closed.

h11==0.7.0,~=0.7.0,~=0.8.1

means that no h11 version can be found that would fulfill all requirements, esp. 0.7 and 0.8 at the same time. The reason is the dependency graph of quart:

To resolve the issue, a wsproto has to be installed that depends on h11~=0.7.0, for example version 0.11.0.

So for example pipenv install wsproto==0.11.0

hutson commented 5 years ago

@dfrommi thank you for the additional insight into the issue! 👍

I checked the quart code and changelogs, and it looks like they removed h11 and wsproto in version 0.6.0.

As quart-openapi ships with a requirement on quart >= 0.5.0 should this continue to be an issue if dependencies are updated in projects consuming quart-openapi? (Or am I misunderstanding how major version zero works in Python projects)