VirusTotal / vt-py

The official Python 3 client library for VirusTotal
https://virustotal.github.io/vt-py/
Apache License 2.0
531 stars 121 forks source link

pip install broken since aiohttp 3.10.0 release #195

Closed ozcrn closed 1 month ago

ozcrn commented 1 month ago

Standard install from pip breaks since the release of aiohttp 3.10.0

Installation:

% pip install vt-py
Collecting vt-py
  Downloading vt_py-0.18.2-py3-none-any.whl.metadata (1.8 kB)
Collecting aiohttp (from vt-py)
  Using cached aiohttp-3.10.0-cp311-cp311-macosx_11_0_arm64.whl.metadata (7.5 kB)
Collecting aiohappyeyeballs>=2.3.0 (from aiohttp->vt-py)
  Using cached aiohappyeyeballs-2.3.2-py3-none-any.whl.metadata (5.5 kB)
Collecting aiosignal>=1.1.2 (from aiohttp->vt-py)
  Using cached aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB)
Collecting attrs>=17.3.0 (from aiohttp->vt-py)
  Using cached attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB)
Collecting frozenlist>=1.1.1 (from aiohttp->vt-py)
  Using cached frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl.metadata (12 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp->vt-py)
  Using cached multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl.metadata (4.2 kB)
Collecting yarl<2.0,>=1.0 (from aiohttp->vt-py)
  Using cached yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl.metadata (31 kB)
Collecting idna>=2.0 (from yarl<2.0,>=1.0->aiohttp->vt-py)
  Using cached idna-3.7-py3-none-any.whl.metadata (9.9 kB)
Downloading vt_py-0.18.2-py3-none-any.whl (19 kB)
Using cached aiohttp-3.10.0-cp311-cp311-macosx_11_0_arm64.whl (384 kB)
Using cached aiohappyeyeballs-2.3.2-py3-none-any.whl (11 kB)
Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Using cached attrs-23.2.0-py3-none-any.whl (60 kB)
Using cached frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl (53 kB)
Using cached multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl (30 kB)
Using cached yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl (81 kB)
Using cached idna-3.7-py3-none-any.whl (66 kB)
Installing collected packages: multidict, idna, frozenlist, attrs, aiohappyeyeballs, yarl, aiosignal, aiohttp, vt-py
Successfully installed aiohappyeyeballs-2.3.2 aiohttp-3.10.0 aiosignal-1.3.1 attrs-23.2.0 frozenlist-1.4.1 idna-3.7 multidict-6.0.5 vt-py-0.18.2 yarl-1.9.4

% pip freeze
aiohappyeyeballs==2.3.2
aiohttp==3.10.0
aiosignal==1.3.1
attrs==23.2.0
frozenlist==1.4.1
idna==3.7
multidict==6.0.5
vt-py==0.18.2
yarl==1.9.4

% python3
>>> import vt
>>> client = vt.Client("foo")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/ozcrn/.venv/lib/python3.11/site-packages/vt/client.py", line 241, in __init__
    self._connector = aiohttp.TCPConnector(ssl=self._verify_ssl)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ozcrn/.venv/lib/python3.11/site-packages/aiohttp/connector.py", line 784, in __init__
    super().__init__(
  File "/Users/ozcrn/.venv/lib/python3.11/site-packages/aiohttp/connector.py", line 234, in __init__
    loop = loop or asyncio.get_running_loop()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: no running event loop

Pinning aiohttp at 3.9.5 resolves the issues.

Looks like this has already been fixed in the 0.18.3 release but this isn't available via pypi. Look like publish workflow failed as version number hasn't been bumped: https://github.com/VirusTotal/vt-py/actions/runs/9446921113/job/26017594156 https://github.com/VirusTotal/vt-py/blob/0.18.3/vt/version.py#L3

mgmacias95 commented 1 month ago

Thank you for reporting, the release is now correctly published on pypi: https://pypi.org/project/vt-py/#history