fork download
  1. import argparse
  2. import typing
  3.  
  4. Seconds = typing.NewType("Seconds", float)
  5. Minutes = typing.NewType("Minutes", float)
  6.  
  7. class TimeNamespace(argparse.Namespace):
  8. time: Seconds
  9.  
  10. def sec_to_min(s: Seconds) -> Minutes:
  11. return Minutes(s / 60)
  12.  
  13. parser = argparse.ArgumentParser()
  14. parser.add_argument("-t", "--time", default=1., type=float,
  15. help="time in seconds")
  16. args = parser.parse_args(namespace=TimeNamespace())
  17.  
  18. try:
  19. # mypy reveals type "__main__.Seconds"
  20. reveal_type(args.time)
  21. except NameError:
  22. pass
  23.  
  24. seconds: Seconds = args.time
  25. print(sec_to_min(args.time))
Success #stdin #stdout 0.04s 10944KB
stdin
Standard input is empty
stdout
0.016666666666666666