diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 33837ea1b32..d9a8d931590 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5903,6 +5903,12 @@ fingerprint = "ADF4 C13D 0E36 1240 BD01 9B51 D1DE 6D7F 6936 63A5"; }]; }; + simonchatts = { + email = "code@chatts.net"; + github = "simonchatts"; + githubId = 11135311; + name = "Simon Chatterjee"; + }; simonvandel = { email = "simon.vandel@gmail.com"; github = "simonvandel"; diff --git a/pkgs/development/python-modules/entrance/default.nix b/pkgs/development/python-modules/entrance/default.nix new file mode 100644 index 00000000000..67005d577cd --- /dev/null +++ b/pkgs/development/python-modules/entrance/default.nix @@ -0,0 +1,45 @@ +{ lib, fetchPypi, buildPythonPackage, pythonOlder, routerFeatures +, janus, ncclient, paramiko, pyyaml, sanic }: + +let + # The `routerFeatures` flag optionally brings in some somewhat heavy + # dependencies, in order to enable interacting with routers + opts = if routerFeatures then { + prePatch = '' + substituteInPlace ./setup.py --replace "extra_deps = []" "extra_deps = router_feature_deps" + ''; + extraBuildInputs = [ janus ncclient paramiko ]; + } else { + prePatch = ""; + extraBuildInputs = []; + }; + +in + +buildPythonPackage rec { + pname = "entrance"; + version = "1.1.10"; + + src = fetchPypi { + inherit pname version; + sha256 = "080qkvkmfw4004cl721l5bvpg001xz8vs6q59dg797kqxfrwk5kw"; + }; + + # The versions of `sanic` and `websockets` in nixpkgs only support 3.6 or later + disabled = pythonOlder "3.6"; + + # No useful tests + doCheck = false; + + propagatedBuildInputs = [ pyyaml sanic ] ++ opts.extraBuildInputs; + + prePatch = opts.prePatch; + + meta = with lib; { + description = "A server framework for web apps with an Elm frontend"; + homepage = https://github.com/ensoft/entrance; + license = licenses.mit; + maintainers = with maintainers; [ simonchatts ]; + }; +} + diff --git a/pkgs/development/python-modules/janus/default.nix b/pkgs/development/python-modules/janus/default.nix new file mode 100644 index 00000000000..da0f43811f2 --- /dev/null +++ b/pkgs/development/python-modules/janus/default.nix @@ -0,0 +1,22 @@ +{ lib, buildPythonPackage, fetchPypi, pytest, pythonOlder }: + +buildPythonPackage rec { + pname = "janus"; + version = "0.4.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "cfc221683160b91b35bae1917e2957b78dad10a2e634f4f8ed119ed72e2a88ef"; + }; + + disabled = pythonOlder "3.6"; + + checkInputs = [ pytest ]; + + meta = with lib; { + description = "Mixed sync-async queue"; + homepage = "https://github.com/aio-libs/janus"; + license = licenses.asl20; + maintainers = [ maintainers.simonchatts ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a610ef51d8c..4a19c606036 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -563,6 +563,10 @@ in { diff-match-patch = callPackage ../development/python-modules/diff-match-patch { }; + entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; }; + + entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; }; + eradicate = callPackage ../development/python-modules/eradicate { }; face = callPackage ../development/python-modules/face { }; @@ -689,6 +693,8 @@ in { inquirer = callPackage ../development/python-modules/inquirer { }; + janus = callPackage ../development/python-modules/janus { }; + jira = callPackage ../development/python-modules/jira { }; jwcrypto = callPackage ../development/python-modules/jwcrypto { };