Existing Python uncertainty packages support the expression and propagation of uncertainty in numeric types, such as float or int. However, they do not cover the rest of the built-in types which can also be affected by uncertainty when representing physical systems. The Uncertain Datatypes (UTypes) library provides extensions of Python built-in datatypes bool, int, float, enum and str to seamlessly incorporate the data uncertainty coming from physical measurements or user estimations into Python programs, along with the set of operations defined for the values of these types. The library implements in a natural and efficient manner linear error propagation theory in Python and performs uncertainty calculations analytically.