Cómo usar os.umask () en Python

Estoy tratando de establecer un umask utilizando el módulo os. Tenga en cuenta que mi umask normal establecido en mi ~ / .profile es umask 0027.

En una concha de bash,

umask 0022

Permitirá la creación de un archivo con permisos.

-rw-r--r--

Sin embargo, cuando importamos el módulo os y hacemos esto:

os.umask(0022)
[do some other code here that creates a file]

Me dan permisos de

----------

Primero, ¿cómo hago que os.umask (máscara) se comporte como umask en el shell?

Segundo, ¿cuál es la lógica entre la diferencia de los dos?

Nota: Intenté convertir el 0022 a decimal en caso de que esté esperando un decimal haciendo:

os.umask(18)

pero le dio permisos de

-----w--w-

También nota, lo intenté

os.umask(00022)

y

os.mask(0o0022)

Lo que tampoco funcionó.