From 28f61e76f0ff7cd6368b233e5a8392330961c1c0 Mon Sep 17 00:00:00 2001 From: Gustav Hartz Date: Thu, 16 Feb 2023 23:15:29 +0100 Subject: [PATCH] Added feature that allows for wildcard search in --extra-files arguments using glob --- .../model_archiver/model_packaging_utils.py | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/model-archiver/model_archiver/model_packaging_utils.py b/model-archiver/model_archiver/model_packaging_utils.py index 40eabbd249..9775f093c2 100644 --- a/model-archiver/model_archiver/model_packaging_utils.py +++ b/model-archiver/model_archiver/model_packaging_utils.py @@ -2,6 +2,7 @@ Helper utils for Model Export tool """ +import glob import logging import os import re @@ -156,20 +157,20 @@ def copy_artifacts(model_name, **kwargs): path = (path.split(":")[0] if ":" in path else path) + ".py" if file_type == "extra_files": - for file in path.split(","): - file = file.strip() - if os.path.isfile(file): - shutil.copy2(file, model_path) - elif os.path.isdir(file) and file != model_path: - for item in os.listdir(file): - src = os.path.join(file, item) - dst = os.path.join(model_path, item) - if os.path.isfile(src): - shutil.copy2(src, dst) - elif os.path.isdir(src): - shutil.copytree(src, dst, False, None) - else: - raise ValueError(f"Invalid extra file given {file}") + for path_or_wildcard in path.split(","): + for file in glob.glob(path_or_wildcard.strip()): + if os.path.isfile(file): + shutil.copy2(file, model_path) + elif os.path.isdir(file) and file != model_path: + for item in os.listdir(file): + src = os.path.join(file, item) + dst = os.path.join(model_path, item) + if os.path.isfile(src): + shutil.copy2(src, dst) + elif os.path.isdir(src): + shutil.copytree(src, dst, False, None) + else: + raise ValueError(f"Invalid extra file given {file}") else: shutil.copy(path, model_path)