diff --git a/pkgs/development/python-modules/bonsai/default.nix b/pkgs/development/python-modules/bonsai/default.nix new file mode 100644 index 000000000000..b50293d0b848 --- /dev/null +++ b/pkgs/development/python-modules/bonsai/default.nix @@ -0,0 +1,77 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, setuptools +, cyrus_sasl +, openldap +, typing-extensions +, gevent +, tornado +, trio +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "bonsai"; + version = "1.5.1"; + + disabled = pythonOlder "3.7"; + + format = "pyproject"; + + src = fetchFromGitHub { + owner = "noirello"; + repo = "bonsai"; + rev = "v${version}"; + hash = "sha256-UR/Ds5famD8kuDa6IIIyEv45eJuAcoygXef8XE+5Cxk="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + buildInputs = [ + cyrus_sasl + openldap + ]; + + propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ + typing-extensions + ]; + + passthru.optional-dependencies = { + gevent = [ gevent ]; + tornado = [ tornado ]; + trio = [ trio ]; + }; + + checkInputs = [ + pytestCheckHook + ]; + + disabledTestPaths = [ + # requires running LDAP server + "tests/test_asyncio.py" + "tests/test_ldapclient.py" + "tests/test_ldapconnection.py" + "tests/test_ldapentry.py" + "tests/test_ldapreference.py" + "tests/test_pool.py" + ]; + + disabledTests = [ + # requires running LDAP server + "test_set_async_connect" + ]; + + pythonImportsCheck = [ "bonsai" ]; + + meta = { + changelog = "https://github.com/noirello/bonsai/blob/${src.rev}/CHANGELOG.rst"; + description = "Python 3 module for accessing LDAP directory servers"; + homepage = "https://github.com/noirello/bonsai"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 26071b03393a..5da24e7d828f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1347,6 +1347,8 @@ self: super: with self; { bond-async = callPackage ../development/python-modules/bond-async { }; + bonsai = callPackage ../development/python-modules/bonsai { }; + booleanoperations = callPackage ../development/python-modules/booleanoperations { }; boolean-py = callPackage ../development/python-modules/boolean-py { };