Updated the proposal taking into account your comments.
Still, I don't see cases where we are garanteed that 'name' and 'extension' are in the vals.
When we do a create(), we are able to call it without any of them ('name' is mandatory, so the call to super() will raise an exception, but it should not crash because of the key error).
When we do a write(), we can call it without a 'name' or an 'extension' or any of them.
Updated the proposal taking into account your comments.
Still, I don't see cases where we are garanteed that 'name' and 'extension' are in the vals.
When we do a create(), we are able to call it without any of them ('name' is mandatory, so the call to super() will raise an exception, but it should not crash because of the key error).
When we do a write(), we can call it without a 'name' or an 'extension' or any of them.