OpenCyphal / yukon

The OpenCyphal IDE
https://opencyphal.org
MIT License
16 stars 0 forks source link

Yukon test fails on Windows 2019 runner with npcap pre-installed. #401

Closed clyde-johnston closed 11 months ago

clyde-johnston commented 1 year ago

During the pytest, the app tries to open a udp socket and create a multicast group on the loopback address using WinSock. This stackoverflow may give a clue how to fix it. It suggests not terminating the program in order to keep the socket open. The WinSock error code is [WSAEADDRNOTAVAIL].

The key error line is:

.nox\pytest\Lib\site-packages\pycyphal\transport\udp_ip_v4.py:127: in make_input_socket 359 raise InvalidMediaConfigurationError( 360 E pycyphal.transport._error.InvalidMediaConfigurationError: Could not register multicast group membership 239.0.29.85 via 127.0.0.0 using <socket.socket [closed] fd=-1, family=2, type=2, proto=17> [WSAEADDRNOTAVAIL]

silverv commented 12 months ago

I was able to reproduce this on a PC (according to Yukon with no npcap installed) in a non-test setup just now:

23-09-08 13:41:55 Frontend E: Error: Traceback (most recent call last):
File "C:\Users\silver\Documents\yukon\yukon\services\cyphal_worker\attach_transport_work.py", line 36, in do_attach_transport_work
state.cyphal.pseudo_transport.attach_inferior(new_transport)
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\redundant\_redundant_transport.py", line 160, in attach_inferior
self._construct_inferior_session(transport, redundant_session)
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\redundant\_redundant_transport.py", line 333, in _construct_inferior_session
inferior: pycyphal.transport.Session = transport.get_input_session(owner.specifier, owner.payload_metadata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\udp\_udp.py", line 175, in get_input_session
sock = self._sock_factory.make_input_socket(self.local_node_id, specifier.data_specifier)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\udp\_ip\_v4.py", line 127, in make_input_socket
raise InvalidMediaConfigurationError(
pycyphal.transport._error.InvalidMediaConfigurationError: Could not register multicast group membership 239.0.29.85 via 127.0.0.0 using [WSAEADDRNOTAVAIL]
23-09-08 13:41:55 Frontend E: Traceback (most recent call last):
File "C:\Users\silver\Documents\yukon\yukon\services\cyphal_worker\attach_transport_work.py", line 36, in do_attach_transport_work
state.cyphal.pseudo_transport.attach_inferior(new_transport)
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\redundant\_redundant_transport.py", line 160, in attach_inferior
self._construct_inferior_session(transport, redundant_session)
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\redundant\_redundant_transport.py", line 333, in _construct_inferior_session
inferior: pycyphal.transport.Session = transport.get_input_session(owner.specifier, owner.payload_metadata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\udp\_udp.py", line 175, in get_input_session
sock = self._sock_factory.make_input_socket(self.local_node_id, specifier.data_specifier)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\udp\_ip\_v4.py", line 127, in make_input_socket
raise InvalidMediaConfigurationError(
pycyphal.transport._error.InvalidMediaConfigurationError: Could not register multicast group membership 239.0.29.85 via 127.0.0.0 using [WSAEADDRNOTAVAIL]

however the Npcap installer says this: image After closing Yukon, Npcap is able to install With Npcap installed, I can reproduce the problem:

23-09-08 13:51:33 Frontend E: Error: Traceback (most recent call last):
File "C:\Users\silver\Documents\yukon\yukon\services\cyphal_worker\attach_transport_work.py", line 36, in do_attach_transport_work
state.cyphal.pseudo_transport.attach_inferior(new_transport)
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\redundant\_redundant_transport.py", line 160, in attach_inferior
self._construct_inferior_session(transport, redundant_session)
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\redundant\_redundant_transport.py", line 333, in _construct_inferior_session
inferior: pycyphal.transport.Session = transport.get_input_session(owner.specifier, owner.payload_metadata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\udp\_udp.py", line 175, in get_input_session
sock = self._sock_factory.make_input_socket(self.local_node_id, specifier.data_specifier)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\udp\_ip\_v4.py", line 127, in make_input_socket
raise InvalidMediaConfigurationError(
pycyphal.transport._error.InvalidMediaConfigurationError: Could not register multicast group membership 239.0.29.85 via 127.0.0.0 using [WSAEADDRNOTAVAIL]
23-09-08 13:51:33 Frontend E: Traceback (most recent call last):
File "C:\Users\silver\Documents\yukon\yukon\services\cyphal_worker\attach_transport_work.py", line 36, in do_attach_transport_work
state.cyphal.pseudo_transport.attach_inferior(new_transport)
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\redundant\_redundant_transport.py", line 160, in attach_inferior
self._construct_inferior_session(transport, redundant_session)
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\redundant\_redundant_transport.py", line 333, in _construct_inferior_session
inferior: pycyphal.transport.Session = transport.get_input_session(owner.specifier, owner.payload_metadata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\udp\_udp.py", line 175, in get_input_session
sock = self._sock_factory.make_input_socket(self.local_node_id, specifier.data_specifier)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\silver\Documents\yukon\venv\Lib\site-packages\pycyphal\transport\udp\_ip\_v4.py", line 127, in make_input_socket
raise InvalidMediaConfigurationError(
pycyphal.transport._error.InvalidMediaConfigurationError: Could not register multicast group membership 239.0.29.85 via 127.0.0.0 using [WSAEADDRNOTAVAIL]

Now when I change 127.0.0.0 addresses in Yukon to 127.0.0.1, then the problem disappears.

silverv commented 12 months ago

The tests pass on a 4.8GHz processor with 32GB of RAM:

(venv) C:\Users\silver\Documents\yukon>nox -s pytest
nox > Running session pytest
nox > Creating virtual environment (virtualenv) using python.exe in .nox\pytest
nox > pip install -r dev-requirements.txt
Collecting pyinstaller==5.6.* (from -r dev-requirements.txt (line 1))
  Using cached pyinstaller-5.6.2-py3-none-win_amd64.whl (1.2 MB)
Collecting parsimonious (from -r dev-requirements.txt (line 2))
  Using cached parsimonious-0.10.0-py3-none-any.whl (48 kB)
Collecting nox==2022.8.* (from -r dev-requirements.txt (line 3))
  Using cached nox-2022.8.7-py3-none-any.whl (53 kB)
Collecting types-PyYAML (from -r dev-requirements.txt (line 4))
  Obtaining dependency information for types-PyYAML from https://files.pythonhosted.org/packages/da/14/7ee3c82b073aa56ba51a7c61e1c37045171fde3d7e60a6e2b1763bdb455c/types_PyYAML-6.0.12.11-py3-none-any.whl.metadata
  Downloading types_PyYAML-6.0.12.11-py3-none-any.whl.metadata (1.4 kB)
Collecting Pillow==9.* (from -r dev-requirements.txt (line 5))
  Using cached Pillow-9.5.0-cp311-cp311-win_amd64.whl (2.5 MB)
Collecting pytest~=7.1 (from -r dev-requirements.txt (line 6))
  Obtaining dependency information for pytest~=7.1 from https://files.pythonhosted.org/packages/df/d0/e192c4275aecabf74faa1aacd75ef700091913236ec78b1a98f62a2412ee/pytest-7.4.2-py3-none-any.whl.metadata
  Downloading pytest-7.4.2-py3-none-any.whl.metadata (7.9 kB)
Collecting pytest-asyncio~=0.18.3 (from -r dev-requirements.txt (line 7))
  Using cached pytest_asyncio-0.18.3-1-py3-none-any.whl (14 kB)
Collecting aiohttp~=3.8.3 (from -r dev-requirements.txt (line 8))
  Obtaining dependency information for aiohttp~=3.8.3 from https://files.pythonhosted.org/packages/21/4e/452858698e53ddf06ea137eac268db535c9605394c27236f9986168dd82f/aiohttp-3.8.5-cp311-cp311-win_amd64.whl.metadata
  Downloading aiohttp-3.8.5-cp311-cp311-win_amd64.whl.metadata (8.0 kB)
Collecting psutil (from -r dev-requirements.txt (line 9))
  Using cached psutil-5.9.5-cp36-abi3-win_amd64.whl (255 kB)
Requirement already satisfied: setuptools in c:\users\silver\documents\yukon\.nox\pytest\lib\site-packages (from pyinstaller==5.6.*->-r dev-requirements.txt (line 1)) (68.1.2)
Collecting altgraph (from pyinstaller==5.6.*->-r dev-requirements.txt (line 1))
  Using cached altgraph-0.17.3-py2.py3-none-any.whl (21 kB)
Collecting pyinstaller-hooks-contrib>=2021.4 (from pyinstaller==5.6.*->-r dev-requirements.txt (line 1))
  Obtaining dependency information for pyinstaller-hooks-contrib>=2021.4 from https://files.pythonhosted.org/packages/90/6e/642935b6470115eb10339ffd843ee7dbbd7ea2f2ec9bb8cca439c6b3286e/pyinstaller_hooks_contrib-2023.8-py2.py3-none-any.whl.metadata
  Downloading pyinstaller_hooks_contrib-2023.8-py2.py3-none-any.whl.metadata (15 kB)
Collecting pefile>=2022.5.30 (from pyinstaller==5.6.*->-r dev-requirements.txt (line 1))
  Using cached pefile-2023.2.7-py3-none-any.whl (71 kB)
Collecting pywin32-ctypes>=0.2.0 (from pyinstaller==5.6.*->-r dev-requirements.txt (line 1))
  Obtaining dependency information for pywin32-ctypes>=0.2.0 from https://files.pythonhosted.org/packages/a4/bc/78b2c00cc64c31dbb3be42a0e8600bcebc123ad338c3b714754d668c7c2d/pywin32_ctypes-0.2.2-py3-none-any.whl.metadata
  Downloading pywin32_ctypes-0.2.2-py3-none-any.whl.metadata (3.8 kB)
Collecting argcomplete<3.0,>=1.9.4 (from nox==2022.8.*->-r dev-requirements.txt (line 3))
  Using cached argcomplete-2.1.2-py3-none-any.whl (37 kB)
Collecting colorlog<7.0.0,>=2.6.1 (from nox==2022.8.*->-r dev-requirements.txt (line 3))
  Using cached colorlog-6.7.0-py2.py3-none-any.whl (11 kB)
Collecting packaging>=20.9 (from nox==2022.8.*->-r dev-requirements.txt (line 3))
  Using cached packaging-23.1-py3-none-any.whl (48 kB)
Collecting py<2.0.0,>=1.4 (from nox==2022.8.*->-r dev-requirements.txt (line 3))
  Using cached py-1.11.0-py2.py3-none-any.whl (98 kB)
Collecting virtualenv>=14 (from nox==2022.8.*->-r dev-requirements.txt (line 3))
  Obtaining dependency information for virtualenv>=14 from https://files.pythonhosted.org/packages/48/87/0ff871ebe003075d61e1abeab67c21d50edf44dbfdeabd107bef30a9e027/virtualenv-20.24.4-py3-none-any.whl.metadata
  Downloading virtualenv-20.24.4-py3-none-any.whl.metadata (4.5 kB)
Collecting regex>=2022.3.15 (from parsimonious->-r dev-requirements.txt (line 2))
  Obtaining dependency information for regex>=2022.3.15 from https://files.pythonhosted.org/packages/de/cd/d80c9e284ae6c1b2172dacf0651d25b78ee1f7efbc12d74ea7b87c766263/regex-2023.8.8-cp311-cp311-win_amd64.whl.metadata
  Downloading regex-2023.8.8-cp311-cp311-win_amd64.whl.metadata (42 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.0/42.0 kB 2.1 MB/s eta 0:00:00
Collecting iniconfig (from pytest~=7.1->-r dev-requirements.txt (line 6))
  Using cached iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
Collecting pluggy<2.0,>=0.12 (from pytest~=7.1->-r dev-requirements.txt (line 6))
  Obtaining dependency information for pluggy<2.0,>=0.12 from https://files.pythonhosted.org/packages/05/b8/42ed91898d4784546c5f06c60506400548db3f7a4b3fb441cba4e5c17952/pluggy-1.3.0-py3-none-any.whl.metadata
  Downloading pluggy-1.3.0-py3-none-any.whl.metadata (4.3 kB)
Collecting colorama (from pytest~=7.1->-r dev-requirements.txt (line 6))
  Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting attrs>=17.3.0 (from aiohttp~=3.8.3->-r dev-requirements.txt (line 8))
  Using cached attrs-23.1.0-py3-none-any.whl (61 kB)
Collecting charset-normalizer<4.0,>=2.0 (from aiohttp~=3.8.3->-r dev-requirements.txt (line 8))
  Obtaining dependency information for charset-normalizer<4.0,>=2.0 from https://files.pythonhosted.org/packages/91/6e/db0e545302bf93b6dbbdc496dd192c7f8e8c3bb1584acba069256d8b51d4/charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl.metadata
  Downloading charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl.metadata (31 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp~=3.8.3->-r dev-requirements.txt (line 8))
  Using cached multidict-6.0.4-cp311-cp311-win_amd64.whl (28 kB)
Collecting async-timeout<5.0,>=4.0.0a3 (from aiohttp~=3.8.3->-r dev-requirements.txt (line 8))
  Obtaining dependency information for async-timeout<5.0,>=4.0.0a3 from https://files.pythonhosted.org/packages/a7/fa/e01228c2938de91d47b307831c62ab9e4001e747789d0b05baf779a6488c/async_timeout-4.0.3-py3-none-any.whl.metadata
  Downloading async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB)
Collecting yarl<2.0,>=1.0 (from aiohttp~=3.8.3->-r dev-requirements.txt (line 8))
  Using cached yarl-1.9.2-cp311-cp311-win_amd64.whl (60 kB)
Collecting frozenlist>=1.1.1 (from aiohttp~=3.8.3->-r dev-requirements.txt (line 8))
  Obtaining dependency information for frozenlist>=1.1.1 from https://files.pythonhosted.org/packages/39/16/72d9ccd30815d0b37218348f053be37bc3d14288ac192a794a39990ac28e/frozenlist-1.4.0-cp311-cp311-win_amd64.whl.metadata
  Downloading frozenlist-1.4.0-cp311-cp311-win_amd64.whl.metadata (5.3 kB)
Collecting aiosignal>=1.1.2 (from aiohttp~=3.8.3->-r dev-requirements.txt (line 8))
  Downloading aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Collecting distlib<1,>=0.3.7 (from virtualenv>=14->nox==2022.8.*->-r dev-requirements.txt (line 3))
  Obtaining dependency information for distlib<1,>=0.3.7 from https://files.pythonhosted.org/packages/43/a0/9ba967fdbd55293bacfc1507f58e316f740a3b231fc00e3d86dc39bc185a/distlib-0.3.7-py2.py3-none-any.whl.metadata
  Downloading distlib-0.3.7-py2.py3-none-any.whl.metadata (5.1 kB)
Collecting filelock<4,>=3.12.2 (from virtualenv>=14->nox==2022.8.*->-r dev-requirements.txt (line 3))
  Obtaining dependency information for filelock<4,>=3.12.2 from https://files.pythonhosted.org/packages/52/90/45223db4e1df30ff14e8aebf9a1bf0222da2e7b49e53692c968f36817812/filelock-3.12.3-py3-none-any.whl.metadata
  Downloading filelock-3.12.3-py3-none-any.whl.metadata (2.7 kB)
Collecting platformdirs<4,>=3.9.1 (from virtualenv>=14->nox==2022.8.*->-r dev-requirements.txt (line 3))
  Obtaining dependency information for platformdirs<4,>=3.9.1 from https://files.pythonhosted.org/packages/14/51/fe5a0d6ea589f0d4a1b97824fb518962ad48b27cd346dcdfa2405187997a/platformdirs-3.10.0-py3-none-any.whl.metadata
  Downloading platformdirs-3.10.0-py3-none-any.whl.metadata (11 kB)
Collecting idna>=2.0 (from yarl<2.0,>=1.0->aiohttp~=3.8.3->-r dev-requirements.txt (line 8))
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Using cached types_PyYAML-6.0.12.11-py3-none-any.whl (14 kB)
Using cached pytest-7.4.2-py3-none-any.whl (324 kB)
Using cached aiohttp-3.8.5-cp311-cp311-win_amd64.whl (320 kB)
Using cached async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Using cached charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl (96 kB)
Using cached frozenlist-1.4.0-cp311-cp311-win_amd64.whl (44 kB)
Using cached pluggy-1.3.0-py3-none-any.whl (18 kB)
Using cached pyinstaller_hooks_contrib-2023.8-py2.py3-none-any.whl (282 kB)
Using cached pywin32_ctypes-0.2.2-py3-none-any.whl (30 kB)
Using cached regex-2023.8.8-cp311-cp311-win_amd64.whl (268 kB)
Using cached virtualenv-20.24.4-py3-none-any.whl (3.7 MB)
Using cached distlib-0.3.7-py2.py3-none-any.whl (468 kB)
Using cached filelock-3.12.3-py3-none-any.whl (11 kB)
Using cached platformdirs-3.10.0-py3-none-any.whl (17 kB)
Installing collected packages: types-PyYAML, distlib, altgraph, regex, pywin32-ctypes, pyinstaller-hooks-contrib, py, psutil, pluggy, platformdirs, Pillow, pefile, packaging, multidict, iniconfig, idna, frozenlist, filelock, colorama, charset-normalizer, attrs, async-timeout, argcomplete, yarl, virtualenv, pytest, pyinstaller, parsimonious, colorlog, aiosignal, pytest-asyncio, nox, aiohttp
Successfully installed Pillow-9.5.0 aiohttp-3.8.5 aiosignal-1.3.1 altgraph-0.17.3 argcomplete-2.1.2 async-timeout-4.0.3 attrs-23.1.0 charset-normalizer-3.2.0 colorama-0.4.6 colorlog-6.7.0 distlib-0.3.7 filelock-3.12.3 frozenlist-1.4.0 idna-3.4 iniconfig-2.0.0 multidict-6.0.4 nox-2022.8.7 packaging-23.1 parsimonious-0.10.0 pefile-2023.2.7 platformdirs-3.10.0 pluggy-1.3.0 psutil-5.9.5 py-1.11.0 pyinstaller-5.6.2 pyinstaller-hooks-contrib-2023.8 pytest-7.4.2 pytest-asyncio-0.18.3 pywin32-ctypes-0.2.2 regex-2023.8.8 types-PyYAML-6.0.12.11 virtualenv-20.24.4 yarl-1.9.2
nox > pip install -r requirements.txt
Ignoring importlib_resources: markers 'python_version < "3.7"' don't match your environment
Collecting libpcap==1.10.0b15 (from -r requirements.txt (line 1))
  Using cached libpcap-1.10.0b15.zip (970 kB)
  Preparing metadata (setup.py) ... done
Collecting python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0 (from -r requirements.txt (line 2))
  Using cached python_can-4.0.0-py3-none-any.whl (235 kB)
Collecting pycyphal[transport-can-pythoncan,transport-serial,transport-udp] (from -r requirements.txt (line 3))
  Obtaining dependency information for pycyphal[transport-can-pythoncan,transport-serial,transport-udp] from https://files.pythonhosted.org/packages/5b/09/163f793cec38cc85fbe5312090eca9e987f0f7ababd7a0f2694d2073183f/pycyphal-1.15.4-py3-none-any.whl.metadata
  Downloading pycyphal-1.15.4-py3-none-any.whl.metadata (4.1 kB)
Collecting sentry-sdk==1.* (from -r requirements.txt (line 4))
  Obtaining dependency information for sentry-sdk==1.* from https://files.pythonhosted.org/packages/17/22/dbd5f854f373214d48585eeb6844e50a8dd1600f435d9033493f76f66dfa/sentry_sdk-1.30.0-py2.py3-none-any.whl.metadata
  Downloading sentry_sdk-1.30.0-py2.py3-none-any.whl.metadata (9.6 kB)
Requirement already satisfied: pytest in c:\users\silver\documents\yukon\.nox\pytest\lib\site-packages (from -r requirements.txt (line 5)) (7.4.2)
Requirement already satisfied: setuptools in c:\users\silver\documents\yukon\.nox\pytest\lib\site-packages (from -r requirements.txt (line 6)) (68.1.2)
Collecting numpy (from -r requirements.txt (line 7))
  Obtaining dependency information for numpy from https://files.pythonhosted.org/packages/72/b2/02770e60c4e2f7e158d923ab0dea4e9f146a2dbf267fec6d8dc61d475689/numpy-1.25.2-cp311-cp311-win_amd64.whl.metadata
  Downloading numpy-1.25.2-cp311-cp311-win_amd64.whl.metadata (5.7 kB)
Collecting proxy_tools (from -r requirements.txt (line 9))
  Using cached proxy_tools-0.1.0.tar.gz (3.0 kB)
  Preparing metadata (setup.py) ... done
Collecting Flask==2.2.* (from -r requirements.txt (line 10))
  Using cached Flask-2.2.5-py3-none-any.whl (101 kB)
Collecting python-can==4.* (from -r requirements.txt (line 11))
  Obtaining dependency information for python-can==4.* from https://files.pythonhosted.org/packages/a1/8a/c8228e4a54e9f64882a514b7eb39787e4d425a1f0b41908f0c0cd86e8d50/python_can-4.2.2-py3-none-any.whl.metadata
  Downloading python_can-4.2.2-py3-none-any.whl.metadata (8.3 kB)
Collecting requests (from -r requirements.txt (line 12))
  Obtaining dependency information for requests from https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl.metadata
  Downloading requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting websockets==10.* (from -r requirements.txt (line 13))
  Using cached websockets-10.4-cp311-cp311-win_amd64.whl (101 kB)
Collecting PyYAML==6.* (from -r requirements.txt (line 14))
  Obtaining dependency information for PyYAML==6.* from https://files.pythonhosted.org/packages/b3/34/65bb4b2d7908044963ebf614fe0fdb080773fc7030d7e39c8d3eddcd4257/PyYAML-6.0.1-cp311-cp311-win_amd64.whl.metadata
  Downloading PyYAML-6.0.1-cp311-cp311-win_amd64.whl.metadata (2.1 kB)
Collecting ruamel.yaml~=0.17.21 (from -r requirements.txt (line 15))
  Obtaining dependency information for ruamel.yaml~=0.17.21 from https://files.pythonhosted.org/packages/d9/0e/2a05efa11ea33513fbdf4a2e2576fe94fd8fa5ad226dbb9c660886390974/ruamel.yaml-0.17.32-py3-none-any.whl.metadata
  Downloading ruamel.yaml-0.17.32-py3-none-any.whl.metadata (17 kB)
Collecting pkg_about (from -r requirements.txt (line 16))
  Using cached pkg_about-1.0.8-py3-none-any.whl (5.7 kB)
Collecting pydsdl (from -r requirements.txt (line 17))
  Obtaining dependency information for pydsdl from https://files.pythonhosted.org/packages/49/b9/ae63b0379a7701f1f4cd70e3ae32cdfc8908fa8aa739efa6f7fc0726bda9/pydsdl-1.20.1-py3-none-any.whl.metadata
  Downloading pydsdl-1.20.1-py3-none-any.whl.metadata (2.1 kB)
Collecting dronecan (from -r requirements.txt (line 18))
  Obtaining dependency information for dronecan from https://files.pythonhosted.org/packages/53/d4/85b443fc8904db1b4bfbeb2905c499714cd49cde17b6e3f502f839caf9b1/dronecan-1.0.25-py3-none-any.whl.metadata
  Downloading dronecan-1.0.25-py3-none-any.whl.metadata (1.9 kB)
Collecting wrapt~=1.10 (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Using cached wrapt-1.15.0-cp311-cp311-win_amd64.whl (36 kB)
Collecting typing-extensions>=3.10.0.0 (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Obtaining dependency information for typing-extensions>=3.10.0.0 from https://files.pythonhosted.org/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl.metadata
  Downloading typing_extensions-4.7.1-py3-none-any.whl.metadata (3.1 kB)
Requirement already satisfied: packaging in c:\users\silver\documents\yukon\.nox\pytest\lib\site-packages (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2)) (23.1)
Collecting windows-curses (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Using cached windows_curses-2.3.1-cp311-cp311-win_amd64.whl (80 kB)
Collecting pywin32 (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Using cached pywin32-306-cp311-cp311-win_amd64.whl (9.2 MB)
Collecting canalystii>=0.1.0 (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Using cached canalystii-0.1-py3-none-any.whl (10 kB)
Collecting gs-usb>=0.2.1 (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Using cached gs_usb-0.3.0-py2.py3-none-any.whl (7.3 kB)
Requirement already satisfied: filelock in c:\users\silver\documents\yukon\.nox\pytest\lib\site-packages (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2)) (3.12.3)
Collecting python-ics>=2.12 (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Obtaining dependency information for python-ics>=2.12 from https://files.pythonhosted.org/packages/cb/26/7749343520ad29c6a4c48cf7d2d96ed8dd2b2bc0005ec129b236d73b1412/python_ics-912.4.post1-cp311-cp311-win_amd64.whl.metadata
  Downloading python_ics-912.4.post1-cp311-cp311-win_amd64.whl.metadata (3.0 kB)
Collecting nixnet>=0.3.1 (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Using cached nixnet-0.3.2-py2.py3-none-any.whl (152 kB)
Collecting uptime~=3.0.1 (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Using cached uptime-3.0.1.tar.gz (6.6 kB)
  Preparing metadata (setup.py) ... done
Collecting pyserial>=3.0 (from python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Using cached pyserial-3.5-py2.py3-none-any.whl (90 kB)
Collecting certifi (from sentry-sdk==1.*->-r requirements.txt (line 4))
  Obtaining dependency information for certifi from https://files.pythonhosted.org/packages/4c/dd/2234eab22353ffc7d94e8d13177aaa050113286e93e7b40eae01fbf7c3d9/certifi-2023.7.22-py3-none-any.whl.metadata
  Downloading certifi-2023.7.22-py3-none-any.whl.metadata (2.2 kB)
Collecting urllib3>=1.26.11 (from sentry-sdk==1.*->-r requirements.txt (line 4))
  Obtaining dependency information for urllib3>=1.26.11 from https://files.pythonhosted.org/packages/9b/81/62fd61001fa4b9d0df6e31d47ff49cfa9de4af03adecf339c7bc30656b37/urllib3-2.0.4-py3-none-any.whl.metadata
  Downloading urllib3-2.0.4-py3-none-any.whl.metadata (6.6 kB)
Collecting Werkzeug>=2.2.2 (from Flask==2.2.*->-r requirements.txt (line 10))
  Obtaining dependency information for Werkzeug>=2.2.2 from https://files.pythonhosted.org/packages/9b/59/a7c32e3d8d0e546a206e0552a2c04444544f15c1da4a01df8938d20c6ffc/werkzeug-2.3.7-py3-none-any.whl.metadata
  Downloading werkzeug-2.3.7-py3-none-any.whl.metadata (4.1 kB)
Collecting Jinja2>=3.0 (from Flask==2.2.*->-r requirements.txt (line 10))
  Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting itsdangerous>=2.0 (from Flask==2.2.*->-r requirements.txt (line 10))
  Using cached itsdangerous-2.1.2-py3-none-any.whl (15 kB)
Collecting click>=8.0 (from Flask==2.2.*->-r requirements.txt (line 10))
  Obtaining dependency information for click>=8.0 from https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl.metadata
  Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting nunavut~=1.7 (from pycyphal[transport-can-pythoncan,transport-serial,transport-udp]->-r requirements.txt (line 3))
  Using cached nunavut-1.9.0-3124554183-py3-none-any.whl (333 kB)
Collecting cobs~=1.1.4 (from pycyphal[transport-can-pythoncan,transport-serial,transport-udp]->-r requirements.txt (line 3))
  Using cached cobs-1.1.4.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: iniconfig in c:\users\silver\documents\yukon\.nox\pytest\lib\site-packages (from pytest->-r requirements.txt (line 5)) (2.0.0)
Requirement already satisfied: pluggy<2.0,>=0.12 in c:\users\silver\documents\yukon\.nox\pytest\lib\site-packages (from pytest->-r requirements.txt (line 5)) (1.3.0)
Requirement already satisfied: colorama in c:\users\silver\documents\yukon\.nox\pytest\lib\site-packages (from pytest->-r requirements.txt (line 5)) (0.4.6)
Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\silver\documents\yukon\.nox\pytest\lib\site-packages (from requests->-r requirements.txt (line 12)) (3.2.0)
Requirement already satisfied: idna<4,>=2.5 in c:\users\silver\documents\yukon\.nox\pytest\lib\site-packages (from requests->-r requirements.txt (line 12)) (3.4)
Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml~=0.17.21->-r requirements.txt (line 15))
  Using cached ruamel.yaml.clib-0.2.7-cp311-cp311-win_amd64.whl (101 kB)
Collecting importlib-resources>=5.7.1 (from pkg_about->-r requirements.txt (line 16))
  Obtaining dependency information for importlib-resources>=5.7.1 from https://files.pythonhosted.org/packages/25/d4/592f53ce2f8dde8be5720851bd0ab71cc2e76c55978e4163ef1ab7e389bb/importlib_resources-6.0.1-py3-none-any.whl.metadata
  Downloading importlib_resources-6.0.1-py3-none-any.whl.metadata (4.0 kB)
Collecting importlib-metadata>=4.12.0 (from pkg_about->-r requirements.txt (line 16))
  Obtaining dependency information for importlib-metadata>=4.12.0 from https://files.pythonhosted.org/packages/cc/37/db7ba97e676af155f5fcb1a35466f446eadc9104e25b83366e8088c9c926/importlib_metadata-6.8.0-py3-none-any.whl.metadata
  Downloading importlib_metadata-6.8.0-py3-none-any.whl.metadata (5.1 kB)
Collecting tomli>=2.0.1 (from pkg_about->-r requirements.txt (line 16))
  Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting pyusb>=1.2.0 (from canalystii>=0.1.0->python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Using cached pyusb-1.2.1-py3-none-any.whl (58 kB)
Collecting zipp>=0.5 (from importlib-metadata>=4.12.0->pkg_about->-r requirements.txt (line 16))
  Obtaining dependency information for zipp>=0.5 from https://files.pythonhosted.org/packages/8c/08/d3006317aefe25ea79d3b76c9650afabaf6d63d1c8443b236e7405447503/zipp-3.16.2-py3-none-any.whl.metadata
  Downloading zipp-3.16.2-py3-none-any.whl.metadata (3.7 kB)
Collecting MarkupSafe>=2.0 (from Jinja2>=3.0->Flask==2.2.*->-r requirements.txt (line 10))
  Obtaining dependency information for MarkupSafe>=2.0 from https://files.pythonhosted.org/packages/be/bb/08b85bc194034efbf572e70c3951549c8eca0ada25363afc154386b5390a/MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl.metadata
  Downloading MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl.metadata (3.1 kB)
Collecting six (from nixnet>=0.3.1->python-can[canalystii,gs_usb,neovi,nixnet,pcan,seeedstudio,serial]==4.0.0->-r requirements.txt (line 2))
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Using cached sentry_sdk-1.30.0-py2.py3-none-any.whl (218 kB)
Using cached PyYAML-6.0.1-cp311-cp311-win_amd64.whl (144 kB)
Using cached numpy-1.25.2-cp311-cp311-win_amd64.whl (15.5 MB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached ruamel.yaml-0.17.32-py3-none-any.whl (112 kB)
Using cached pydsdl-1.20.1-py3-none-any.whl (102 kB)
Using cached dronecan-1.0.25-py3-none-any.whl (153 kB)
Using cached certifi-2023.7.22-py3-none-any.whl (158 kB)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Using cached importlib_metadata-6.8.0-py3-none-any.whl (22 kB)
Using cached importlib_resources-6.0.1-py3-none-any.whl (34 kB)
Using cached python_ics-912.4.post1-cp311-cp311-win_amd64.whl (184 kB)
Using cached typing_extensions-4.7.1-py3-none-any.whl (33 kB)
Using cached urllib3-2.0.4-py3-none-any.whl (123 kB)
Using cached werkzeug-2.3.7-py3-none-any.whl (242 kB)
Using cached pycyphal-1.15.4-py3-none-any.whl (358 kB)
Using cached MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl (17 kB)
Using cached zipp-3.16.2-py3-none-any.whl (7.2 kB)
Building wheels for collected packages: libpcap, proxy_tools, cobs, uptime
  Building wheel for libpcap (setup.py) ... done
  Created wheel for libpcap: filename=libpcap-1.10.0b15-py3-none-any.whl size=931372 sha256=a1fee91b5e1b672eda98bf71cf038ba45f797e21dee654f0e9d656fdda546581
  Stored in directory: c:\users\silver\appdata\local\pip\cache\wheels\9c\45\d9\781537decb1d1c218065029d1817c63d03d680d6ac9864a3ff
  Building wheel for proxy_tools (setup.py) ... done
  Created wheel for proxy_tools: filename=proxy_tools-0.1.0-py3-none-any.whl size=2913 sha256=c9fffc17e39ce6a2405cca135ffafadc4796e1fe02e9e3ab15261620f5b5bb69
  Stored in directory: c:\users\silver\appdata\local\pip\cache\wheels\2b\5f\96\7e96e7cbf06e426e168a6891a6ca2226787cc79fc816830dd4
  Building wheel for cobs (setup.py) ... done
  Created wheel for cobs: filename=cobs-1.1.4-cp311-cp311-win_amd64.whl size=25908 sha256=7d1e5993494c7670844d8a65413a41960a6606776b022104dfecc325bab830e8
  Stored in directory: c:\users\silver\appdata\local\pip\cache\wheels\98\28\73\90232309d13806cb31513b6df701b501bc433ac890f84298bb
  Building wheel for uptime (setup.py) ... done
  Created wheel for uptime: filename=uptime-3.0.1-cp311-cp311-win_amd64.whl size=6380 sha256=1fa8a11e5f24d0c5b301947067242fe6e36f7710c89a588a8bc8b48cede29c68
  Stored in directory: c:\users\silver\appdata\local\pip\cache\wheels\d4\d4\7a\51f62518c8c877696d0364892317febdb7f1e9a8e1ab372ccd
Successfully built libpcap proxy_tools cobs uptime
Installing collected packages: windows-curses, uptime, pywin32, python-ics, pyserial, pydsdl, proxy_tools, dronecan, cobs, zipp, wrapt, websockets, urllib3, typing-extensions, tomli, six, ruamel.yaml.clib, PyYAML, pyusb, numpy, MarkupSafe, libpcap, itsdangerous, importlib-resources, click, certifi, Werkzeug, sentry-sdk, ruamel.yaml, requests, python-can, nunavut, nixnet, Jinja2, importlib-metadata, gs-usb, canalystii, pycyphal, pkg_about, Flask
Successfully installed Flask-2.2.5 Jinja2-3.1.2 MarkupSafe-2.1.3 PyYAML-6.0.1 Werkzeug-2.3.7 canalystii-0.1 certifi-2023.7.22 click-8.1.7 cobs-1.1.4 dronecan-1.0.25 gs-usb-0.3.0 importlib-metadata-6.8.0 importlib-resources-6.0.1 itsdangerous-2.1.2 libpcap-1.10.0b15 nixnet-0.3.2 numpy-1.25.2 nunavut-1.9.0 pkg_about-1.0.8 proxy_tools-0.1.0 pycyphal-1.15.4 pydsdl-1.20.1 
pyserial-3.5 python-can-4.0.0 python-ics-912.4.post1 pyusb-1.2.1 pywin32-306 requests-2.31.0 ruamel.yaml-0.17.32 ruamel.yaml.clib-0.2.7 sentry-sdk-1.30.0 six-1.16.0 tomli-2.0.1 typing-extensions-4.7.1 uptime-3.0.1 urllib3-2.0.4 websockets-10.4 windows-curses-2.3.1 wrapt-1.15.0 zipp-3.16.2
nox > pytest tests/src/necessary/test_api.py
.....                                                                                                                                                                             [100%]
=================================================================================== warnings summary =================================================================================== 
tests/src/necessary/test_api.py: 18 warnings
  C:\Users\silver\Documents\yukon\.compiled\uavcan\node\port\SubjectIDList_0_1.py:61: DeprecationWarning: Data type uavcan.node.port.SubjectIDList.0.1 is deprecated
    _warnings_.warn('Data type uavcan.node.port.SubjectIDList.0.1 is deprecated', DeprecationWarning)

tests/src/necessary/test_api.py: 18 warnings
  C:\Users\silver\Documents\yukon\.compiled\uavcan\node\port\ServiceIDList_0_1.py:52: DeprecationWarning: Data type uavcan.node.port.ServiceIDList.0.1 is deprecated
    _warnings_.warn('Data type uavcan.node.port.ServiceIDList.0.1 is deprecated', DeprecationWarning)

tests/src/necessary/test_api.py::TestBackendTestSession::test_reread_register_value
tests/src/necessary/test_api.py::TestBackendTestSession::test_reread_register_value
tests/src/necessary/test_api.py::TestBackendTestSession::test_reread_register_value
tests/src/necessary/test_api.py::TestBackendTestSession::test_reread_register_value
tests/src/necessary/test_api.py::TestBackendTestSession::test_reread_register_value
tests/src/necessary/test_api.py::TestBackendTestSession::test_reread_register_value
tests/src/necessary/test_api.py::TestBackendTestSession::test_update_register_value
tests/src/necessary/test_api.py::TestBackendTestSession::test_update_register_value
tests/src/necessary/test_api.py::TestBackendTestSession::test_unsimplify_configuration
  C:\Users\silver\Documents\yukon\.compiled\uavcan\node\port\List_0_1.py:59: DeprecationWarning: Data type uavcan.node.port.List.0.1 is deprecated
    _warnings_.warn('Data type uavcan.node.port.List.0.1 is deprecated', DeprecationWarning)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
5 passed, 45 warnings in 99.88s (0:01:39)
nox > Session pytest was successful.