Files
nixpkgs/pkgs/development/python-modules/mlflow/default.nix
2026-05-21 10:12:59 +00:00

95 lines
1.7 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
# dependencies
aiohttp,
alembic,
cryptography,
docker,
flask,
flask-cors,
graphene,
gunicorn,
huey,
matplotlib,
mlflow-skinny,
mlflow-tracing,
numpy,
pandas,
pyarrow,
scikit-learn,
scipy,
skops,
sqlalchemy,
}:
buildPythonPackage (finalAttrs: {
pname = "mlflow";
version = "3.12.0";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "mlflow";
repo = "mlflow";
tag = "v${finalAttrs.version}";
hash = "sha256-OxhM+KCem0sb9cwtyzrUD/MGfoiiCfgU47qipYRDaFk=";
};
# ppyproject.release.toml is the one shipped in the Pypi package, so we use it too.
postPatch = ''
mv pyproject.release.toml pyproject.toml
'';
build-system = [ setuptools ];
pythonRelaxDeps = [
"cryptography"
];
dependencies = [
aiohttp
alembic
cryptography
docker
flask
flask-cors
graphene
gunicorn
huey
matplotlib
mlflow-skinny
mlflow-tracing
numpy
pandas
pyarrow
scikit-learn
scipy
skops
sqlalchemy
];
pythonImportsCheck = [ "mlflow" ];
# I (@GaetanLepage) gave up at enabling tests:
# - They require a lot of dependencies (some unpackaged);
# - Many errors occur at collection time;
# - Most (all ?) tests require internet access anyway.
doCheck = false;
meta = {
description = "Open source platform for the machine learning lifecycle";
mainProgram = "mlflow";
homepage = "https://github.com/mlflow/mlflow";
changelog = "https://github.com/mlflow/mlflow/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
GaetanLepage
];
};
})