Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / mlflow / default.nix
blob41ebc9545ceffa6b8e71a0ae8aa7454a632795f0
1 { lib
2 , alembic
3 , buildPythonPackage
4 , click
5 , cloudpickle
6 , databricks-cli
7 , docker
8 , entrypoints
9 , fetchpatch
10 , fetchPypi
11 , flask
12 , gitpython
13 , gorilla
14 , gunicorn
15 , importlib-metadata
16 , markdown
17 , matplotlib
18 , numpy
19 , packaging
20 , pandas
21 , prometheus-flask-exporter
22 , protobuf
23 , python-dateutil
24 , pythonOlder
25 , pythonRelaxDepsHook
26 , pyarrow
27 , pytz
28 , pyyaml
29 , querystring_parser
30 , requests
31 , scikit-learn
32 , scipy
33 , shap
34 , simplejson
35 , sqlalchemy
36 , sqlparse
39 buildPythonPackage rec {
40   pname = "mlflow";
41   version = "2.7.0";
42   format = "setuptools";
44   disabled = pythonOlder "3.7";
46   src = fetchPypi {
47     inherit pname version;
48     hash = "sha256-3q8PXydgjpUm1p//zKcMgirJDqKQpvPkuz36GyCbARE=";
49   };
51   postPatch = ''
52     substituteInPlace requirements/core-requirements.txt \
53       --replace "gunicorn<21" "gunicorn"
54   '';
56   # Remove currently broken dependency `shap`, a model explainability package.
57   # This seems quite unprincipled especially with tests not being enabled,
58   # but not mlflow has a 'skinny' install option which does not require `shap`.
59   nativeBuildInputs = [ pythonRelaxDepsHook ];
60   pythonRemoveDeps = [ "shap" ];
61   pythonRelaxDeps = [ "pytz" "pyarrow" ];
63   propagatedBuildInputs = [
64     alembic
65     click
66     cloudpickle
67     databricks-cli
68     docker
69     entrypoints
70     flask
71     gitpython
72     gorilla
73     gunicorn
74     importlib-metadata
75     markdown
76     matplotlib
77     numpy
78     packaging
79     pandas
80     prometheus-flask-exporter
81     protobuf
82     python-dateutil
83     pyarrow
84     pytz
85     pyyaml
86     querystring_parser
87     requests
88     scikit-learn
89     scipy
90     #shap
91     simplejson
92     sqlalchemy
93     sqlparse
94   ];
96   pythonImportsCheck = [
97     "mlflow"
98   ];
100   # no tests in PyPI dist
101   # run into https://stackoverflow.com/questions/51203641/attributeerror-module-alembic-context-has-no-attribute-config
102   # also, tests use conda so can't run on NixOS without buildFHSEnv
103   doCheck = false;
105   meta = with lib; {
106     description = "Open source platform for the machine learning lifecycle";
107     homepage = "https://github.com/mlflow/mlflow";
108     changelog = "https://github.com/mlflow/mlflow/blob/v${version}/CHANGELOG.md";
109     license = licenses.asl20;
110     maintainers = with maintainers; [ tbenst ];
111   };