@classmethod
def from_unpack_list(cls, *args):
    """
        Given a list of raw arguments, initialize a new cls instance.

        If this class has special rules for certain fields, apply them.
        """
    unpack_args = list(args)
    for i in range(len(args)):
        custom_rule = 'fix_unpack_' + cls.names[i]
        if hasattr(cls, custom_rule):
            unpack_args[i] = getattr(cls, custom_rule)(args[i])
    return cls(*unpack_args)
