1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 setuptools, 6 aiohttp, 7 bcrypt, 8 pyopenssl, 9 python-gnupg, 10 requests, 11 pytestCheckHook, 12 pyotp, 13 pytest-cov-stub, 14}: 15 16buildPythonPackage rec { 17 pname = "proton-core"; 18 version = "0.4.0"; 19 pyproject = true; 20 21 src = fetchFromGitHub { 22 owner = "ProtonVPN"; 23 repo = "python-proton-core"; 24 tag = "v${version}"; 25 hash = "sha256-EZsPw2kPgY42MQxrXt7yAtCNSmSNN5AYxx7SllwsbvA="; 26 }; 27 28 build-system = [ setuptools ]; 29 30 dependencies = [ 31 bcrypt 32 aiohttp 33 pyopenssl 34 python-gnupg 35 requests 36 ]; 37 38 pythonImportsCheck = [ "proton" ]; 39 40 nativeCheckInputs = [ 41 pytestCheckHook 42 pytest-cov-stub 43 pyotp 44 ]; 45 46 disabledTestPaths = [ 47 # Single test, requires internet connection 48 "tests/test_alternativerouting.py" 49 ]; 50 51 disabledTests = [ 52 # Invalid modulus 53 "test_modulus_verification" 54 # Permission denied: '/run' 55 "test_broken_data" 56 "test_broken_index" 57 "test_sessions" 58 # No working transports found 59 "test_auto_works_on_prod" 60 "test_ping" 61 "test_successful" 62 "test_without_pinning" 63 # Failed assertions 64 "test_bad_pinning_fingerprint_changed" 65 "test_bad_pinning_url_changed" 66 ]; 67 68 meta = { 69 description = "Core logic used by the other Proton components"; 70 homepage = "https://github.com/ProtonVPN/python-proton-core"; 71 license = lib.licenses.gpl3Only; 72 maintainers = with lib.maintainers; [ sebtm ]; 73 }; 74}