import argparse class ArgParser: parser = None args = None def __init__(self): self.parser = argparse.ArgumentParser(add_help=False) self.parser._action_groups.pop() obligatoryArgs = self.parser.add_argument_group("Argumentos obligatorios") obligatoryArgs.add_argument('-p', '--pin', help="Contraseña", type=int) obligatoryArgs.add_argument('-t', '--type', help="Tipo marcado. 0 = Entrada, 1 = Salida", type=int) optionalArgs = self.parser.add_argument_group("Argumentos opcionales") optionalArgs.add_argument('-bt', '--basedtime', help="Hacer check o descheck según la hora del dia", action="store_true") optionalArgs.add_argument('-h', '--help', action="help", help="Esta ayuda") optionalArgs.add_argument('-d', '--debug', action='store_true') optionalArgs.add_argument('-f', '--force', action='store_true') optionalArgs.add_argument('-c', '--config', help="Rúta al archivo de configuración") optionalArgs.add_argument('-u', '--user', help="Usuario") optionalArgs.add_argument('-glo', '--geoLongitude', help="GEO Longitud", type=float) optionalArgs.add_argument('-gla', '--geoLatitude', help="GEO Latitud", type=float) optionalArgs.add_argument('-ga', '--geoAccuracy', help="GEO Accuracy", type=float) def check(self): if self.args.type is None and self.args.basedtime is False: print("Hay que indicar al menos un metodo de fichaje -t <0 o 1> o -bt") exit(20) def parse(self): self.args = self.parser.parse_args() self.check() return self.args