You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
913 B

3 years ago
  1. from argparse import ArgumentParser
  2. from gooey import Events, Gooey, GooeyParser
  3. from gooey import types as t
  4. with open('tmp.txt', 'w') as f:
  5. import sys
  6. f.write(str(sys.argv))
  7. def handle_success(args, state: t.PublicGooeyState):
  8. field = state['active_form'][0]
  9. field['value'] = 'success'
  10. return {**state, 'active_form': [field]}
  11. def handle_error(args, state: t.PublicGooeyState):
  12. field = state['active_form'][0]
  13. field['value'] = 'error'
  14. return {**state, 'active_form': [field]}
  15. def make_parser():
  16. parser = GooeyParser(on_error=handle_error, on_success=handle_success)
  17. parser.add_argument('foo')
  18. return parser
  19. @Gooey(use_events=[Events.ON_ERROR, Events.ON_SUCCESS])
  20. def main():
  21. parser = make_parser()
  22. args = parser.parse_args()
  23. if args.foo == 'fail':
  24. raise Exception('EXCEPTION')
  25. print('DONE')
  26. if __name__ == '__main__':
  27. main()