Browse Source

[to #42322933] add create if not exist and add(back) create model example

Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/9130661
master
yingda.chen 3 years ago
parent
commit
8400ca1fc7
3 changed files with 58 additions and 9 deletions
  1. +25
    -7
      modelscope/utils/hub.py
  2. +33
    -0
      tests/hub/test_hub_examples.py
  3. +0
    -2
      tests/hub/test_hub_operation.py

+ 25
- 7
modelscope/utils/hub.py View File

@@ -2,21 +2,39 @@


import os import os
import os.path as osp import os.path as osp
from typing import List, Union
from typing import List, Optional, Union


from numpy import deprecate
from requests import HTTPError


from modelscope.hub.file_download import model_file_download from modelscope.hub.file_download import model_file_download
from modelscope.hub.snapshot_download import snapshot_download from modelscope.hub.snapshot_download import snapshot_download
from modelscope.hub.utils.utils import get_cache_dir
from modelscope.utils.config import Config from modelscope.utils.config import Config
from modelscope.utils.constant import ModelFile from modelscope.utils.constant import ModelFile




# temp solution before the hub-cache is in place
@deprecate
def get_model_cache_dir(model_id: str):
return os.path.join(get_cache_dir(), model_id)
def create_model_if_not_exist(
api,
model_id: str,
chinese_name: str,
visibility: Optional[int] = 5, # 1-private, 5-public
license: Optional[str] = 'apache-2.0',
revision: Optional[str] = 'master'):
exists = True
try:
api.get_model(model_id=model_id, revision=revision)
except HTTPError:
exists = False
if exists:
print(f'model {model_id} already exists, skip creation.')
return False
else:
api.create_model(
model_id=model_id,
chinese_name=chinese_name,
visibility=visibility,
license=license)
print(f'model {model_id} successfully created.')
return True




def read_config(model_id_or_path: str): def read_config(model_id_or_path: str):


+ 33
- 0
tests/hub/test_hub_examples.py View File

@@ -0,0 +1,33 @@
import unittest

from maas_hub.maas_api import MaasApi

from modelscope.utils.hub import create_model_if_not_exist

USER_NAME = 'maasadmin'
PASSWORD = '12345678'


class HubExampleTest(unittest.TestCase):

def setUp(self):
self.api = MaasApi()
# note this is temporary before official account management is ready
self.api.login(USER_NAME, PASSWORD)

@unittest.skip('to be used for local test only')
def test_example_model_creation(self):
# ATTENTION:change to proper model names before use
model_name = 'cv_unet_person-image-cartoon_compound-models'
model_chinese_name = '达摩卡通化模型'
model_org = 'damo'
model_id = '%s/%s' % (model_org, model_name)

created = create_model_if_not_exist(self.api, model_id,
model_chinese_name)
if not created:
print('!! NOT created since model already exists !!')


if __name__ == '__main__':
unittest.main()

+ 0
- 2
tests/hub/test_hub_operation.py View File

@@ -1,6 +1,5 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import os import os
import os.path as osp
import subprocess import subprocess
import tempfile import tempfile
import unittest import unittest
@@ -8,7 +7,6 @@ import uuid


from modelscope.hub.api import HubApi, ModelScopeConfig from modelscope.hub.api import HubApi, ModelScopeConfig
from modelscope.hub.file_download import model_file_download from modelscope.hub.file_download import model_file_download
from modelscope.hub.repository import Repository
from modelscope.hub.snapshot_download import snapshot_download from modelscope.hub.snapshot_download import snapshot_download
from modelscope.hub.utils.utils import get_gitlab_domain from modelscope.hub.utils.utils import get_gitlab_domain




Loading…
Cancel
Save