python3Packages.sagemaker-mlflow: 0.3.0 -> 0.4.0 (#517275)

This commit is contained in:
Nick Cao
2026-05-18 23:58:34 +00:00
committed by GitHub
5 changed files with 171 additions and 152 deletions
@@ -0,0 +1,73 @@
{
buildPythonPackage,
mlflow,
# build-system
setuptools,
# dependencies
cachetools,
click,
cloudpickle,
databricks-sdk,
fastapi,
gitpython,
importlib-metadata,
opentelemetry-api,
opentelemetry-proto,
opentelemetry-sdk,
packaging,
protobuf,
pydantic,
python-dotenv,
pyyaml,
requests,
sqlparse,
starlette,
typing-extensions,
uvicorn,
}:
buildPythonPackage (finalAttrs: {
pname = "mlflow-skinny";
inherit (mlflow) version src;
pyproject = true;
__structuredAttrs = true;
sourceRoot = "${finalAttrs.src.name}/libs/skinny";
build-system = [ setuptools ];
dependencies = [
cachetools
click
cloudpickle
databricks-sdk
fastapi
gitpython
importlib-metadata
opentelemetry-api
opentelemetry-proto
opentelemetry-sdk
packaging
protobuf
pydantic
python-dotenv
pyyaml
requests
sqlparse
starlette
typing-extensions
uvicorn
];
pythonImportsCheck = [ "mlflow" ];
# No tests in the skinny subtree.
doCheck = false;
meta = mlflow.meta // {
description = "Lightweight version of MLflow that is designed to minimize package size";
homepage = "https://github.com/mlflow/mlflow/tree/master/libs/skinny";
};
})
@@ -0,0 +1,58 @@
{
lib,
buildPythonPackage,
mlflow,
# build-system
setuptools,
# dependencies
cachetools,
databricks-sdk,
opentelemetry-api,
opentelemetry-proto,
opentelemetry-sdk,
packaging,
protobuf,
pydantic,
# tests
pytestCheckHook,
}:
buildPythonPackage (finalAttrs: {
pname = "mlflow-tracing";
inherit (mlflow) version;
pyproject = true;
__structuredAttrs = true;
inherit (mlflow) src;
sourceRoot = "${finalAttrs.src.name}/libs/tracing";
build-system = [
setuptools
];
dependencies = [
cachetools
databricks-sdk
opentelemetry-api
opentelemetry-proto
opentelemetry-sdk
packaging
protobuf
pydantic
];
pythonImportsCheck = [ "mlflow.tracing" ];
# No tests
doCheck = false;
meta = {
description = "Open-Source SDK for observability and monitoring GenAI applications";
homepage = "https://github.com/mlflow/mlflow/tree/master/libs/tracing";
inherit (mlflow.meta) license;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
})
@@ -9,195 +9,68 @@
# dependencies
aiohttp,
alembic,
cachetools,
click,
cloudpickle,
cryptography,
databricks-sdk,
docker,
fastapi,
flask,
flask-cors,
gitpython,
graphene,
gunicorn,
huey,
importlib-metadata,
jinja2,
markdown,
matplotlib,
mlflow-skinny,
mlflow-tracing,
numpy,
opentelemetry-api,
opentelemetry-proto,
opentelemetry-sdk,
packaging,
pandas,
protobuf,
pyarrow,
python-dotenv,
pyyaml,
requests,
scikit-learn,
scipy,
skops,
sqlalchemy,
sqlparse,
uvicorn,
# tests
azure-core,
azure-storage-blob,
azure-storage-file,
boto3,
botocore,
catboost,
datasets,
google-cloud-storage,
httpx,
jwt,
keras,
langchain,
librosa,
moto,
opentelemetry-exporter-otlp,
optuna,
pydantic,
pyspark,
pytestCheckHook,
pytorch-lightning,
sentence-transformers,
shap,
starlette,
statsmodels,
tensorflow,
torch,
transformers,
xgboost,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "mlflow";
version = "3.11.1";
version = "3.12.0";
pyproject = true;
src = fetchFromGitHub {
owner = "mlflow";
repo = "mlflow";
tag = "v${version}";
hash = "sha256-Oe6nBnnOz7MvGUNCcCGhHl6ZbyDfAhQ0LlfMBF4p6Hc=";
tag = "v${finalAttrs.version}";
hash = "sha256-OxhM+KCem0sb9cwtyzrUD/MGfoiiCfgU47qipYRDaFk=";
};
pythonRelaxDeps = [
"cryptography"
"gunicorn"
"importlib_metadata"
"packaging"
"protobuf"
"pytz"
"pyarrow"
];
# 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 ];
dependencies = [
aiohttp
alembic
cachetools
click
cloudpickle
cryptography
databricks-sdk
docker
fastapi
flask
flask-cors
gitpython
graphene
gunicorn
huey
importlib-metadata
jinja2
markdown
matplotlib
mlflow-skinny
mlflow-tracing
numpy
opentelemetry-api
opentelemetry-proto
opentelemetry-sdk
packaging
pandas
protobuf
pyarrow
pydantic
python-dotenv
pyyaml
requests
scikit-learn
scipy
shap
skops
sqlalchemy
sqlparse
uvicorn
];
pythonImportsCheck = [ "mlflow" ];
nativeCheckInputs = [
aiohttp
azure-core
azure-storage-blob
azure-storage-file
boto3
botocore
catboost
datasets
google-cloud-storage
httpx
jwt
keras
langchain
librosa
moto
opentelemetry-exporter-otlp
optuna
pydantic
pyspark
pytestCheckHook
pytorch-lightning
sentence-transformers
starlette
statsmodels
tensorflow
torch
transformers
uvicorn
xgboost
];
disabledTestPaths = [
# Requires unpackaged `autogen`
"tests/autogen/test_autogen_autolog.py"
# Requires unpackaged `diviner`
"tests/diviner/test_diviner_model_export.py"
# Requires unpackaged `sktime`
"examples/sktime/test_sktime_model_export.py"
# Requires `fastai` which would cause a circular dependency
"tests/fastai/test_fastai_autolog.py"
"tests/fastai/test_fastai_model_export.py"
# Requires `spacy` which would cause a circular dependency
"tests/spacy/test_spacy_model_export.py"
# Requires `tensorflow.keras` which is not included in our outdated version of `tensorflow` (2.13.0)
"tests/gateway/providers/test_ai21labs.py"
"tests/tensorflow/test_keras_model_export.py"
"tests/tensorflow/test_keras_pyfunc_model_works_with_all_input_types.py"
"tests/tensorflow/test_mlflow_callback.py"
];
# I (@GaetanLepage) gave up at enabling tests:
# - They require a lot of dependencies (some unpackaged);
# - Many errors occur at collection time;
@@ -208,8 +81,10 @@ buildPythonPackage rec {
description = "Open source platform for the machine learning lifecycle";
mainProgram = "mlflow";
homepage = "https://github.com/mlflow/mlflow";
changelog = "https://github.com/mlflow/mlflow/blob/${src.tag}/CHANGELOG.md";
changelog = "https://github.com/mlflow/mlflow/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = [ ];
maintainers = with lib.maintainers; [
GaetanLepage
];
};
}
})
@@ -8,23 +8,24 @@
# dependencies
boto3,
mlflow,
mlflow-skinny,
# tests
pytestCheckHook,
scikit-learn,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "sagemaker-mlflow";
version = "0.3.0";
version = "0.4.0";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "aws";
repo = "sagemaker-mlflow";
tag = "v${version}";
hash = "sha256-riCoUpao9QIrQMb7r9stJO/xTSsDfL+uNS664W5GRQc=";
tag = "v${finalAttrs.version}";
hash = "sha256-QE40ZBW7N3GPC+eJqj5uzS3L+A6Wu2/LgHOiUsEXKMw=";
};
build-system = [
@@ -33,7 +34,7 @@ buildPythonPackage rec {
dependencies = [
boto3
mlflow
mlflow-skinny
];
pythonImportsCheck = [ "sagemaker_mlflow" ];
@@ -56,16 +57,24 @@ buildPythonPackage rec {
"test_presigned_url"
"test_presigned_url_with_fields"
# Exercises a `sqlite://` model-registry store, only available with the
# sqlalchemy backend of the full `mlflow` package (not `mlflow-skinny`).
"test_store_instantiation_none"
];
disabledTestPaths = [
# `from mlflow.models import infer_signature` fails to import at collection
# time: `infer_signature` is only available in the full `mlflow` package,
# not in `mlflow-skinny`. Also see:
# https://github.com/aws/sagemaker-mlflow/issues/16
# TypeError: LogisticRegression.__init__() got an unexpected keyword argument 'multi_class'
"test_model_registry"
"test/integration/tests/test_model_registry.py"
];
meta = {
description = "MLFlow plugin for SageMaker";
homepage = "https://github.com/aws/sagemaker-mlflow";
changelog = "https://github.com/aws/sagemaker-mlflow/releases/tag/v${version}";
changelog = "https://github.com/aws/sagemaker-mlflow/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
}
})
+4
View File
@@ -10165,6 +10165,10 @@ self: super: with self; {
mlflow = callPackage ../development/python-modules/mlflow { };
mlflow-skinny = callPackage ../development/python-modules/mlflow-skinny { };
mlflow-tracing = callPackage ../development/python-modules/mlflow-tracing { };
mlrose = callPackage ../development/python-modules/mlrose { };
mlt = toPythonModule (