Source: https://web.mit.edu/18.417/doc/pydocs/lib.pdf