list not a dict
don't test umask on windows
Don't chown on windows
add noop set_mode for Windows
Don't try fstat if on Windows