FME is good for broad user skill levels, maintainability, portability, and rapid modification. Python can be used in FME for start-up scripts, shut-down scripts, scripted parameters, and the PythonCreator and PythonCaller transformers. Good examples of Python use include smart scripted parameters, front-stage file manipulation, inter-feature dependent operations, non-standard geometry manipulation, tedious operations, recursion, and file manipulation. General rules for Python use in FME include using loggers instead of print statements, being aware that scripted parameters are hard to debug, avoiding non-standard library imports, and not copying PythonCaller transformers.