| 1 | """
|
| 2 | path_stat.py - Functions from os.path that import 'stat'.
|
| 3 |
|
| 4 | We want to keep bin/osh_parse free of I/O. It's a pure stdin/stdout filter.
|
| 5 | """
|
| 6 | import posix_ as posix
|
| 7 | import stat
|
| 8 |
|
| 9 |
|
| 10 | def exists(path):
|
| 11 | # type: (str) -> bool
|
| 12 | """Test whether a path exists. Returns False for broken symbolic links"""
|
| 13 | try:
|
| 14 | posix.stat(path)
|
| 15 | except posix.error:
|
| 16 | return False
|
| 17 | return True
|
| 18 |
|
| 19 |
|
| 20 | def isdir(s):
|
| 21 | # type: (str) -> bool
|
| 22 | """Return true if the pathname refers to an existing directory."""
|
| 23 | try:
|
| 24 | st = posix.stat(s)
|
| 25 | except posix.error:
|
| 26 | return False
|
| 27 | return stat.S_ISDIR(st.st_mode)
|