1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchPypi,
6 fetchpatch,
7 hpack,
8 hyperframe,
9 pytestCheckHook,
10 hypothesis,
11}:
12
13buildPythonPackage rec {
14 pname = "h2";
15 version = "4.1.0";
16 format = "setuptools";
17
18 disabled = pythonOlder "3.6";
19
20 src = fetchPypi {
21 inherit pname version;
22 hash = "sha256-qDrKCPvnqst5/seIycC6yTY0NWDtnsGLgqE6EsKNKrs=";
23 };
24
25 patches = [
26 # https://github.com/python-hyper/h2/pull/1274
27 (fetchpatch {
28 name = "fix-tests-in-python-3.11.patch";
29 url = "https://github.com/python-hyper/h2/commit/8952c91606cd014720ccf202a25b5ee1fbed1591.patch";
30 hash = "sha256-skAdAVHMZo1xJEqqKa6FOKPvoQQbGUgGsQjE11jIjtw=";
31 })
32 ];
33
34 propagatedBuildInputs = [
35 hpack
36 hyperframe
37 ];
38
39 nativeCheckInputs = [
40 pytestCheckHook
41 hypothesis
42 ];
43
44 disabledTests = [
45 # timing sensitive
46 "test_changing_max_frame_size"
47 ];
48
49 pythonImportsCheck = [
50 "h2.connection"
51 "h2.config"
52 ];
53
54 meta = with lib; {
55 description = "HTTP/2 State-Machine based protocol implementation";
56 homepage = "https://github.com/python-hyper/h2";
57 license = licenses.mit;
58 maintainers = with maintainers; [ ];
59 };
60}