--- /dev/null
+from typing import Dict, List, Mapping, Tuple, Union, Sequence, IO, Optional, TypeVar\r
+\r
+error = OSError\r
+\r
+confstr_names = ... # type: Dict[str, int]\r
+environ = ... # type: Dict[str, str]\r
+pathconf_names = ... # type: Dict[str, int]\r
+sysconf_names = ... # type: Dict[str, int]\r
+\r
+EX_CANTCREAT = ... # type: int\r
+EX_CONFIG = ... # type: int\r
+EX_DATAERR = ... # type: int\r
+EX_IOERR = ... # type: int\r
+EX_NOHOST = ... # type: int\r
+EX_NOINPUT = ... # type: int\r
+EX_NOPERM = ... # type: int\r
+EX_NOUSER = ... # type: int\r
+EX_OK = ... # type: int\r
+EX_OSERR = ... # type: int\r
+EX_OSFILE = ... # type: int\r
+EX_PROTOCOL = ... # type: int\r
+EX_SOFTWARE = ... # type: int\r
+EX_TEMPFAIL = ... # type: int\r
+EX_UNAVAILABLE = ... # type: int\r
+EX_USAGE = ... # type: int\r
+F_OK = ... # type: int\r
+NGROUPS_MAX = ... # type: int\r
+O_APPEND = ... # type: int\r
+O_ASYNC = ... # type: int\r
+O_CREAT = ... # type: int\r
+O_DIRECT = ... # type: int\r
+O_DIRECTORY = ... # type: int\r
+O_DSYNC = ... # type: int\r
+O_EXCL = ... # type: int\r
+O_LARGEFILE = ... # type: int\r
+O_NDELAY = ... # type: int\r
+O_NOATIME = ... # type: int\r
+O_NOCTTY = ... # type: int\r
+O_NOFOLLOW = ... # type: int\r
+O_NONBLOCK = ... # type: int\r
+O_RDONLY = ... # type: int\r
+O_RDWR = ... # type: int\r
+O_RSYNC = ... # type: int\r
+O_SYNC = ... # type: int\r
+O_TRUNC = ... # type: int\r
+O_WRONLY = ... # type: int\r
+R_OK = ... # type: int\r
+TMP_MAX = ... # type: int\r
+WCONTINUED = ... # type: int\r
+WNOHANG = ... # type: int\r
+WUNTRACED = ... # type: int\r
+W_OK = ... # type: int\r
+X_OK = ... # type: int\r
+\r
+def WCOREDUMP(status: int) -> bool: ...\r
+def WEXITSTATUS(status: int) -> bool: ...\r
+def WIFCONTINUED(status: int) -> bool: ...\r
+def WIFEXITED(status: int) -> bool: ...\r
+def WIFSIGNALED(status: int) -> bool: ...\r
+def WIFSTOPPED(status: int) -> bool: ...\r
+def WSTOPSIG(status: int) -> bool: ...\r
+def WTERMSIG(status: int) -> bool: ...\r
+\r
+class stat_result(object):\r
+ n_fields = ... # type: int\r
+ n_sequence_fields = ... # type: int\r
+ n_unnamed_fields = ... # type: int\r
+ st_mode = ... # type: int\r
+ st_ino = ... # type: int\r
+ st_dev = ... # type: int\r
+ st_nlink = ... # type: int\r
+ st_uid = ... # type: int\r
+ st_gid = ... # type: int\r
+ st_size = ... # type: int\r
+ st_atime = ... # type: int\r
+ st_mtime = ... # type: int\r
+ st_ctime = ... # type: int\r
+\r
+class statvfs_result(object):\r
+ n_fields = ... # type: int\r
+ n_sequence_fields = ... # type: int\r
+ n_unnamed_fields = ... # type: int\r
+ f_bsize = ... # type: int\r
+ f_frsize = ... # type: int\r
+ f_blocks = ... # type: int\r
+ f_bfree = ... # type: int\r
+ f_bavail = ... # type: int\r
+ f_files = ... # type: int\r
+ f_ffree = ... # type: int\r
+ f_favail = ... # type: int\r
+ f_flag = ... # type: int\r
+ f_namemax = ... # type: int\r
+\r
+def _exit(status: int) -> None: ...\r
+def abort() -> None: ...\r
+def access(path: unicode, mode: int) -> bool: ...\r
+def chdir(path: unicode) -> None: ...\r
+def chmod(path: unicode, mode: int) -> None: ...\r
+def chown(path: unicode, uid: int, gid: int) -> None: ...\r
+def chroot(path: unicode) -> None: ...\r
+def close(fd: int) -> None: ...\r
+def closerange(fd_low: int, fd_high: int) -> None: ...\r
+def confstr(name: Union[str, int]) -> str: ...\r
+def ctermid() -> str: ...\r
+def dup(fd: int) -> int: ...\r
+def dup2(fd: int, fd2: int) -> None: ...\r
+def execv(path: str, args: Sequence[str], env: Mapping[str, str]) -> None: ...\r
+def execve(path: str, args: Sequence[str], env: Mapping[str, str]) -> None: ...\r
+def fchdir(fd: int) -> None: ...\r
+def fchmod(fd: int, mode: int) -> None: ...\r
+def fchown(fd: int, uid: int, gid: int) -> None: ...\r
+def fdatasync(fd: int) -> None: ...\r
+def fdopen(fd: int, mode: str = ..., bufsize: int = ...) -> IO[str]: ...\r
+def fork() -> int:\r
+ raise OSError()\r
+def forkpty() -> Tuple[int, int]:\r
+ raise OSError()\r
+def fpathconf(fd: int, name: str) -> None: ...\r
+def fstat(fd: int) -> stat_result: ...\r
+def fstatvfs(fd: int) -> statvfs_result: ...\r
+def fsync(fd: int) -> None: ...\r
+def ftruncate(fd: int, length: int) -> None: ...\r
+def getcwd() -> str: ...\r
+def getcwdu() -> unicode: ...\r
+def getegid() -> int: ...\r
+def geteuid() -> int: ...\r
+def getgid() -> int: ...\r
+def getgroups() -> List[int]: ...\r
+def getloadavg() -> Tuple[float, float, float]:\r
+ raise OSError()\r
+def getlogin() -> str: ...\r
+def getpgid(pid: int) -> int: ...\r
+def getpgrp() -> int: ...\r
+def getpid() -> int: ...\r
+def getppid() -> int: ...\r
+def getresgid() -> Tuple[int, int, int]: ...\r
+def getresuid() -> Tuple[int, int, int]: ...\r
+def getsid(pid: int) -> int: ...\r
+def getuid() -> int: ...\r
+def initgroups(username: str, gid: int) -> None: ...\r
+def isatty(fd: int) -> bool: ...\r
+def kill(pid: int, sig: int) -> None: ...\r
+def killpg(pgid: int, sig: int) -> None: ...\r
+def lchown(path: unicode, uid: int, gid: int) -> None: ...\r
+def link(source: unicode, link_name: str) -> None: ...\r
+_T = TypeVar("_T")\r
+def listdir(path: _T) -> List[_T]: ...\r
+def lseek(fd: int, pos: int, how: int) -> None: ...\r
+def lstat(path: unicode) -> stat_result: ...\r
+def major(device: int) -> int: ...\r
+def makedev(major: int, minor: int) -> int: ...\r
+def minor(device: int) -> int: ...\r
+def mkdir(path: unicode, mode: int = ...) -> None: ...\r
+def mkfifo(path: unicode, mode: int = ...) -> None: ...\r
+def mknod(filename: unicode, mode: int = ..., device: int = ...) -> None: ...\r
+def nice(increment: int) -> int: ...\r
+def open(file: unicode, flags: int, mode: int = ...) -> int: ...\r
+def openpty() -> Tuple[int, int]: ...\r
+def pathconf(path: unicode, name: str) -> str: ...\r
+def pipe() -> Tuple[int, int]: ...\r
+def popen(command: str, mode: str = ..., bufsize: int = ...) -> IO[str]: ...\r
+def putenv(varname: str, value: str) -> None: ...\r
+def read(fd: int, n: int) -> str: ...\r
+def readlink(path: _T) -> _T: ...\r
+def remove(path: unicode) -> None: ...\r
+def rename(src: unicode, dst: unicode) -> None: ...\r
+def rmdir(path: unicode) -> None: ...\r
+def setegid(egid: int) -> None: ...\r
+def seteuid(euid: int) -> None: ...\r
+def setgid(gid: int) -> None: ...\r
+def setgroups(groups: Sequence[int]) -> None: ...\r
+def setpgid(pid: int, pgrp: int) -> None: ...\r
+def setpgrp() -> None: ...\r
+def setregid(rgid: int, egid: int) -> None: ...\r
+def setresgid(rgid: int, egid: int, sgid: int) -> None: ...\r
+def setresuid(ruid: int, euid: int, suid: int) -> None: ...\r
+def setreuid(ruid: int, euid: int) -> None: ...\r
+def setsid() -> None: ...\r
+def setuid(pid: int) -> None: ...\r
+def stat(path: unicode) -> stat_result: ...\r
+def statvfs(path: unicode) -> statvfs_result: ...\r
+def stat_float_times(fd: int) -> None: ...\r
+def strerror(code: int) -> str: ...\r
+def symlink(source: unicode, link_name: unicode) -> None: ...\r
+def sysconf(name: Union[str, int]) -> int: ...\r
+def system(command: unicode) -> int: ...\r
+def tcgetpgrp(fd: int) -> int: ...\r
+def tcsetpgrp(fd: int, pg: int) -> None: ...\r
+def times() -> Tuple[float, float, float, float, float]: ...\r
+def tmpfile() -> IO[str]: ...\r
+def ttyname(fd: int) -> str: ...\r
+def umask(mask: int) -> int: ...\r
+def uname() -> Tuple[str, str, str, str, str]: ...\r
+def unlink(path: unicode) -> None: ...\r
+def unsetenv(varname: str) -> None: ...\r
+def urandom(n: int) -> str: ...\r
+def utime(path: unicode, times: Optional[Tuple[int, int]]) -> None:\r
+ raise OSError\r
+def wait() -> int: ...\r
+_r = Tuple[float, float, int, int, int, int, int, int, int, int, int, int, int, int, int, int]\r
+def wait3(options: int) -> Tuple[int, int, _r]: ...\r
+def wait4(pid: int, options: int) -> Tuple[int, int, _r]: ...\r
+def waitpid(pid: int, options: int) -> int:\r
+ raise OSError()\r
+def write(fd: int, str: str) -> int: ...\r