Source: https://www.esri.com/training/assets/courses/5b0431e067b46f2fe61b082f/PYTS_toc.pdf