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.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.snapshot_download import snapshot_download
from modelscope.hub.utils.utils import get_cache_dir
from modelscope.utils.config import Config
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):


+ 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.
import os
import os.path as osp
import subprocess
import tempfile
import unittest
@@ -8,7 +7,6 @@ import uuid

from modelscope.hub.api import HubApi, ModelScopeConfig
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.utils.utils import get_gitlab_domain



Loading…
Cancel
Save