at master 3.7 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 6 # build-system 7 setuptools, 8 9 # dependencies 10 alembic, 11 cachetools, 12 click, 13 cloudpickle, 14 cryptography, 15 databricks-sdk, 16 docker, 17 fastapi, 18 flask, 19 gitpython, 20 graphene, 21 gunicorn, 22 importlib-metadata, 23 jinja2, 24 markdown, 25 matplotlib, 26 numpy, 27 opentelemetry-api, 28 opentelemetry-sdk, 29 packaging, 30 pandas, 31 protobuf, 32 pyarrow, 33 pyyaml, 34 requests, 35 scikit-learn, 36 scipy, 37 sqlalchemy, 38 sqlparse, 39 uvicorn, 40 41 # tests 42 aiohttp, 43 azure-core, 44 azure-storage-blob, 45 azure-storage-file, 46 boto3, 47 botocore, 48 catboost, 49 datasets, 50 google-cloud-storage, 51 httpx, 52 jwt, 53 keras, 54 langchain, 55 librosa, 56 moto, 57 opentelemetry-exporter-otlp, 58 optuna, 59 pydantic, 60 pyspark, 61 pytestCheckHook, 62 pytorch-lightning, 63 sentence-transformers, 64 shap, 65 starlette, 66 statsmodels, 67 tensorflow, 68 torch, 69 transformers, 70 xgboost, 71}: 72 73buildPythonPackage rec { 74 pname = "mlflow"; 75 version = "3.3.1"; 76 pyproject = true; 77 78 src = fetchFromGitHub { 79 owner = "mlflow"; 80 repo = "mlflow"; 81 tag = "v${version}"; 82 hash = "sha256-5zObSnGx7+cCrqRfvcnprQN05NqVBCeWcAZEE1Jpeuo="; 83 }; 84 85 pythonRelaxDeps = [ 86 "gunicorn" 87 "importlib-metadata" 88 "packaging" 89 "protobuf" 90 "pytz" 91 "pyarrow" 92 ]; 93 94 build-system = [ setuptools ]; 95 96 dependencies = [ 97 alembic 98 cachetools 99 click 100 cloudpickle 101 cryptography 102 databricks-sdk 103 docker 104 fastapi 105 flask 106 gitpython 107 graphene 108 gunicorn 109 importlib-metadata 110 jinja2 111 markdown 112 matplotlib 113 numpy 114 opentelemetry-api 115 opentelemetry-sdk 116 packaging 117 pandas 118 protobuf 119 pyarrow 120 pydantic 121 pyyaml 122 requests 123 scikit-learn 124 scipy 125 shap 126 sqlalchemy 127 sqlparse 128 uvicorn 129 ]; 130 131 pythonImportsCheck = [ "mlflow" ]; 132 133 nativeCheckInputs = [ 134 aiohttp 135 azure-core 136 azure-storage-blob 137 azure-storage-file 138 boto3 139 botocore 140 catboost 141 datasets 142 google-cloud-storage 143 httpx 144 jwt 145 keras 146 langchain 147 librosa 148 moto 149 opentelemetry-exporter-otlp 150 optuna 151 pydantic 152 pyspark 153 pytestCheckHook 154 pytorch-lightning 155 sentence-transformers 156 starlette 157 statsmodels 158 tensorflow 159 torch 160 transformers 161 uvicorn 162 xgboost 163 ]; 164 165 disabledTestPaths = [ 166 # Requires unpackaged `autogen` 167 "tests/autogen/test_autogen_autolog.py" 168 169 # Requires unpackaged `diviner` 170 "tests/diviner/test_diviner_model_export.py" 171 172 # Requires unpackaged `sktime` 173 "examples/sktime/test_sktime_model_export.py" 174 175 # Requires `fastai` which would cause a circular dependency 176 "tests/fastai/test_fastai_autolog.py" 177 "tests/fastai/test_fastai_model_export.py" 178 179 # Requires `spacy` which would cause a circular dependency 180 "tests/spacy/test_spacy_model_export.py" 181 182 # Requires `tensorflow.keras` which is not included in our outdated version of `tensorflow` (2.13.0) 183 "tests/gateway/providers/test_ai21labs.py" 184 "tests/tensorflow/test_keras_model_export.py" 185 "tests/tensorflow/test_keras_pyfunc_model_works_with_all_input_types.py" 186 "tests/tensorflow/test_mlflow_callback.py" 187 ]; 188 189 # I (@GaetanLepage) gave up at enabling tests: 190 # - They require a lot of dependencies (some unpackaged); 191 # - Many errors occur at collection time; 192 # - Most (all ?) tests require internet access anyway. 193 doCheck = false; 194 195 meta = { 196 description = "Open source platform for the machine learning lifecycle"; 197 mainProgram = "mlflow"; 198 homepage = "https://github.com/mlflow/mlflow"; 199 changelog = "https://github.com/mlflow/mlflow/blob/${src.tag}/CHANGELOG.md"; 200 license = lib.licenses.asl20; 201 maintainers = with lib.maintainers; [ tbenst ]; 202 }; 203}