--- /dev/null
+# Stubs for heapq\r
+\r
+# Based on http://docs.python.org/3.2/library/heapq.html\r
+\r
+import sys\r
+from typing import TypeVar, List, Iterable, Any, Callable, Optional\r
+\r
+_T = TypeVar('_T')\r
+\r
+def heappush(heap: List[_T], item: _T) -> None: ...\r
+def heappop(heap: List[_T]) -> _T: ...\r
+def heappushpop(heap: List[_T], item: _T) -> _T: ...\r
+def heapify(x: List[_T]) -> None: ...\r
+def heapreplace(heap: List[_T], item: _T) -> _T: ...\r
+if sys.version_info >= (3, 5):\r
+ def merge(*iterables: Iterable[_T], key: Callable[[_T], Any] = ...,\r
+ reverse: bool = ...) -> Iterable[_T]: ...\r
+else:\r
+ def merge(*iterables: Iterable[_T]) -> Iterable[_T]: ...\r
+def nlargest(n: int, iterable: Iterable[_T],\r
+ key: Optional[Callable[[_T], Any]] = ...) -> List[_T]: ...\r
+def nsmallest(n: int, iterable: Iterable[_T],\r
+ key: Callable[[_T], Any] = ...) -> List[_T]: ...\r