code: def makedirs_perm(path, perm=None):
      
      if not os.path.exists(path):
          if perm is None:
              os.makedirs(path)
          else:
              umask = os.umask(0)
              try:
                  os.makedirs(path, perm)
              finally:
                  os.umask(umask)
docs: Recursively creates directory up to *path*. If *perm* is set, the permissions of all newly
      created directories are set to its value.