zyfra/ebonite

can not delete model from remote repo

Closed this issue · 1 comments

Ebonite 0.6.1

I am trying to delete already existing model in remote ebonite repo.

from ebonite import Ebonite
import sys, os
from dotenv import find_dotenv, load_dotenv
dotenv_path = find_dotenv()
load_dotenv(dotenv_path)

def model_function(data):
    """Dummy function is our model"""
    return data

def main():
    pg_ebonite_url = os.environ.get("POSTGRE_EBONITE")
    s3_host = os.environ.get("S3_HOST")
    s3_ebonite_bucket = os.environ.get("S3_BUCKET_EBONITE")
    ebnt = Ebonite.custom_client('sqlalchemy', 's3',
                            meta_kwargs={'db_uri': pg_ebonite_url},
                            artifact_kwargs={'endpoint': s3_host, 'bucket_name': s3_ebonite_bucket})
    model = ebnt.create_model(model_name='dummy_function3', model_object=model_function, model_input=0,
    project_name='local_deployment', task_name='local_deployment')

    task = ebnt.get_or_create_task('local_deployment', 'local_deployment')
    repo_model = ebnt.get_model(model_name='dummy_function3', task=task, load_artifacts = True)
    print(repo_model)
    ebnt.delete_model(model=repo_model)

if __name__ == '__main__':
    main()


Raises:

File "./bin/local.py", line 33, in main
ebnt.delete_model(model=repo_model)
File "./.venv/lib/python3.7/site-packages/ebonite/client/base.py", line 495, in delete_model
return model.delete(force)
File "./.venv/lib/python3.7/site-packages/ebonite/core/objects/core.py", line 162, in inner
return method(self, *args, **kwargs)
File "./.venv/lib/python3.7/site-packages/ebonite/core/objects/core.py", line 180, in inner
raise errors.UnboundObjectError('{} is not bound to artifact repository'.format(self))
ebonite.core.errors.UnboundObjectError: Model(id=8,name=dummy_function3) is not bound to artifact repository

Should be fixed by #114