From a35a2806db517f2a8db0a6ca0e9729690ba92cf1 Mon Sep 17 00:00:00 2001 From: tbenst Date: Mon, 6 Jan 2020 15:59:25 -0800 Subject: [PATCH] mlflow-server: init at 1.4.0 --- .../python-modules/mlflow/default.nix | 3 +- pkgs/servers/mlflow-server/default.nix | 37 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 pkgs/servers/mlflow-server/default.nix diff --git a/pkgs/development/python-modules/mlflow/default.nix b/pkgs/development/python-modules/mlflow/default.nix index 8eb0ca7c6b8e..5aaeb09b894d 100644 --- a/pkgs/development/python-modules/mlflow/default.nix +++ b/pkgs/development/python-modules/mlflow/default.nix @@ -1,4 +1,4 @@ -{ stdenv, buildPythonPackage, fetchPypi +{ stdenv, buildPythonPackage, fetchPypi, isPy27 , alembic , click , cloudpickle @@ -26,6 +26,7 @@ buildPythonPackage rec { pname = "mlflow"; version = "1.4.0"; + disabled = isPy27; src = fetchPypi { inherit pname version; diff --git a/pkgs/servers/mlflow-server/default.nix b/pkgs/servers/mlflow-server/default.nix new file mode 100644 index 000000000000..eb99fffeb169 --- /dev/null +++ b/pkgs/servers/mlflow-server/default.nix @@ -0,0 +1,37 @@ +{lib, python3, writeText}: + +let + py = python3.pkgs; +in +py.toPythonApplication + (py.mlflow.overridePythonAttrs(old: rec { + pname = "mlflow-server"; + + propagatedBuildInputs = old.propagatedBuildInputs ++ [ + py.boto3 + py.mysqlclient + ]; + + postPatch = '' + substituteInPlace mlflow/utils/process.py --replace \ + "child = subprocess.Popen(cmd, env=cmd_env, cwd=cwd, universal_newlines=True," \ + "cmd[0]='$out/bin/gunicornMlflow'; child = subprocess.Popen(cmd, env=cmd_env, cwd=cwd, universal_newlines=True," + ''; + + gunicornScript = writeText "gunicornMlflow" + '' + #!/usr/bin/env python + import re + import sys + from gunicorn.app.wsgiapp import run + if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', ''', sys.argv[0]) + sys.exit(run()) + ''; + + postInstall = '' + gpath=$out/bin/gunicornMlflow + cp ${gunicornScript} $gpath + chmod 555 $gpath + ''; +})) \ No newline at end of file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a8192f56c1be..fda84f4ac4fd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15385,6 +15385,8 @@ in miniHttpd = callPackage ../servers/http/mini-httpd {}; + mlflow-server = callPackage ../servers/mlflow-server { }; + mlmmj = callPackage ../servers/mail/mlmmj { }; moodle = callPackage ../servers/web-apps/moodle { };