These should be the same IMO, but what should they be? The interpreter handles uncaught SystemExit exceptions like this:
If the code is None, exit the process with status zero.
If the code is an integer, exit the process with that status.
Otherwise, print the code (to stderr) and exit the process with status 1.
I'd suggest using str | int | None, where we use str because we don't have any way to express "anything reasonably printable" without saying "any object". This way you can use each of the interpreter's behaviors as intended, and if you accidentally pass in e.g. 0.0, the type checker will warn you instead of making you wonder why your process printed 0.0 and failed.
Activity
HeavyLvy commented on Sep 29, 2024