From d898106c38e44aa7425c63ca4f818e2d9c78f177 Mon Sep 17 00:00:00 2001 From: harupy <17039389+harupy@users.noreply.github.com> Date: Fri, 17 Nov 2023 13:31:39 +0900 Subject: [PATCH] Add MLflowDeploymentClient Signed-off-by: harupy <17039389+harupy@users.noreply.github.com> --- .github/workflows/deployments.yml | 2 +- mlflow/deployments/mlflow/__init__.py | 81 +++++++++++++++++++++++++ setup.py | 2 + tests/deployments/mlflow/test_mlflow.py | 7 +++ 4 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 mlflow/deployments/mlflow/__init__.py create mode 100644 tests/deployments/mlflow/test_mlflow.py diff --git a/.github/workflows/deployments.yml b/.github/workflows/deployments.yml index 0d31cca06a783..7d1187260ff30 100644 --- a/.github/workflows/deployments.yml +++ b/.github/workflows/deployments.yml @@ -33,4 +33,4 @@ jobs: pytest pytest-timeout pytest-asyncio httpx psutil - name: Run tests run: | - pytest tests/deployments/databricks + pytest tests/deployments/databricks tests/deployments/mlflow diff --git a/mlflow/deployments/mlflow/__init__.py b/mlflow/deployments/mlflow/__init__.py new file mode 100644 index 0000000000000..5803bb0d3b023 --- /dev/null +++ b/mlflow/deployments/mlflow/__init__.py @@ -0,0 +1,81 @@ +from mlflow.deployments import BaseDeploymentClient + + +class MLflowDeploymentClient(BaseDeploymentClient): + def create_deployment(self, name, model_uri, flavor=None, config=None, endpoint=None): + """ + .. warning:: + This method is not implemented for `MLflowDeploymentClient`. + """ + raise NotImplementedError + + def update_deployment(self, name, model_uri=None, flavor=None, config=None, endpoint=None): + """ + .. warning:: + This method is not implemented for `MLflowDeploymentClient`. + """ + raise NotImplementedError + + def delete_deployment(self, name, config=None, endpoint=None): + """ + .. warning:: + This method is not implemented for `MLflowDeploymentClient`. + """ + raise NotImplementedError + + def list_deployments(self, endpoint=None): + """ + .. warning:: + This method is not implemented for `MLflowDeploymentClient`. + """ + raise NotImplementedError + + def get_deployment(self, name, endpoint=None): + """ + TODO + """ + raise NotImplementedError + + def predict(self, deployment_name=None, inputs=None, endpoint=None): + """ + TODO + """ + raise NotImplementedError("TODO") + + def create_endpoint(self, name, config=None): + """ + TODO + """ + raise NotImplementedError("TODO") + + def update_endpoint(self, endpoint, config=None): + """ + TODO + """ + raise NotImplementedError("TODO") + + def delete_endpoint(self, endpoint): + """ + TODO + """ + raise NotImplementedError("TODO") + + def list_endpoints(self): + """ + TODO + """ + raise NotImplementedError("TODO") + + def get_endpoint(self, endpoint): + """ + TODO + """ + raise NotImplementedError("TODO") + + +def run_local(name, model_uri, flavor=None, config=None): + pass + + +def target_help(): + pass diff --git a/setup.py b/setup.py index 8d4f363ac1502..b113aa630c2c6 100644 --- a/setup.py +++ b/setup.py @@ -187,6 +187,8 @@ def run(self): [mlflow.deployments] databricks=mlflow.deployments.databricks + http=mlflow.deployments.mlflow + https=mlflow.deployments.mlflow """, cmdclass={ "dependencies": ListDependencies, diff --git a/tests/deployments/mlflow/test_mlflow.py b/tests/deployments/mlflow/test_mlflow.py new file mode 100644 index 0000000000000..8cb2e4a8dbe6c --- /dev/null +++ b/tests/deployments/mlflow/test_mlflow.py @@ -0,0 +1,7 @@ +from mlflow.deployments import get_deploy_client +from mlflow.deployments.mlflow import MLflowDeploymentClient + + +def test_get_deploy_client(): + client = get_deploy_client("http://localhost:5000") + assert isinstance(client, MLflowDeploymentClient)