Rust 1.83 stabilized [`io::ErrorKind::IsADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.IsADirectory) and [`io::ErrorKind::NotADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotADirectory). It would be nice to update the functions converting between `PyErr` and `io::Error` to map them to [`IsADirectoryError`](https://docs.python.org/3/library/exceptions.html#IsADirectoryError) and [`NotADirectoryError`](https://docs.python.org/3/library/exceptions.html#NotADirectoryError).