Source code for grpc4bmi.utils

import os
import shutil
from genericpath import exists
from os.path import abspath, expanduser


[docs]def stage_config_file(filename, input_dir, input_mount_point, home_mounted=False): """Stage config file inside container Args: filename (str): Path to config file input_dir (str): The input directory outside the container input_mount_point (str): The input directory inside the container home_mounted (bool): True if home directory is mounted inside container """ fn = filename is_filename_inside_input_dir = input_dir and abspath(filename).startswith(abspath(input_dir)) is_filename_inside_home_dir = home_mounted and abspath(filename).startswith(expanduser('~')) filename_exists = exists(filename) if is_filename_inside_input_dir: # Replace input dir outside container by input dir inside container fn = abspath(filename).replace(abspath(input_dir), input_mount_point) elif is_filename_inside_home_dir: # Singularity has home dir mounted, so valid filename should be available inside container # Make absolute because current working dir can be different inside image fn = abspath(filename) elif filename_exists: if input_dir is not None: # Copying filename inside input dir shutil.copy(filename, input_dir) fname = os.path.basename(filename) fn = os.path.join(input_mount_point, fname) else: raise Exception(f'Unable to copy {filename}, without a input_dir') else: # Assume filename exists inside container or model does not need a file to initialize pass return fn
# grpc max message size is 4Mb GRPC_MAX_MESSAGE_LENGTH = 4 * 1024 * 1024