Another possibility: uncertainties is a module for performing calculations with error tolerances, i.e.
(2.1 +/- 0.05) + (0.6 +/- 0.05)
which will be written as
from uncertainties import ufloat ufloat(2.1, 0.05) + ufloat(0.6, 0.05)
Edit: I got some odd results, and after a bit more games with this, I realized why: the error indicated is not a tolerance (hard additive restrictions, as in the technical drawings), but the standard deviation value is why the above calculation leads to
ufloat(2.7, 0.07071) # not 0.1 as I expected!
source share