def _runner(input_args): if isinstance(input_args, str): input_args = input_args.split() parser = create_parser() args = parser.parse_args(input_args) if hasattr(args, 'storage'): storage = Storage(os.path.join(tmpdir, "storage")) storage.s = None # prevent requests args.storage = storage getattr(cdtb_main, "command_%s" % args.command.replace('-', '_'))(parser, args)
def parse_storage_args(parser, args) -> Storage: """Parse storage-related arguments into a Storage""" default_path = os.environ.get('CDRAGONTOOLBOX_STORAGE') default_cdn = os.environ.get('CDRAGONTOOLBOX_CDN', 'default') cdn = default_cdn if args.cdn is None else args.cdn # don't use CDRAGONTOOLBOX_STORAGE when using non-default --cdn is set to # avoid mixing files from different CDNs if cdn != default_cdn and default_path is not None and args.storage is None: parser.error("--storage must be provided when changing --cdn value") path = default_path if args.storage is None else args.storage if path is None: path = "RADS" if cdn == 'default' else f"RADS.{cdn}" storage_url = getattr(Storage, f"URL_{cdn}".upper()) return Storage(path, storage_url)
def storage(tmpdir): storage = Storage(os.path.join(tmpdir, 'RADS')) storage.s = None # prevent requests return storage