args_global = ['server_addr', 'port', 'timeout', 'verbose', 'dry_run', 'conn_retries', 'is_server', 'rpc_plugin', 'called_rpc_name', 'func', 'client'] def strip_globals(kwargs): for arg in args_global: kwargs.pop(arg, None) def remove_null(kwargs): keys = [] for key, value in kwargs.items(): if value is None: keys.append(key) for key in keys: kwargs.pop(key, None) def apply_defaults(kwargs, **defaults): for key, value in defaults.items(): if key not in kwargs: kwargs[key] = value def group_as(kwargs, name, values): group = {} for arg in values: if arg in kwargs and kwargs[arg] is not None: group[arg] = kwargs.pop(arg, None) kwargs[name] = group