diff --git a/pkgs/development/python-modules/ledgerblue/default.nix b/pkgs/development/python-modules/ledgerblue/default.nix index be5b87146901..ea89a9ac688f 100644 --- a/pkgs/development/python-modules/ledgerblue/default.nix +++ b/pkgs/development/python-modules/ledgerblue/default.nix @@ -1,38 +1,44 @@ { lib +, bleak , buildPythonPackage , ecpy , fetchPypi , future , hidapi +, nfcpy , pillow , protobuf , pycrypto , pycryptodomex -, pythonOlder +, pyelftools , python-u2flib-host +, pythonOlder , websocket-client }: buildPythonPackage rec { pname = "ledgerblue"; - version = "0.1.44"; + version = "0.1.47"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-pOLpeej10G7Br8juTuQOSuCbhMjAP4aY0/JwnmJRblk="; + hash = "sha256-xe8ude2JzrdmJqwzqLlxRO697IjcGuQgGG6c3nQ/drg="; }; propagatedBuildInputs = [ + bleak ecpy future hidapi + nfcpy pillow protobuf pycrypto pycryptodomex + pyelftools python-u2flib-host websocket-client ]; diff --git a/pkgs/development/python-modules/ndeflib/default.nix b/pkgs/development/python-modules/ndeflib/default.nix new file mode 100644 index 000000000000..3699955627ec --- /dev/null +++ b/pkgs/development/python-modules/ndeflib/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "ndeflib"; + version = "0.3.3"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "nfcpy"; + repo = "ndeflib"; + rev = "refs/tags/v${version}"; + hash = "sha256-cpfztE+/AW7P0J7QeTDfVGYc2gEkr7gzA352hC9bdTM="; + }; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "ndef" + ]; + + disabledTests = [ + # AssertionError caused due to wrong size + "test_decode_error" + ]; + + meta = with lib; { + description = "Python package for parsing and generating NFC Data Exchange Format messages"; + homepage = "https://github.com/nfcpy/ndeflib"; + license = licenses.isc; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/nfcpy/default.nix b/pkgs/development/python-modules/nfcpy/default.nix new file mode 100644 index 000000000000..bf5f538da33c --- /dev/null +++ b/pkgs/development/python-modules/nfcpy/default.nix @@ -0,0 +1,61 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, libusb1 +, mock +, ndeflib +, pydes +, pyserial +, pytest-mock +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "nfcpy"; + version = "1.0.4"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "nfcpy"; + repo = "nfcpy"; + rev = "refs/tags/v${version}"; + hash = "sha256-HFWOCiz6ISfxEeC6KPKNKGZoHvFjFGUn7QJWnwvJKYw="; + }; + + propagatedBuildInputs = [ + libusb1 + ndeflib + pydes + pyserial + ]; + + nativeCheckInputs = [ + mock + pytest-mock + pytestCheckHook + ]; + + pythonImportsCheck = [ + "nfc" + ]; + + disabledTestPaths = [ + # AttributeError: 'NoneType' object has no attribute 'EC_KEY' + "tests/test_llcp_llc.py" + "tests/test_llcp_sec.py" + # Doesn't work on Hydra + "tests/test_clf_udp.py" + ]; + + meta = with lib; { + description = "A Python module to read/write NFC tags or communicate with another NFC device"; + homepage = "https://github.com/nfcpy/nfcpy"; + changelog = "https://github.com/nfcpy/nfcpy/blob/v${version}/HISTORY.rst"; + license = licenses.eupl11; + maintainers = with maintainers; [ fab ]; + }; +} + diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ff60b1046a47..5d68ffadc84c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6516,6 +6516,8 @@ self: super: with self; { nclib = callPackage ../development/python-modules/nclib { }; + ndeflib = callPackage ../development/python-modules/ndeflib { }; + ndg-httpsclient = callPackage ../development/python-modules/ndg-httpsclient { }; ndindex = callPackage ../development/python-modules/ndindex { }; @@ -6580,6 +6582,8 @@ self: super: with self; { nextdns = callPackage ../development/python-modules/nextdns { }; + nfcpy = callPackage ../development/python-modules/nfcpy { }; + nftables = toPythonModule (pkgs.nftables.override { python3 = python; withPython = true;