This is like charcter for chatacter the same as `os.path.isdir` (at least on unix), why do we need this?