import argparse
import typing
Seconds = typing.NewType("Seconds", float)
Minutes = typing.NewType("Minutes", float)
class TimeNamespace(argparse.Namespace):
time: Seconds
def sec_to_min(s: Seconds) -> Minutes:
return Minutes(s / 60)
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--time", default=1., type=float,
help="time in seconds")
args = parser.parse_args(namespace=TimeNamespace())
try:
# mypy reveals type "__main__.Seconds"
reveal_type(args.time)
except NameError:
pass
seconds: Seconds = args.time
print(sec_to_min(args.time))
aW1wb3J0IGFyZ3BhcnNlCmltcG9ydCB0eXBpbmcKClNlY29uZHMgPSB0eXBpbmcuTmV3VHlwZSgiU2Vjb25kcyIsIGZsb2F0KQpNaW51dGVzID0gdHlwaW5nLk5ld1R5cGUoIk1pbnV0ZXMiLCBmbG9hdCkKCmNsYXNzIFRpbWVOYW1lc3BhY2UoYXJncGFyc2UuTmFtZXNwYWNlKToKICAgIHRpbWU6IFNlY29uZHMKCmRlZiBzZWNfdG9fbWluKHM6IFNlY29uZHMpIC0+IE1pbnV0ZXM6CiAgICByZXR1cm4gTWludXRlcyhzIC8gNjApCgpwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCnBhcnNlci5hZGRfYXJndW1lbnQoIi10IiwgIi0tdGltZSIsIGRlZmF1bHQ9MS4sIHR5cGU9ZmxvYXQsCiAgICAgICAgICAgICAgICAgICAgaGVscD0idGltZSBpbiBzZWNvbmRzIikKYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKG5hbWVzcGFjZT1UaW1lTmFtZXNwYWNlKCkpCgp0cnk6CiAgICAjIG15cHkgcmV2ZWFscyB0eXBlICJfX21haW5fXy5TZWNvbmRzIgogICAgcmV2ZWFsX3R5cGUoYXJncy50aW1lKQpleGNlcHQgTmFtZUVycm9yOgogICAgcGFzcwoKc2Vjb25kczogU2Vjb25kcyA9IGFyZ3MudGltZQpwcmludChzZWNfdG9fbWluKGFyZ3MudGltZSkp