1{
2 lib,
3 stdenv,
4 automat,
5 buildPythonPackage,
6 cryptography,
7 fetchPypi,
8 geoip,
9 lsof,
10 mock,
11 pytestCheckHook,
12 pythonOlder,
13 setuptools,
14 twisted,
15 zope-interface,
16}:
17
18buildPythonPackage rec {
19 pname = "txtorcon";
20 version = "24.8.0";
21 pyproject = true;
22
23 disabled = pythonOlder "3.7";
24
25 src = fetchPypi {
26 inherit pname version;
27 hash = "sha256-vv4ZE42cjFMHtu5tT+RG0MIB/9HMQErrJl7ZAwmXitA=";
28 };
29
30 build-system = [ setuptools ];
31
32 dependencies = [
33 cryptography
34 twisted
35 automat
36 zope-interface
37 ] ++ twisted.optional-dependencies.tls;
38
39 nativeCheckInputs = [
40 pytestCheckHook
41 mock
42 lsof
43 geoip
44 ];
45
46 doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64);
47
48 pythonImportsCheck = [ "txtorcon" ];
49
50 meta = with lib; {
51 description = "Twisted-based Tor controller client, with state-tracking and configuration abstractions";
52 homepage = "https://github.com/meejah/txtorcon";
53 changelog = "https://github.com/meejah/txtorcon/releases/tag/v${version}";
54 maintainers = with maintainers; [
55 jluttine
56 exarkun
57 ];
58 license = licenses.mit;
59 };
60}