1{ lib
2, stdenv
3, buildPythonPackage
4, fetchFromGitHub
5, exceptiongroup
6, pytest-trio
7, pytestCheckHook
8, trio
9, trustme
10, wsproto
11}:
12
13buildPythonPackage rec {
14 pname = "trio-websocket";
15 version = "0.10.2";
16 format = "setuptools";
17
18 src = fetchFromGitHub {
19 owner = "HyperionGray";
20 repo = "trio-websocket";
21 rev = version;
22 hash = "sha256-djoTxkIKY52l+WnxL1FwlqrU/zvsLVkPUAHn9BxJ45k=";
23 };
24
25 propagatedBuildInputs = [
26 exceptiongroup
27 trio
28 wsproto
29 ];
30
31 nativeCheckInputs = [
32 pytest-trio
33 pytestCheckHook
34 trustme
35 ];
36
37 disabledTests = lib.optionals stdenv.isDarwin [
38 # Failed: DID NOT RAISE <class 'ValueError'>
39 "test_finalization_dropped_exception"
40 # Timing related
41 "test_client_close_timeout"
42 "test_cm_exit_with_pending_messages"
43 "test_server_close_timeout"
44 "test_server_handler_exit"
45 "test_server_open_timeout"
46 ];
47
48 __darwinAllowLocalNetworking = true;
49
50 pythonImportsCheck = [ "trio_websocket" ];
51
52 meta = with lib; {
53 changelog = "https://github.com/HyperionGray/trio-websocket/blob/${version}/CHANGELOG.md";
54 description = "WebSocket client and server implementation for Python Trio";
55 homepage = "https://github.com/HyperionGray/trio-websocket";
56 license = licenses.mit;
57 maintainers = with maintainers; [ SuperSandro2000 ];
58 };
59}