3.9: Added support for text and binary modes for open. Default mode is now text.
3.11.2: The encoding parameter can be supplied as a positional argument without causing a TypeError. As it could in 3.9. Code needing to be compatible with unpatched 3.10 and 3.11 versions must pass all io.TextIOWrapper arguments, encoding included, as keywords.