It's probably better practice to initialize any attributes in the __init__ as opposed to methods, right?

Could add:

        self.partial_upper_mapping = None

here.