1{
2 lib,
3 aioopenssl,
4 aiosasl,
5 babel,
6 buildPythonPackage,
7 dnspython,
8 fetchFromGitHub,
9 lxml,
10 multidict,
11 pyasn1-modules,
12 pyasn1,
13 pyopenssl,
14 pytestCheckHook,
15 pythonAtLeast,
16 pythonOlder,
17 pytz,
18 setuptools,
19 sortedcollections,
20 tzlocal,
21}:
22
23buildPythonPackage rec {
24 pname = "aioxmpp";
25 version = "0.13.3";
26 pyproject = true;
27
28 disabled = pythonOlder "3.7";
29
30 src = fetchFromGitHub {
31 owner = "horazont";
32 repo = "aioxmpp";
33 rev = "refs/tags/v${version}";
34 hash = "sha256-bQPKEM5eKhFI3Kx3U1espdxqjnG4yUgOXmYCrd98PDo=";
35 };
36
37 pythonRelaxDeps = [
38 "lxml"
39 ];
40
41 build-system = [ setuptools ];
42
43
44 dependencies = [
45 aiosasl
46 aioopenssl
47 babel
48 dnspython
49 lxml
50 multidict
51 pyasn1
52 pyasn1-modules
53 pyopenssl
54 pytz
55 sortedcollections
56 tzlocal
57 ];
58
59 pythonImportsCheck = [
60 "aioxmpp"
61 "aioxmpp.node"
62 "aioxmpp.security_layer"
63 "aioxmpp.stanza"
64 "aioxmpp.stream"
65 ];
66
67 nativeCheckInputs = [ pytestCheckHook ];
68
69 disabledTestPaths = [ "benchmarks" ];
70
71 disabledTests = [
72 # AttributeError: 'zoneinfo.ZoneInfo' object has no attribute 'normalize'
73 "test_convert_field_datetime_default_locale"
74 ] ++ lib.optionals (pythonAtLeast "3.12") [
75 # asyncio issues
76 "test_is_abstract"
77 "Testbackground"
78 "TestCapturingXSO"
79 "Testcheck_x509"
80 "TestClient"
81 "TestIntegerType"
82 "TestStanzaStream"
83 "TestStanzaToken"
84 "TestXMLStream"
85 ];
86
87 meta = {
88 description = "Pure-python XMPP library for asyncio";
89 homepage = "https://github.com/horazont/aioxmpp";
90 changelog = "https://github.com/horazont/aioxmpp/blob/${src.rev}/docs/api/changelog.rst";
91 license = lib.licenses.lgpl3Plus;
92 maintainers = with lib.maintainers; [ dotlambda ];
93 };
94}