@classmethod
def handle_configurable_attrs(cls, **kwargs):
    """Handle attributes that can be passed to ``configure``.

        For the parameters, see ``configure``.

        Returns
        -------
        Union[str, None]
            The name passed in ``kwargs``
        dict
            The attrs extracted from kwargs and prepared
        kwargs
            A copy of ``kwargs`` without the handled fields, like ``name`` and the ones extracted.
            The dict must be empty once gone through this method in all the class tree, else
            a ``TypeError`` exception will be raised in ``configure``.

        """
    kwargs = kwargs.copy()
    attrs = {}
    for key in ('prefix', 'handle_uniqueness', 'key'):
        if key in kwargs and key in cls.configurable_attrs:
            attrs[key] = kwargs.pop(key)
    if 'transform' in kwargs:
        attrs['transform'] = staticmethod(kwargs.pop('transform'))
    name = kwargs.pop('name', None)
    return name, attrs, kwargs
