diff --git a/pkgs/development/python-modules/asyncua/default.nix b/pkgs/development/python-modules/asyncua/default.nix new file mode 100644 index 000000000000..f474a8f6a526 --- /dev/null +++ b/pkgs/development/python-modules/asyncua/default.nix @@ -0,0 +1,66 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, aiosqlite +, aiofiles +, pytz +, python-dateutil +, sortedcontainers +, cryptography +, typing-extensions +, importlib-metadata +, pytestCheckHook +, pytest-asyncio +, pytest-mock +, asynctest +, pythonOlder +}: + +buildPythonPackage rec { + pname = "asyncua"; + version = "1.0.0"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "FreeOpcUa"; + repo = "opcua-asyncio"; + rev = "v${version}"; + hash = "sha256-wBtI3ZlsvOkNvl/q0X9cm2hNRUBW1oB/kZOo8lqo4dQ="; + }; + + propagatedBuildInputs = [ + aiosqlite + aiofiles + pytz + python-dateutil + sortedcontainers + cryptography + typing-extensions + ] ++ lib.optionals (pythonOlder "3.8") [ + importlib-metadata + ]; + + pythonImportsCheck = [ + "asyncua" + ]; + + checkInputs = [ + pytestCheckHook + pytest-asyncio + pytest-mock + asynctest + ]; + + disabledTests = [ + "test_cli_tools_which_require_sigint" # Hard coded path only works from root of src + ]; + + meta = with lib; { + description = "OPC UA / IEC 62541 Client and Server for Python"; + homepage = "https://github.com/FreeOpcUa/opcua-asyncio"; + license = licenses.lgpl3Plus; + maintainers = with maintainers; [ harvidsen ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e14a9347caad..b62688b4c499 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -700,6 +700,8 @@ self: super: with self; { async-timeout = callPackage ../development/python-modules/async_timeout { }; + asyncua = callPackage ../development/python-modules/asyncua { }; + async-upnp-client = callPackage ../development/python-modules/async-upnp-client { }; asyncwhois = callPackage ../development/python-modules/asyncwhois { };