@classmethod
def register_adapter(cls, from_cls, func):
    """
        Register a function that can handle adapting from `from_cls` for this
        field.

        TODO This may be a bad idea, re-evaluate how to register adapters.
        """
    if not cls.__adapters__:
        cls.__adapters__ = {}
    cls.__adapters__[from_cls] = func
