def foo(x): try: i = int(x) if i not in range(_min, _max): raise argparse.ArgumentTypeError("{v} not in range [{min}-{max}].".format(v=i, min=_min, max=_max)) return i except ValueError as va: pass if x not in _symbols: raise argparse.ArgumentTypeError("'{v}' must be one of {s}.".format(v=x, s=_symbols)) return x
def parse_opts(cls, new_args, object_name): modify = {} deletes = [] for arg in new_args: value = new_args[arg] is_unset = arg.startswith(cls.unsetprefix) prop_name = arg[len(cls.unsetprefix) + 1:] if is_unset else arg option = cls.drbd_options[object_name][prop_name] key = option['key'] if is_unset: deletes.append(key) else: if 'bytes' in option and option['unit'] == 'bytes': value = SizeCalc.auto_convert(value, SizeCalc.UNIT_B) if option['min'] < value < option['max']: value = str(value) else: raise argparse.ArgumentTypeError( prop_name + " value {v} is out of range [{mi}-{ma}]".format( v=value, mi=option['min'], ma=option['max'])) modify[key] = str(value) return modify, deletes
def range(v): import linstor_client.argparse.argparse as argparse v = int(v) if not checkrange(v, i, j): raise argparse.ArgumentTypeError('%d not in range: [%d, %d]' % (v, i, j)) return v
def check(name): import linstor_client.argparse.argparse as argparse if checktype == NODE_NAME: name = check_node_name(name) else: name = check_name(name, min_length, max_length, valid_chars, valid_inner_chars) if not name: raise argparse.ArgumentTypeError('Name: %s not valid' % (name)) return name
def provider_check(cls, providers): """ Checks and converts the comma separated providers to a list. :param str providers: :return: List of provider names :rtype list[str] """ provider_list = [] for provider in providers.split(","): if provider.upper() not in linstor.Linstor.provider_list(): raise argparse.ArgumentTypeError( 'Provider "{prov}" not valid'.format(prov=provider)) provider_list.append(provider) return provider_list
def layer_data_check(cls, layer_data): """ Checks and converts the comma separated layer names to a list. :param str layer_data: :return: List of layer names :rtype: list[str] """ layer_list = [] for layer in layer_data.split(','): if layer.lower() not in linstor.Linstor.layer_list(): raise argparse.ArgumentTypeError( 'Layer name "{lay}" not valid'.format(lay=layer)) layer_list.append(layer) return layer_list