  PyUnfold is a Python package for incorporating imperfections of the
measurement process into a data analysis pipeline. In an ideal world, we would
have access to the perfect detector: an apparatus that makes no error in
measuring a desired quantity. However, in real life, detectors have finite
resolutions, characteristic biases that cannot be eliminated, less than full
detection efficiencies, and statistical and systematic uncertainties. By
building a matrix that encodes a detector's smearing of the desired true
quantity into the measured observable(s), a deconvolution can be performed that
provides an estimate of the true variable. This deconvolution process is known
as unfolding. The unfolding method implemented in PyUnfold accomplishes this
deconvolution via an iterative procedure, providing results based on physical
expectations of the desired quantity. Furthermore, tedious book-keeping for
both statistical and systematic errors produces precise final uncertainty
estimates.
