XGA (X-ray: Generate and Analyse) analyzes X-ray sources observed by the XMM-Newton Space telescope. It is based around declaring different types of source and sample objects which correspond to real X-ray sources, finding all available data, and then insulating the user from the tedious generation and basic analysis of X-ray data products. XGA generates photometric products and spectra for individual sources, or whole samples, with just a few lines of code. Though not a pipeline, pipelines for complex analysis can be built on top of it. XGA provides an easy to use (and parallelized) Python interface with XMM's Science Analysis System (ascl:1404.004), as well as with XSPEC (ascl:9910.005). All XMM products and fit results are read into an XGA source storage structure, thus avoiding the need to leave a Python environment at any point during the analysis. This module also supports more complex analyses for specific object types such as the easy generation of scaling relations, the measurement of gas masses for galaxy clusters, and the PSF correction of images.