--- /dev/null
+# Stubs for resource\r
+\r
+# NOTE: These are incomplete!\r
+\r
+from typing import Tuple, Optional, NamedTuple\r
+\r
+RLIMIT_AS = ... # type: int\r
+RLIMIT_CORE = ... # type: int\r
+RLIMIT_CPU = ... # type: int\r
+RLIMIT_DATA = ... # type: int\r
+RLIMIT_FSIZE = ... # type: int\r
+RLIMIT_MEMLOCK = ... # type: int\r
+RLIMIT_MSGQUEUE = ... # type: int\r
+RLIMIT_NICE = ... # type: int\r
+RLIMIT_NOFILE = ... # type: int\r
+RLIMIT_NPROC = ... # type: int\r
+RLIMIT_OFILE = ... # type: int\r
+RLIMIT_RSS = ... # type: int\r
+RLIMIT_RTPRIO = ... # type: int\r
+RLIMIT_RTTIME = ... # type: int\r
+RLIMIT_SIGPENDING = ... # type: int\r
+RLIMIT_STACK = ... # type: int\r
+RLIM_INFINITY = ... # type: int\r
+RUSAGE_CHILDREN = ... # type: int\r
+RUSAGE_SELF = ... # type: int\r
+RUSAGE_THREAD = ... # type: int\r
+\r
+_RUsage = NamedTuple('_RUsage', [('ru_utime', float), ('ru_stime', float), ('ru_maxrss', int),\r
+ ('ru_ixrss', int), ('ru_idrss', int), ('ru_isrss', int),\r
+ ('ru_minflt', int), ('ru_majflt', int), ('ru_nswap', int),\r
+ ('ru_inblock', int), ('ru_oublock', int), ('ru_msgsnd', int),\r
+ ('ru_msgrcv', int), ('ru_nsignals', int), ('ru_nvcsw', int),\r
+ ('ru_nivcsw', int)])\r
+\r
+def getpagesize() -> int: ...\r
+def getrlimit(resource: int) -> Tuple[int, int]: ...\r
+def getrusage(who: int) -> _RUsage: ...\r
+def prlimit(pid: int, resource: int, limits: Optional[Tuple[int, int]]) -> Tuple[int, int]: ...\r
+def setrlimit(resource: int, limits: Tuple[int, int]) -> None: ...\r
+\r
+# NOTE: This is an alias of OSError in Python 3.3.\r
+class error(Exception): ...\r