Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

'pip install aiohttp[speedups]' installs (deprecated) brotlipy, not Brotli or brotlicffi #5746

Closed
sbaack opened this issue May 29, 2021 · 6 comments
Labels

Comments

@sbaack
Copy link

sbaack commented May 29, 2021

馃悶 Describe the bug

I'm a bit confused about these similarly named libraries, but installing brotlipy when using pip install aiohttp[speedups] def. seems to be wrong considering that using brotlipy is deprecated because it has been renamed to brotlicffi. According to #3803, Brotli should be installed?

BTW, the docs also talk about brotlipy, which should be changed to either Brotli or brotlicffi (whatever is used now).

馃挕 To Reproduce

python -m venv aiohttp_showcase
source aiohttp_showcase/bin/activate
python -m pip install aiohttp[speedups]

This installs brotlipy, here is the pip list output from a fresh venv:

Package           Version
----------------- -----------
aiodns            3.0.0
aiohttp           3.7.4.post0
async-timeout     3.0.1
attrs             21.2.0
brotlipy          0.7.0
cchardet          2.1.7
cffi              1.14.5
chardet           4.0.0
idna              3.1
multidict         5.1.0
pip               21.1.2
pycares           4.0.0
pycparser         2.20
setuptools        57.0.0
typing-extensions 3.10.0.0
wheel             0.36.2
yarl              1.6.3

馃挕 Expected behavior

pip install aiohttp[speedups] should install either Brotli or brotlicffi (again, whatever is currenty used).

馃搵 Your version of the Python

$ python --version
Python 3.9.5

馃搵 Your version of the aiohttp

$ python -m pip show aiohttp
Name: aiohttp
Version: 3.7.4.post0
Summary: Async http client/server framework (asyncio)
Home-page: https://github.com/aio-libs/aiohttp
Author: Nikolay Kim
Author-email: fafhrd91@gmail.com
License: Apache 2
Location: /Users/sb/.virtualenvs/aiohttp_showcase/lib/python3.9/site-packages
Requires: yarl, async-timeout, multidict, typing-extensions, attrs, chardet
Required-by:
...
@sbaack sbaack added the bug label May 29, 2021
@sbaack sbaack changed the title 'pip install aiohttp[speedups]' installs brotlipy, not Brotli or brotlicffi 'pip install aiohttp[speedups]' installs (deprecated) brotlipy, not Brotli or brotlicffi May 29, 2021
@greshilov
Copy link
Contributor

greshilov commented Jun 1, 2021

Thank you for the report!

Yep, aiohttp 3.7 requires brotlipy according to its setup.py.

aiohttp/setup.py

Lines 137 to 143 in 184274d

extras_require={
"speedups": [
"aiodns",
"brotlipy",
"cchardet",
],
},

For aiohttp 3.8 this problem is already solved.

aiohttp/setup.py

Lines 138 to 144 in f00b481

extras_require={
"speedups": [
"aiodns",
"Brotli",
"cchardet",
],
},

@webknjaz I can create a small fix for the 3.7 branch, but maybe it's time to might as well release 3.8?

@webknjaz
Copy link
Member

webknjaz commented Jun 7, 2021

3.7 is not going to get any updates. I've made one exception to deal with a security bug but that's it, I have no desire to resurrect that stream again.

@mgorny
Copy link
Contributor

mgorny commented Jun 19, 2021

Is 3.8 going to get any release soon then?

@webknjaz
Copy link
Member

There's no date set.

@Rongronggg9
Copy link
Contributor

@greshilov @webknjaz so the changelog told a lie?

https://github.com/aio-libs/aiohttp/blob/3.7/CHANGES.rst#373-2020-11-18

3.7.3 (2020-11-18)
Features

Use Brotli instead of brotlipy #3803
Made exceptions pickleable. Also changed the repr of some exceptions. #4077

@Dreamsorcerer
Copy link
Member

@greshilov @webknjaz so the changelog told a lie?

Apparently, yes: #3803 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants