From 94b3a9eed7da7f623a8759cb7037f64549e040f4 Mon Sep 17 00:00:00 2001 From: aresnow1 <109642806+aresnow1@users.noreply.github.com> Date: Mon, 18 Sep 2023 16:27:03 +0800 Subject: [PATCH] Add lsf_suffix arg for api.push_model (#545) --- modelscope/hub/api.py | 8 +++++++- modelscope/hub/repository.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modelscope/hub/api.py b/modelscope/hub/api.py index fd658eba..e0a5254d 100644 --- a/modelscope/hub/api.py +++ b/modelscope/hub/api.py @@ -243,7 +243,8 @@ class HubApi: tag: Optional[str] = None, revision: Optional[str] = DEFAULT_REPOSITORY_REVISION, original_model_id: Optional[str] = None, - ignore_file_pattern: Optional[Union[List[str], str]] = None): + ignore_file_pattern: Optional[Union[List[str], str]] = None, + lfs_suffix: Optional[Union[str, List[str]]] = None): """Upload model from a given directory to given repository. A valid model directory must contain a configuration.json file. @@ -281,6 +282,7 @@ class HubApi: branch and push to it. original_model_id (str, optional): The base model id which this model is trained from ignore_file_pattern (`Union[List[str], str]`, optional): The file pattern to ignore uploading + lfs_suffix (`List[str]`, optional): File types to use LFS to manage. examples: '*.safetensors'. Raises: InvalidParameter: Parameter invalid. @@ -349,6 +351,10 @@ class HubApi: date = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S') commit_message = '[automsg] push model %s to hub at %s' % ( model_id, date) + if lfs_suffix is not None: + lfs_suffix_list = [lfs_suffix] if isinstance(lfs_suffix, str) else lfs_suffix + for suffix in lfs_suffix_list: + repo.add_lfs_type(suffix) repo.push( commit_message=commit_message, local_branch=revision, diff --git a/modelscope/hub/repository.py b/modelscope/hub/repository.py index 3fc6da2b..7cf32116 100644 --- a/modelscope/hub/repository.py +++ b/modelscope/hub/repository.py @@ -105,7 +105,7 @@ class Repository: examples '*.safetensors' """ os.system( - "printf '%s filter=lfs diff=lfs merge=lfs -text\n'>>%s" % + "printf '\n%s filter=lfs diff=lfs merge=lfs -text\n'>>%s" % (file_name_suffix, os.path.join(self.model_dir, '.gitattributes'))) def push(self,