Files
autoficher/app/arg_parser.py
Omar Sánchez Pizarro 927c281631 separación de codigo para facil edición
Signed-off-by: Omar Sánchez Pizarro <omar.sanchez@pistacero.net>
2023-08-02 10:06:48 +02:00

37 lines
1.6 KiB
Python

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, required=True)
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('-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