{ lib , buildPythonPackage , fetchFromGitHub # build-system , poetry-core # dependencies , aiofiles , aiohttp , aiohttp-socks , h11 , h2 , jsonschema , pycryptodome , unpaddedbase64 # optional-dependencies , atomicwrites , cachetools , peewee , python-olm # tests , aioresponses , faker , hpack , hyperframe , hypothesis , pytest-aiohttp , pytest-benchmark , pytestCheckHook # passthru tests , nixosTests , opsdroid , pantalaimon , weechatScripts , zulip }: buildPythonPackage rec { pname = "matrix-nio"; version = "0.24.0"; format = "pyproject"; src = fetchFromGitHub { owner = "poljar"; repo = "matrix-nio"; rev = version; hash = "sha256-XlswVHLvKOi1qr+I7Mbm4IBjn1DG7glgDsNY48NA5Ew="; }; nativeBuildInputs = [ poetry-core ]; propagatedBuildInputs = [ aiofiles aiohttp aiohttp-socks h11 h2 jsonschema pycryptodome unpaddedbase64 ]; passthru.optional-dependencies = { e2e = [ atomicwrites cachetools python-olm peewee ]; }; nativeCheckInputs = [ aioresponses faker hpack hyperframe hypothesis pytest-aiohttp pytest-benchmark pytestCheckHook ] ++ passthru.optional-dependencies.e2e; pytestFlagsArray = [ "--benchmark-disable" ]; disabledTests = [ # touches network "test_connect_wrapper" # time dependent and flaky "test_transfer_monitor_callbacks" ]; passthru.tests = { inherit (nixosTests) dendrite matrix-appservice-irc matrix-conduit mjolnir ; inherit (weechatScripts) weechat-matrix ; inherit opsdroid pantalaimon zulip ; }; meta = with lib; { homepage = "https://github.com/poljar/matrix-nio"; changelog = "https://github.com/poljar/matrix-nio/blob/${version}/CHANGELOG.md"; description = "A Python Matrix client library, designed according to sans I/O principles"; license = licenses.isc; maintainers = with maintainers; [ tilpner emily symphorien ]; }; }